通信変数

通信変数を使用すると、 Db2® ネットワーク接続上および Db2 環境内のデータ・フローを制御するのに役立ちます。 通信変数を設定することにより、TCP/IP の設定やコミュニケーション・マネージャーのアクティビティーなど、デフォルトの動作を制御できます。

DB2_ALLOW_WLB_WITH_SEQUENCES
  • オペレーティング・システム: すべて
  • デフォルト = NO。値: NOYES
  • このレジストリー変数は、シーケンスにアクセスするアプリケーションがワークロード・バランシングに参加することを許可するかどうかを制御します。

    DB2_ALLOW_WLB_WITH_SEQUENCESNO に設定した場合、SQL シーケンス・ステートメントで PREVIOUS VALUE または NEXT VALUE を参照するアプリケーションは、ワークロード・バランシングへの参加を妨げられます。

    DB2_ALLOW_WLB_WITH_SEQUENCES を YES に設定した場合、SQL シーケンス・ステートメントで PREVIOUS VALUE または NEXT VALUE を参照するアプリケーションは、ワークロード・バランシングへの参加を妨げられません。 アプリケーションは、 PREVIOUS VALUE FOR sequence 式を使用してシーケンスの前の値を参照する前に、トランザクションで NEXT VALUE FOR sequence 式を使用して次のシーケンス値を生成する必要があります。 アプリケーションはワークロード・バランシングに参加できるので、各トランザクションは新しいセッションまたは異なるセッションで実行される可能性があります。 次のシーケンス値をまず生成することなくトランザクションの前のシーケンス値にアクセスすると、SQL0845N エラーになります。

    Db2 pureScale® 環境でのシーケンスに関する考慮事項:

    Db2 pureScale 環境では、 CACHE オプションと NO ORDER オプションを使用すると、複数のキャッシュが同時にアクティブになる可能性があります。 複数の異なるメンバーから次の値の要求があると、値の割り当てが厳密な数値順にならない可能性があります。 例えば、メンバーの DB2A と DB2B が同じシーケンスを使用しているとします。 DB2A はキャッシュ値として 1 から 20 を取得し、一方 DB2B はキャッシュ値として 21 から 40 を取得します。 DB2A が最初にその次の値を要求した後、DB2B が要求し、その後で DB2A がもう一度要求した場合、割り当てられる値の順序は 1、21、2 になります。

    ORDER オプションまたは NO CACHE オプションを使用すると、複数のメンバー間で 1 つ以上のアプリケーションによって共有されるシーケンスに割り当てられる値は、厳密な数値順になります。 ORDER を指定すると、 CACHE n を指定しても NO CACHE が暗黙指定されます。

DB2CHECKCLIENTINTERVAL
  • オペレーティング・システム: すべて、ただしサーバーのみ
  • デフォルト = 100。値: ゼロ以上の数値。
  • この変数は、アクティブ・トランザクション中の TCP/IP クライアント接続検査の頻度を指定します。 照会完了まで待つ代わりに、クライアント終了を早期に検出できるようにします。 この変数が 0 に設定されている場合、検査は実行されません。

    低い値ほどチェックが頻繁になります。 低い頻度の場合は 100、中位の頻度の場合は 50、 高い頻度の場合は 10 を目安にしてください。 値は内部 Db2 メトリックで測られます。 値は線形スケールを表します。つまり、値が 50 から 100 に増えると、間隔は 2 倍になります。 データベース要求の実行中に、 クライアントの状況を頻繁にチェックすればするほど、 照会が完了するまでの時間が長くなります。 Db2 ワークロードが重い (つまり、多数の内部要求が関係する) 場合、 DB2CHECKCLIENTINTERVAL を低い値に設定すると、ワークロードが軽い状況よりもパフォーマンスに大きな影響を与えます。

    注: この変数を 0 に設定すると、孤立した接続が発生し、トランザクションがアクティブ・ログを保留する可能性があります。 そうなると、ログが満杯になったことを示すエラー (SQL0964N) が発生して、アプリケーションに障害が発生します。
DB2_DYNAMIC_SSL_LABEL
  • オペレーティング・システム: すべて
  • デフォルト: OFF
  • Db2 11.1 MP4 FP5以降、このパラメーターは、 SSL_SVR_LABEL DBM 構成パラメーターの値がオンラインで構成可能かどうかを制御するために使用されます。 詳しくは、 SSL_SVR_LABELを参照してください。
  • デフォルトでは、この変数の変更は即時には適用されません。 これらを即時に適用するには、db2set コマンドに -immediate パラメーターを付けて発行してください。
DB2COMM
  • オペレーティング・システム: すべて、ただしサーバーのみ
  • デフォルト = NULL。値: NPIPETCPIPSSL
  • この変数は、データベース・マネージャーを開始したときに開始されるコミュニケーション・マネージャーを指定します。 この変数を指定しないと、サーバーではどの Db2 コミュニケーション・マネージャーも開始されません。 この変数には、コンマ区切りで任意の値を組み合わせて設定できます。
    注:NPIPE は、Windows オペレーティング・システムでのみ有効です。
DB2FCMCOMM
  • オペレーティング・システム: サポートされるすべての Db2 Enterprise Server Edition プラットフォーム
  • デフォルト = TCPIP4。値: TCPIP4 または TCPIP6
  • この変数では、db2nodes.cfg ファイル内のホスト名の解決方法を指定します。 すべてのホスト名は IPv4 または IPv6 として解決されます。 db2nodes.cfg でホスト名の代わりに IP アドレスを指定した場合は、IP の形式によって、IPv4 と IPv6 のどちらを使用するかが決まります。 DB2FCMCOMM が設定されていない場合、IPv4 のデフォルト設定値は、IPv4 ホストのみ開始できることを意味します。
    注: IP 形式が db2nodes.cfgで指定されたホスト名から解決された場合、または db2nodes.cfg で直接指定された IP 形式が DB2FCMCOMMの設定と一致しない場合、 db2start は失敗します。
DB2_FORCE_NLS_CACHE
  • オペレーティング・システム: AIX®、HP_UX、Solaris
  • デフォルト = FALSE。値: TRUE または FALSE
  • この変数は、マルチスレッド・アプリケーションにおいてロック競合が起きないようにするために使用します。 レジストリー変数が TRUE の場合、 スレッドが初めてコード・ページとテリトリー・コードの情報にアクセスする際にそれらの情報が保管されます。 その時点以降、 この情報を要求する他のスレッドにこのキャッシュ情報が使用されます。 したがってロック競合は除かれ、 特定の状態下でパフォーマンスが向上することになります。 アプリケーションにより接続間のロケール設定が変更される場合、 この設定値は使用できません。 マルチスレッド・アプリケーションでロケール設定を変更するのはスレッド・セーフ ではないので普通はこの変更は行われません。 したがってこのような状態は考慮する必要がないと思われます。
DB2_PMODEL_SETTINGS
  • オペレーティング・システム: すべて
  • この変数を変更すると、それはその後コンパイルされるすべての SQL ステートメントに対してただちに有効になります。 インスタンスを再始動したり、db2set コマンドに -immediate パラメーターを指定して発行したりする必要はありません。
  • このレジストリー変数は、Db2 内部インフラストラクチャーのさまざまな側面の動作を変更できる一連のパラメーターを制御します。 パラメーターは、次の例のように、セミコロンで区切ります。
    db2set
    DB2_PMODEL_SETTINGS=MLN_REMOTE_LISTENER:TRUE;ENHANCED_ROLLBACK:TRUE;SRVLST_EQUAL_WEIGHT:TRUE
  • パラメーター:
    ENHANCED_ROLLBACK
    • デフォルト: FALSE
    • 値: TRUEFALSE
    • ENHANCED_ROLLBACK パラメーターを使用して、 パーティション・データベース環境Db2 サーバーでの作業単位のロールバック動作を改善します。 このオプションを TRUE に設定すると、作業単位のロールバック要求は、トランザクションに関係していた論理データベース・パーティションにのみ送信されます。
    MLN_REMOTE_LISTENER
    • デフォルト: FALSE
    • 値: TRUEFALSE
    • MLN_REMOTE_LISTENER パラメーターを使用して、各論理データベース・パーティションで TCP/IP リスナーを開始します。 このオプションを TRUE に設定すると、アプリケーションは、論理ポート 0 に割り当てられるデータベース・パーティション・サーバーを経由して要求を経路指定する代わりに、各論理データベース・パーティションに直接接続できます。

      このオプションを TRUE に設定する場合は、追加の TCP/IP リスナーが、他のサービスで必要なポートを使用しないことを確認してください。

    SRVLST_EQUAL_WEIGHT
    • デフォルト: FALSE
    • 値: TRUEFALSE
    • SRVLST_EQUAL_WEIGHT パラメーターは、サーバー・リスト内でのメンバーのゼロでない重みを常に同じにしたい場合に使用します。これにより、負荷に基づいてメンバーの重みが計算されるデフォルトの動作をオーバーライドできます。 サーバー・リストに格納されるメンバーの重みは、ワークロード・バランシング (WLB) が有効になっている場合にワークロードを分散するためにリモート・クライアントによって使用されます。

      このオプションを TRUE に設定すると、クライアントでの WLB は、メンバーの負荷に関係なく、メンバー間での均等なワークロード分散に変更されます。

DB2RSHCMD
  • オペレーティング・システム: UNIX、 Linux®
  • デフォルト = rsh (HP-UX では remsh)。値は rshremsh、または ssh までの絶対パス名です。
  • デフォルトでは、Db2 データベース・システムはリモート・データベース・パーティションの開始時に rsh を通信プロトコルとして使用し、db2_all スクリプトを使用してすべてのデータベース・パーティションでユーティリティーおよびコマンドを実行します。 例えば、このレジストリー変数を ssh の絶対パス名に設定すると、Db2 データベース製品は要求されたユーティリティーおよびコマンドを実行するための通信プロトコルとして ssh を使用します。 あるいは、適切なデフォルト・パラメーターを使用してリモート・コマンド・プログラムを呼び出すスクリプトの絶対パス名に設定することもできます。 この変数が必要なのは、パーティション・データベースの場合、または Db2 製品がインストールされているサーバーとは別のサーバーから db2start コマンドを実行する単一パーティション環境の場合、および Db2 インスタンスを開始、停止、またはモニターする機能を持つ rsh または ssh 従属ユーティリティー ( db2gcfなど) の場合のみです。 インスタンス所有者は、指定されたリモート・シェル・プログラムを使用して、 各 Db2 データベース・ノードから他の Db2 データベース・ノードへ、 追加の検査または認証 (つまり、パスワードまたはパスワード句) を要求するプロンプトが出されることなく、ログインできなければなりません。

Db2で SSH シェルを使用するように DB2RSHCMD レジストリー変数を設定する方法について詳しくは、ホワイト・ペーパー「Configure DB2 Universal Database for UNIX to use OpenSSH」を参照してください。

DB2RSHTIMEOUT
  • オペレーティング・システム: Unix、Linux
  • デフォルト = 30 秒。値: 1 から 120
  • この変数は、 DB2RSHCMD が NULL 以外の値に設定されている場合にのみ適用されます。 このレジストリー変数を使用して、Db2 データベース・システムが任意のリモート・コマンドを待機するタイムアウト期間を制御します。 このタイムアウト期間が過ぎても応答を受け取らない場合には、リモート・データベース・パーティションに到達できず、操作が失敗したとみなされます。
    注: 指定された時間値は、リモート・コマンドの実行に必要な時間ではなく、要求の認証に必要な時間です。
DB2SORCVBUF
  • オペレーティング・システム: すべて
  • デフォルト = 65 536
  • TCP/IP 受信バッファーの値を指定します。
DB2SOSNDBUF
  • オペレーティング・システム: すべて
  • デフォルト = 65 536
  • TCP/IP 送信バッファーの値を指定します。
DB2TCP_CLIENT_CONTIMEOUT
  • オペレーティング・システム: すべて、ただしクライアントのみ
  • デフォルト = 0 (タイムアウトなし)。値: 0 から 32 767
  • DB2TCP_CLIENT_CONTIMEOUT レジストリー変数は、クライアントが TCP/IP 接続操作の完了を待機しなければならない秒数を指定します。 TCP/IP 経由のデータベース接続操作には、connect() と recv() の両方のソケット・サブルーチンが関係します。 データベース・マネージャーは、-30081 selectForConnectTimeoutconnect () サブルーチンがタイムアウトに達すると、エラーが発生します。-30081 selectForRecvTimeoutrecv () サブルーチンがタイムアウトになると、エラーになります。

    レジストリー変数が設定されていないか、または 0 に設定されている場合は、タイムアウトはありません。

    注: オペレーティング・システムには、 DB2TCP_CLIENT_CONTIMEOUTを使用して設定したタイムアウトの前に有効になる可能性がある接続タイムアウト値もあります。 例えば、 AIX には、75 秒後に接続を終了するデフォルトの tcp_keepinit=150 (0.5 秒単位) があります。
  • この変数を変更すると、それはその後コンパイルされるすべての SQL ステートメントに対してただちに有効になります。 インスタンスを再始動したり、db2set コマンドに -immediate パラメーターを指定して発行したりする必要はありません。
DB2TCP_CLIENT_KEEPALIVE_TIMEOUT
  • オペレーティング・システム: AIX、 HP-UX、 Linux、Windows (クライアントのみ)
  • デフォルト = 15。 値: 0 - 32 767
  • DB2TCP_CLIENT_KEEPALIVE_TIMEOUT レジストリー変数は、ソケットがアイドル状態のままでいられる時間の合計 (秒単位) を表します。キープアライブ・プローブに応答しないと、応答しないと見なされます。 ソケットが応答しないと見なされると、そのソケットは Db2によって終了されます。 これは、 DB2TCP_SERVER_KEEPALIVE_TIMEOUTに相当するクライアント・サイドです。

    この変数が設定されていない場合は、デフォルトの設定である 15 秒が使用されます。 KeepAliveTimeout キーワードを 0 に設定すると、オペレーティング・システムに設定されているキープアライブ設定が有効になります。 この変数を設定した場合、db2dsdriver.cfg ファイルで指定されているすべての keepAliveTimeout 設定より優先されます。

    この変数を変更すると、それはその後のサーバーへのすべての TCP/IP 接続とアタッチに対してただちに有効になります。

DB2TCP_CLIENT_RCVTIMEOUT
  • オペレーティング・システム: すべて、ただしクライアントのみ
  • デフォルト = 0 (タイムアウトなし)。値: 0 から 32 767
  • DB2TCP_CLIENT_RCVTIMEOUT レジストリー変数は、クライアントが TCP/IP 上のデータを受信する操作を待つ秒数を指定します。 指定された秒数内にサーバーからデータが受信されない場合、 Db2 データベース・マネージャーはエラーを返します。-30081 selectForRecvTimeout.

    レジストリー変数が設定されていないか、または 0 に設定されている場合は、タイムアウトはありません。

    注: DB2TCP_CLIENT_RCVTIMEOUT の値は、 db2cli.ini キーワード ReceiveTimeout または接続属性 SQL_ATTR_RECEIVE_TIMEOUT を使用して、CLI によってオーバーライドできます。
  • この変数を変更すると、それはその後コンパイルされるすべての SQL ステートメントに対してただちに有効になります。 インスタンスを再始動したり、db2set コマンドに -immediate パラメーターを指定して発行したりする必要はありません。
DB2TCPCONNMGRS
  • オペレーティング・システム: すべて
  • デフォルト = 1 (シリアル・マシンの場合); 最大で 16 つの接続マネージャーに切り上げられたプロセッサー数の平方根 (SMP マシンの場合)。 値: 1 から 16
  • このレジストリー変数が設定されていない場合、 デフォルトの数の接続マネージャーが作成されます。 このレジストリー変数が設定されていれば、 ここで割り当てた値がデフォルト値を上書きします。 指定された数 (最大 16) の TCP/IP 接続マネージャーが作成されます。 1 より小さい値が指定された場合、 DB2TCPCONNMGRS には値 1 が設定され、 値が範囲外であることを示す警告がログに記録されます。 16 より大きい値が指定された場合、 DB2TCPCONNMGRS には値 16 が設定され、 値が範囲外であることを示す警告がログに記録されます。 1 から 16 の値を指定した場合、その値がそのまま使用されます。 複数の接続マネージャーが作成されれば、 複数のクライアント接続を同時に受け取る場合の接続スループットが向上するはずです。 ユーザーが SMP マシン上で実行している場合、または DB2TCPCONNMGRS レジストリー変数を変更した場合は、追加の TCP/IP 接続マネージャー・プロセス (UNIX の場合) またはスレッド (Windows オペレーティング・システムの場合) が存在する可能性があります。 追加のプロセスまたはスレッドでは、 追加のストレージを必要とします。
    注: 接続マネージャーの数を 1 に設定すると、多数のユーザー、頻繁な接続と切断、またはその両方が存在するシステムでは、リモート接続のパフォーマンスが低下します。
DB2TCP_SERVER_KEEPALIVE_TIMEOUT
  • オペレーティング・システム: AIX、 HP-UX、 Linux、Windows (サーバーのみ)
  • デフォルト = 60。 値: 0 - 32 767
  • DB2TCP_SERVER_KEEPALIVE_TIMEOUT レジストリー変数は、無応答の TCP/IP クライアントの接続またはアタッチがもはや活動状態でないと判断されるまでの最大時間を指定します (秒単位)。 これは、クライアント側で設定する DB2TCP_CLIENT_KEEPALIVE_TIMEOUT および keepAliveTimeout に相当するサーバー側の変数です。 この変数が設定されていない場合は、デフォルトの設定である 60 秒が使用されます。

    この変数を変更すると、それはその後のサーバーへのすべての TCP/IP 接続とアタッチに対してただちに有効になります。 サーバー・インスタンスを再始動する必要はありません。