IBM Support

[Db2] Db2 クライアントの通信タイムアウトを設定する方法

Question & Answer


Question

Db2 サーバーから一定時間応答がない場合に、Db2 クライアント側で通信タイムアウトを設定する方法を教えてください。Db2 クライアント側が受信待ち状態で、ネットワークの不具合が起きた場合に、一定時間経過後タイムアウトするようにしたいです。

Answer

非 Java Db2 クライアントの場合は DB2TCP_CLIENT_RCVTIMEOUT 環境変数、Java ベースのアプリケーションの場合は blockingReadConnectionTimeout プロパティーを設定すると、 Db2 サーバーから応答がない場合に Db2 クライアント側で通信をタイムアウトできます。
 
  1. Db2 クライアント・コードが動作するアプリケーション・インターフェースの場合 (非 Java クライアント)
    Db2 クライアントに DB2TCP_CLIENT_RCVTIMEOUT の値を設定することにより、Db2 サーバーから応答がない場合のタイムアウトを設定できます。Db2 クライアントが TCP/IP 上のデータを受信する操作を待つ秒数を指定します。デフォルトは 0 でタイムアウトなしです。

    [設定手順]
    Db2 クライアント側で コマンド・ウィンドウより設定してください。
    db2set DB2TCP_CLIENT_RCVTIMEOUT=数値(秒数)
    [タイムアウトした場合]
    設定した数値内に Db2 サーバーからデータが受信されない場合は、以下のように SQL30081N selectForRecvTimeout が返ります。
    SQL30081N  通信エラーが検出されました。使用された通信プロトコル:"TCP/IP"。使用している通信 API: "SOCKETS"。
    エラーが検出されたロケーション:"192.168.0.1"。エラーを検出した通信関数:"selectForRecvTimeout"。
    プロトコル固有エラー・コード: "0"、"*"、"*"。  SQLSTATE=08001
    注意
    CLI アプリケーションは、db2cli.ini キーワードの ReceiveTimeout、db2dsdriver.cfg の ReceiveTimeout または接続属性 SQL_ATTR_RECEIVE_TIMEOUT によって DB2TCP_CLIENT_RCVTIMEOUT をオーバーライドできます。
     
  2. JCC Type 4 アプリケーションの場合
    blockingReadConnectionTimeout プロパティーに値を設定することにより、Db2 サーバーから応答が無い場合のタイムアウトを設定できます。
    url パラメータに blockingReadConnectionTimeout を設定します。以下は 30 秒に設定した例です。
    [ コード例 ]
    String url = "jdbc:db2://db2srv.ibm.com:5000/SAMPLE:user=XXXX;password=XXXX;blockingReadConnectionTimeout=30;";
    Connection con = DriverManager.getConnection(url);
    

運用上の考慮点
DB2TCP_CLIENT_RCVTIMEOUT と共に DB2TCP_CLIENT_CONTIMEOUT も設定している場合は、 DB2TCP_CLIENT_ RCVTIMEOUT が有効に動作しないという以下の障害報告があります。Db2 サーバーから応答がない場合にタイムアウトさせるるためには、DB2TCP_CLIENT_ RCVTIMEOUT のみを指定してください。
DB2 V9.5 IC67823
DB2 V9.7 IC68179

関連情報
通信変数 DB2TCP_CLIENT_RCVTIMEOUT
サポートされるすべてのデータベース製品に共通の IBM Data Server Driver for JDBC and SQLJ のプロパティー

[Db2] パスポート・アドバンテージによく寄せられる質問

お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート

[{"Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PkdAAE","label":"Connectivity"}],"Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"All Versions","Type":"MASTER"}]

Historical Number

004CD15CFAC0203C4925780E002FCF5B

Document Information

Modified date:
14 August 2023

UID

jpn1J1000645