2.7.3 DB Connector for Cosminexus RM連携時のコネクションとSQLの運用

Cosminexus RMとDB Connector for Cosminexus RMが連携するときのコネクションとSQLの運用について説明します。

<この項の構成>
(1) コネクションの共有
(2) ステートメントキャンセル
(3) 障害調査用SQLの出力
(4) 軽微な障害時のコネクション再利用
(5) コネクションIDの取得
(6) コネクションの接続テスト

(1) コネクションの共有

DB Connector for Cosminexus RMとCosminexus RMは,共にJDBCコネクションを利用します。同一トランザクション内でJDBCとJMSのアクセスを行う場合は,JDBCコネクションを共有できます。

DB Connector for Cosminexus RMとCosminexus RMの間でコネクションを共有するには,次の条件を満たす必要があります。

コネクション共有の条件を満たさない場合は,別のJDBCコネクションが取得されます。この場合も,トランザクションマネジャでのトランザクション内では最初にトランザクションに参加したJDBCコネクションが常に利用されます。つまり,2番目以降のJDBCコネクションに対する処理も,最初のJDBCコネクションを利用して行われるので注意が必要です。

なお,コネクション共有を利用するかどうかに関係なく,JDBCコネクションはCosminexus RMのコネクションとしてプール管理されます。一方,DB Connector for Cosminexus RMのコネクションはプール管理されません。コネクション取得時にはCosminexus RMのコネクションプールからJDBCコネクションを取得します。

(2) ステートメントキャンセル

DB Connector for Cosminexus RMと連携する場合,実行中のSQL処理が返ってこない状態でトランザクションのタイムアウトが発生すると,ステートメントがキャンセルされます。

Cosminexus RMのステートメントキャンセルで注意する点を次に示します。

(3) 障害調査用SQLの出力

デッドロックやスローダウンなどの障害が発生した場合,発行したSQLが障害の要因となった可能性があります。そこで,発行したSQLをログに出力することによって,障害要因の解析が容易になります。ログに出力されるSQLの情報を障害調査用SQLと呼びます。障害調査用SQLの詳細については,マニュアル「Cosminexus 機能解説」を参照してください。

Cosminexus RMの障害調査用SQLの出力で注意する点を次に示します。

(4) 軽微な障害時のコネクション再利用

コネクション利用時に発生したエラーが,テーブルの一意性に違反したSQLの発行など軽微な障害の場合,コネクションを再利用します。

Cosminexus RMの軽微な障害時のコネクション再利用で注意する点を次に示します。

(5) コネクションIDの取得

DB Connector for Cosminexus RMと連携した場合,接続先DBのコネクションIDを取得できます。コネクションIDとは,DBとの接続に使用しているコネクションを一意に識別するための接続情報です。コネクションIDの取得の詳細については,マニュアル「Cosminexus システム運用ガイド」を参照してください。

Cosminexus RMのコネクションIDの取得で注意する点を次に示します。

(6) コネクションの接続テスト

Cosminexus Component Containerが提供するCosminexus RMの接続テストを行うには,連携するDB Connector for Cosminexus RMが稼働中であることが前提となります。また,DB Connector for Cosminexus RMの接続テストでは,Cosminexus RMとDB Connector for Cosminexus RMの両方が稼働中であることを前提とします。

接続テストに失敗した場合は,メッセージの内容に応じて要因を取り除いてください。