1.3.4 DBサーバの共有

Cosminexus RMはDBサーバが動作するマシンとは異なるマシンで動作できます。この場合,マシン間をLAN回線などで接続します。DBサーバの共有は,永続版リソースアダプタだけが利用できます。

1台のマシンには一つ以上のCosminexus RMを動作させることができます。また,複数のCosminexus RMで一つのDBサーバを共有できます。

しかし,一つのCosminexus RMが複数のDBサーバに接続することはできません。

DBサーバの共有について,次の図に示します。

図1-9 DBサーバの共有

[図データ]

<この項の構成>
(1) 管理情報テーブルとの対応関係
(2) XATransaction利用時のリソースアダプタ間でのDB共有の制限

(1) 管理情報テーブルとの対応関係

Cosminexus RMは,メッセージを格納するキューや管理情報をDB上の管理情報テーブルに保存します。管理情報テーブルは,Cosminexus RMに1:1に対応する必要があります。複数のCosminexus RMで一つの管理情報テーブルを共有できません。特に,一つのJ2EEサーバ上で複数のCosminexus RMを動作させる場合はご注意ください。

管理情報テーブルはRMSystemNameプロパティ指定値によって特定のCosminexus RMと対応づけられます。複数のCosminexus RMがある場合は,システム間でRMSystemNameプロパティ指定値を一意にしてください。

管理情報テーブルの作成方法については,HiRDBの場合は「3.4.1(3) Cosminexus RMの管理情報テーブルの作成」を,Oracleの場合は「3.4.2(3) Cosminexus RMの管理情報テーブルの作成」を参照してください。

Cosminexus RMと管理情報テーブルの対応について,次の図に示します。

図1-10 Cosminexus RMと管理情報テーブルの対応

[図データ]

図中の番号(a)~(c)について説明します。

(a)
Cosminexus RM(1)がDB上の管理情報テーブル(1)と1:1に対応しています。
(b)
Cosminexus RM(2)がDB上の管理情報テーブル(2)と1:1に対応しています。Cosminexus RM(3)がDB上の管理情報テーブル(3)と1:1に対応しています。
管理情報テーブル(2)と管理情報テーブル(3)は,同じDB上に作成されています。
(c)
Cosminexus RM(4)とCosminexus RM(5)がDB上の管理情報テーブル(4)を共有しようとしています。これはCosminexus RMがサポートしない不正な構成です。

(2) XATransaction利用時のリソースアダプタ間でのDB共有の制限

トランザクションのサポートレベルがXATransactionで,Cosminexus RMのほかにも,DBに関連するリソースアダプタ(DB Connectorなど)が動作し,各リソースアダプタが同じDBを使用する場合は,次に示す制限があります。

(a) 一つのJ2EEサーバ内の複数のリソースアダプタが共通のDBを利用する場合
接続先DBがHiRDBのとき
XAOpen文字列の値は,リソースアダプタごとに一意となるように指定してください。Cosminexus RMでは,XAOpen文字列を連携先のDB Connectorに指定します。
接続先DBがOracleのとき
連携先のDB Connectorとの間でDBコネクションを共有するときだけDBを共有できます。この場合,一つのJ2EEサーバ上に複数のCosminexus RMをデプロイして利用できません。

一つのJ2EEサーバ上で複数のリソースアダプタを利用する場合の,リソースアダプタのDB共有について,次の図に示します。

図1-11 リソースアダプタのDB共有(J2EEサーバが一つの場合)

[図データ]

(b) 複数のJ2EEサーバ内の複数のリソースアダプタが共通のDBを利用する場合
接続先DBがHiRDBのとき
XAOpen文字列の値は,リソースアダプタごとに一意となるように指定してください。Cosminexus RMでは,XAOpen文字列を連携先のDB Connectorに指定します。
接続先DBがOracleのとき
特に制限はありません。

複数のJ2EEサーバ上で複数のリソースアダプタを利用する場合の,リソースアダプタのDB共有について,次の図に示します。

図1-12 リソースアダプタのDB共有(J2EEサーバが複数の場合)

[図データ]