コネクションには、接続するデータベースへの接続先情報として以下を指定します。
Server=127.0.0.1;Port=26500;Database=mydb;User Id=myuser;Password=myuser01;...; (1) (2) (3) (4) (5) (6)
(1) 接続するサーバのホスト名またはIPアドレスを指定します。必ず指定してください。
(2) データベースサーバのポート番号を指定します。省略した場合は、初期値の26500となります。
(3) 接続するデータベース名を指定します。
(4) データベースに接続するユーザーIDを指定します。
(5) データベースに接続するユーザーIDのパスワードを指定します。
(6) その他の接続情報の指定方法については、以下の表を参照してください。
.NET Data Provider(Npgsql)で接続文字列に指定可能なキーワードを以下に示します。
なお、Oracleデータベース互換機能を利用する場合は、注意が必要な設定があります。“8.2.2 アプリケーション開発用のインタフェースとの連携時の注意事項”を参照してください。
キーワード | 初期値 | 説明 |
---|---|---|
Server, Host | なし | 接続するサーバのホスト名またはIPアドレスを指定します。 ホスト名を指定する場合、63バイト以内で指定してください。 ホスト名、またはIPアドレスは、必ず指定してください。 |
Port | 26500 | データベースサーバのポート番号を指定します。 |
User Id, | なし | データベースに接続するユーザーIDを指定します。 |
Password, Pwd, Psw | なし | データベースに接続するユーザーIDのパスワードを指定します。 |
Database, DB | ユーザー名 | 接続するデータベース名を指定します。 |
SearchPath | (注2) | アプリケーションで使用するSQL文のデフォルトスキーマ名を指定します。 注2)省略した場合は、サーバ側のpostgresql.confファイルのsearch_pathパラメータの設定値に従います。 |
Timeout | 15 | 接続時のタイムアウト時間を指定します。 単位は秒で、0~1024の値を指定します。0を指定した場合は無制限です。指定された時間内にコネクションが接続できなかった場合はエラーとなります。 |
ConnectionLifeTime | 15 | サーバと接続した時から、コネクションプールで保持している間も含めたコネクションの保持時間を指定します。 保持時間の単位は秒です。0~2147483647の範囲で指定してください。 0を指定した場合、保持時間は無制限となります。 |
Pooling | True | コネクションをプーリングするかどうかを指定します。 Trueが指定された場合、コネクションをプーリングします。 Falseが指定された場合、コネクションをプーリングしません。 |
MaxPoolSize | 20 | 接続プールの最大サイズです。接続プールの最大サイズを超える要求が発生した場合は、接続がプールに返却されるまで待たされます。 0~1024の範囲で指定してください。0を指定した場合、コネクションをプーリングしません。 |
MinPoolSize | 1 | 接続プールの最小サイズです。MinPoolSizeが指定されると、NpgsqlConnectionは指定された数だけサーバとの接続を事前に割り当てます。 0からMaxPoolSizeで指定した値の範囲で指定してください。0を指定した場合、NpgsqlConnectionは、サーバとの接続を事前に割り当てません。 |
SSL | False | クライアントとサーバ間の通信路をSSLプロトコルで暗号化するかどうかを指定します。 Trueが指定された場合、暗号化を行います。 Falseが指定された場合、暗号化を行いません。 |
Sslmode | Disable | SSL 接続制御モードで以下の値の中の1つを指定します。 Prefer:可能であれば ssl を使用して接続します。 Require:ssl 接続ができない場合、例外が投げられます。 Allow:まだサポートされていません。ssl なしで接続されます。 Disable:ssl 接続は行われません。 |
Enlist | True | コネクションを、トランザクションスコープで宣言したトランザクションに参加させるかどうかを指定します。 Trueが指定された場合、コネクションをトランザクションに参加させます。 Falseが指定された場合、コネクションをトランザクションに参加させません。 |
CommandTimeout | 20 | サーバとの通信時のタイムアウト時間を指定します。 単位は秒で、0~2147483647の値を指定します。0を指定した場合、および、負の値を指定した場合は無制限です。指定された時間内にサーバからのデータが受信できなかった場合は、エラーとなります。 |
Compatible | (注3) | Fujitsu Npgsql .NET Data Provider がベースにしている Npgsql のバージョンを指定することで、将来の Npgsql のバージョンアップ時の動作変更の影響を最小限に抑えることができます。 Fujitsu Npgsql .NET Data Provider がベースにしている Npgsql のバージョンは、“導入ガイド(クライアント編)”を参照してください。 注3) 省略した場合は、Fujitsu Npgsql .NET Data Provider がベースにしている Npgsql のバージョンが設定されます。 |
IntegratedSecurity | False | Windows 統合セキュリティを使用する際に設定します。 |
Protocol | 3 | 使用するプロトコルバージョンを指定します。 必ず3を指定してください。 |
SyncNotification | False | Npgsqlが同期式通知を使用するかどうかの指定項目です。 |
Use Extended Types, UseExtendedTypes | False | このオプションは、DataAdapterが.NETのSystem.DateTime型か、NpgsqlTimeStampのようなNqgsqlのデータと時間の型を使うようになるかに影響を与えます。NpgsqlTimeStampはSystem.DateTimeを越えた機能と範囲を持っています。どちらの値でも、Npgsqlの型とSystemの型は使うことができますが、Trueが指定された場合、 DataAdapterに当該のフィールドについて特定のNpgsql型を渡すことができます。 一方、Falseが指定された場合、DataAdapterはSystem.DateTimeを要求します。 |
PreloadReader, Preload Reader | False | Trueが指定された場合、ExecuteReader()が復帰する前にDataReaderに結果セットの全体を読み込みます。 Trueが指定された場合、性能の低下をもたらします(特にレコードセットが大きい場合に顕著です)。 ADO.NETのドキュメントによると、IDataReaderが開いている間は、それを得るために使われているIDbConnectionは使用中であり、他のどのような操作にも使用することはできません。 Npgsqlはこのルールを施行し、NpgsqlDataReaderが開いている間は、NpgsqlConnection上の、NpgsqlConnectionを得ようとするNpgsqlDataReader以外のほとんどの操作は、InvalidOperationExceptionとなります。もし、NpgsqlDataReaderがそのresultset(s)の最後までに呼ばれた場合は、たとえそれが閉じられていなくてもNpgsqlはルールを緩めてコネクションを使うことを許可します。それは、この時点ではコネクションのいかなる資源も使用していないためです。 |
注1) NpgsqlConnectionStringBuilderを使用する場合は、以下のキーワードのみ使用可能です。
Host
UserName
Password
Database
UseExtendedTypes
PreloadReader