Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Server Base Enterprise Option 使用の手引


11.8.5 SQLタイムアウト

DBキュー機能では,SQLを発行してDBにアクセスします。リソースマネジャにHiRDBを使用する場合と,Oracleを使用する場合について説明します。

〈この項の構成〉

(1) HiRDBをリソースマネジャとして使用する場合

ディスク障害,HiRDBの通信障害などが原因で処理が滞るのを防ぐため,SQLタイムアウトを設定します。SQLタイムアウトは,HiRDBのクライアント環境定義のPDCWAITTIMEオペランドに指定します。

なお,HiRDBのクライアント環境定義のPDCWAITTIMEオペランドの値は,TP1/EEのトランザクション関連定義のtrn_expiration_timeオペランド,およびTP1/EEのプロセス関連定義のsys_dba_waittimeオペランドより小さい値を指定してください。

(2) Oracleをリソースマネジャとして使用する場合

OracleクライアントとOracleサーバとの間で通信障害が発生した場合に処理が滞るのを防ぐため,障害を検知できるようにSQLタイムアウトを設定します。SQLタイムアウトは,Oracleクライアントのtnsnames.oraファイルに「ENABLE=BROKEN」を記述することで設定します。

なお,tnsnames.oraファイルの「ENABLE=BROKEN」での障害検知を有効にするために,TP1/EEのプロセス関連定義のsys_dba_waittimeオペランド,およびトランザクション関連定義のtrn_expiration_timeオペランドの値は,TCP/IPのKEEPALIVEの時間間隔よりも大きい値を指定してください。TCP/IPのKEEPALIVEは,OSのコマンド(noコマンド)で設定および確認してください(例:/usr/sbin/no -o tcp_keepidle)。OSがLinuxの場合は,OSのコマンド(sysctlコマンド)で設定および確認してください(例:sysctl net.ipv4.tcp_keepalive_time)。