ページの先頭行へ戻る
Enterprise Postgres 10 アプリケーション開発ガイド
FUJITSU Software

7.3 データベースへの接続

以下に示すCONNECT文を利用してデータベースサーバへの接続を作成します。

書式

EXEC SQL CONNECT TO target [AS connection-name] [USER user-name]END-EXEC.
target

次のいずれかの形式で記述します。

  • dbname@host:port

  • tcp:postgresql://host:port/dbname[?options]

  • SolarisLinuxunix:postgresql://host[:port][/dbname][?options]
    (UNIXドメインソケットを使用する場合の記述方法)

  • 上記形式のいずれかを含むSQL規約の文字列定数

  • 上記形式のいずれかを含む文字変数への参照

  • DEFAULT

user-name

次のいずれかの形式で記述します。

  • username

  • username/password

  • username IDENTIFIED BY password

  • username USING password

引数に関する説明

引数

説明

dbname

データベース名を指定します。

host

接続先のホスト名を指定します。

port

データベースサーバのポート番号を指定します。

省略した場合は、27500となります。

connection-name

1つのプログラム内で複数の接続を処理する場合に、コネクションを識別するためのコネクション名を指定します。

username

データベースへ接続するユーザー名を指定します。

省略した場合は、そのアプリケーションを実行しているユーザーのオペレーティングシステム上の名前と同じです。

password

パスワードによる認証を必要とした場合に、パスワードを指定します。

options

タイムアウト時間を指定する場合は、以下のパラメータを指定します。複数のパラメータを指定する場合は&で繋ぎます。各パラメータの指定値は以下のとおりです。

  • connect_timeout

    接続時のタイムアウト時間を指定します。

    単位は秒で0~2147483647を指定します。0、不当な値を指定した場合、省略した場合は無制限です。1を指定した場合は2が指定されたものとして扱います。指定された時間内にコネクションが接続できなかった場合はエラーとなります。

  • keepalives

    キープアライブを有効にします。

    0を指定した場合はキープアライブが無効、それ以外の数値を指定した場合はキープアライブが有効となります。省略値はキープアライブが有効です。キープアライブにより、データベースとの接続が無効と判断された場合はエラーとなります。

  • keepalives_idle

    データベースとの通信が行われていない場合、キープアライブメッセージの送信を開始するまでの時間を指定します。

    • Linuxの場合

      単位は秒で1~32767を指定します。省略した場合はシステムのデフォルト値を使用します。

    • Windows(R)の場合

      単位は秒で1~2147483647を指定します。それ以外の値を指定した場合、および省略した場合は7200が指定されたものとして扱います。

    • Solarisの場合

      指定できません。

  • keepalives_interval

    キープアライブメッセージの応答がない場合に、何秒後に再送するかを指定します。

    • Linuxの場合

      単位は秒で1~32767を指定します。省略した場合はシステムのデフォルト値を使用します。

    • Windows(R)の場合

      単位は秒で1~2147483647を指定します。それ以外の値を指定した場合、および省略した場合は1が指定されたものとして扱います。

    • Solarisの場合

      指定できません。

  • keepalives_count

    キープアライブメッセージの再送回数を指定します。

    • Linuxの場合

      1~127の値を指定します。省略した場合はシステムのデフォルト値を使用します。

    • Windows(R)の場合

      本パラメータの指定に関係なく、システムのデフォルト値を使用します。

    • Solarisの場合

      指定できません。

Solaris

参照

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_idle=20&keepalives_interval=5&keepalives_count=2&keepalives=1 USER myuser/myuser01 END-EXEC.