ポイント
接続サービスファイルを用いて接続先を指定することを推奨します。接続サービスファイルには、接続先情報やコネクションに対して設定する各種のチューニング情報を1セットとして名前(サービス名)を定義します。データベース接続時には、接続サービスファイルに定義されたサービス名を用いることで、接続情報の変更によるアプリケーションの修正が不要になります。
“PostgreSQL文書”の“クライアントインタフェース”の“接続サービスファイル”を参照してください。
接続サービスファイルを利用するには、以下のいずれかの方法があります。
文字列リテラルまたはホスト変数を使用して、以下のように記述する方法
tcp:postgresql://?service=my_service
環境変数PGSERVICEにサービス名を設定し、かつCONNECT TO DEFAULTを用いる方法
以下に示すCONNECT文を利用してデータベースサーバへの接続を作成します。
書式
EXEC SQL CONNECT TO target [AS connection-name] [USER user-name];
次のいずれかの形式で記述します。
dbname@host:port
tcp:postgresql://host:port/dbname[?options]
unix:postgresql://host[:port][/dbname][?options]
(UNIXドメインソケットを使用する場合の記述方法)
上記形式のいずれかを含むSQL規約の文字列定数
上記形式のいずれかを含む文字変数への参照
DEFAULT
次のいずれかの形式で記述します。
username
username/password
username IDENTIFIED BY password
username USING password
引数に関する説明
引数 | 説明 |
---|---|
dbname | データベース名を指定します。 |
host | 接続先のホスト名を指定します。 |
port | データベースサーバのポート番号を指定します。 省略した場合は、27500となります。 |
connection-name | 1つのプログラム内で複数の接続を処理する場合に、コネクションを識別するためのコネクション名を指定します。 |
username | データベースへ接続するユーザー名を指定します。 省略した場合は、そのアプリケーションを実行しているユーザーのオペレーティングシステム上の名前と同じです。 |
password | パスワードによる認証を必要とした場合に、パスワードを指定します。 |
options | タイムアウト時間を指定する場合は、以下のパラメータを指定します。複数のパラメータを指定する場合は&で繋ぎます。各パラメータの指定値は以下のとおりです。
|
参考
Solarisでは、keepalives_idle、keepalives_intervalおよびkeepalives_countを指定できませんが、nddコマンドで、以下を設定できます。ただし、システム全体に影響があることを考慮して設定する必要があります。
tcp_keepalive_interval
キープアライブメッセージを送信するまでの時間
tcp_ip_abort_interval
TCP接続に対する再送タイムアウト値
さらに、Solaris 11の場合は、以下の設定も可能です。
tcp_keepalive_abort_interval
キープアライブメッセージの応答がない場合、TCP接続を切断するまでのタイムアウト時間
EXEC SQL CONNECT TO tcp:postgresql://sv1:27500/mydb?connect_timeout=20&keepalives=1&keepalives_idle=20&keepalives_interval=5&keepalives_count=2 USER myuser/myuser01;