Cosminexus 機能解説

[目次][用語][索引][前へ][次へ]

9.5.2 DB Connector for Cosminexus RMとCosminexus RMによる接続の特徴

ここでは,DB Connector for Cosminexus RMとCosminexus RMによる接続の特徴について説明します。

<この項の構成>
(1) DB Connector for Cosminexus RMおよびCosminexus RMによる処理の概要
(2) DB Connector for Cosminexus RMとCosminexus RMによるデータベース接続の構成

(1) DB Connector for Cosminexus RMおよびCosminexus RMによる処理の概要

DB Connector for Cosminexus RMを使用してCosminexus RMと連携することによって,データベース上のキューに対するJMSインタフェースによるメッセージの送受信や,メッセージによって起動されるMessage-driven Beanの呼び出しなどができます。

DB Connector for Cosminexus RMとCosminexus RMによってデータベースに接続する場合,JMSインタフェースとJDBCインタフェースによるアクセスで使用する物理コネクションを共有することによって次のことが実現できるため,処理性能が向上します。

サーブレット,JSP,または,Enterprise Beanから,JMSインタフェースとJDBCインタフェースを使用して,データベースにアクセスするときのDB Connector for Cosminexus RMおよびCosminexus RMの処理の概要を次の図に示します。

図9-7 DB Connector for Cosminexus RMおよびCosminexus RMの処理の概要

[図データ]

JMSインタフェースによるアクセスはCosminexus RMを経由して,JDBCインタフェースによるアクセスはDB Connector for Cosminexus RMを経由して,データベースにアクセスします。なお,Cosminexus RMでは,キューをデータベース上に構築するため,内部的にJDBCインタフェースによるデータベースへのアクセスを使用します。そのため,JDBCドライバを経由してデータベースにアクセスします。

また,DB Connector for Cosminexus RMでは,Cosminexus RMを経由して,Cosminexus RMと物理コネクションを共有してデータベースにアクセスします。これらのリソースアダプタでは,Cosminexus RM用のコネクションプールを利用してコネクションを取得します。これによって,物理コネクションの共有を実現しています。

(2) DB Connector for Cosminexus RMとCosminexus RMによるデータベース接続の構成

DB Connector for Cosminexus RMとCosminexus RMを使用して接続する場合のリソースの構成パターンについて説明します。ここでは,次に示す場合のリソースの構成について説明します。

なお,JMSインタフェースとJDBCインタフェースで同一データベースにアクセスする場合と,Message-driven Beanを使用する場合は,コネクションの共有ができます。ただし,コネクションを共有するためには,次に示す前提条件を満たしている必要があります。

コネクション共有の前提条件
  • ユーザプログラムで,同一トランザクション内でJMSインタフェースによるデータベース上のキューへのアクセスと,JDBCインタフェースによるテーブルへのアクセスを実施する。
  • Cosminexus RMによってキューを構築するデータベースと,テーブルにアクセスするデータベースが同じである。
  • JMSインタフェースよるデータベース上のキューへのアクセスと,JDBCインタフェースによるデータベース上のテーブルへのアクセスで使用するセキュリティ情報(ユーザ名,パスワード)と,サインオンの方式が同じである。
  • DB Connector for Cosminexus RMとCosminexus RMへのリファレンスを設定しているJ2EEアプリケーションで,DDの<res-sharing-scope>タグの値に「Shareable」が設定されている。
    注意
    • JDBCインタフェースだけを使用してデータベースにアクセスする場合,リソースアダプタとしてDB Connectorを使用してください。
    • コネクション共有の前提条件を満たさない場合,DB Connector for Cosminexus RMとCosminexus RMによってJMSインタフェースとJDBCインタフェースの両方を使用したデータベースへのアクセスはしないでください。この場合,「(c) JMSインタフェースとJDBCインタフェースで異なるデータベースにアクセスする場合」に示す構成にして,テーブルへのアクセスにはDB Connectorを使用してください。
(a) JMSインタフェースだけを使用する場合

ユーザプログラムでデータベース上のキューに対してだけアクセスする場合,次の図に示す構成で使用します。

図9-8 JMSインタフェースだけを使用する場合の構成

[図データ]

(b) JMSインタフェースとJDBCインタフェースで同一データベースにアクセスする場合

ユーザプログラムでJMSインタフェースとJDBCインタフェースを使用してデータベースにアクセスする場合,コネクション共有の前提条件を満たしているときは,2種類のインタフェースで同一のデータベースにアクセスできます。このとき,次の図に示す構成で使用します。

この構成にすることによって,コネクションの共有によるトランザクション処理性能の向上とリソースの有効利用を実現できます。

図9-9 JMSインタフェースとJDBCインタフェースでアクセスするデータベースが同じ場合の構成

[図データ]

(c) JMSインタフェースとJDBCインタフェースで異なるデータベースにアクセスする場合

ユーザプログラムでJMSインタフェースとJDBCインタフェースを使用してデータベースにアクセスする場合,コネクション共有の前提条件を満たしていないときは,インタフェースごとに,異なるデータベースにアクセスする構成にする必要があります。このとき,次の図に示す構成で使用します。

図9-10 JMSインタフェースとJDBCインタフェースでアクセスするデータベースが異なる場合の構成

[図データ]

データベース上のキューへのアクセスには,DB Connector for Cosminexus RMとCosminexus RMを使用します。また,データベース上のテーブルへのアクセスには,DB Connectorを別途用意して使用する必要があります。

(d) Message-driven Beanを使用する場合

Message-driven Beanを使用する場合,次の図に示す構成で使用します。コネクションの共有条件を満たす場合には,DB Connector for Cosminexus RMのJDBCインタフェースを使用して,Message-driven BeanとJDBCインタフェースでコネクションを共有することができます。

なお,Message-driven Beanを使用する場合,関連づけるリソースアダプタがCosminexus RM 01-01以降のときは,グローバルトランザクションおよびローカルトランザクションを使用できます。Cosminexus RM 01-00のリソースアダプタを使用する場合は,グローバルトランザクションを使用する必要があります。このとき,ローカルトランザクションを使用することはできませんが,コネクション共有の前提条件を満たしていれば,グローバルトランザクションは1フェーズで決着されます。

図9-11 Message-driven Beanを使用する場合の構成

[図データ]