2.6.4 DBアダプタの接続先情報の動的変更
DBアダプタの接続先は,接続先のDB Connectorのリソースの別名をDBアダプタに設定することで動的に変更できます。ビジネスプロセスで接続先のDB Connectorのリソースの別名を設定しておくと,DBアダプタを実行したときに接続先が変更されます。これによって,作成するDBアダプタの数を削減できます。
(1) 接続先動的変更の処理の流れ
DBアダプタの接続先動的変更の処理の流れを次に示します。
-
要求電文内のヘッダ電文から接続先情報を取得します。
-
取得した接続情報を基にデータベースとのコネクションを確立します。
なお,接続情報がヘッダ電文に設定されていないなど,接続先情報の取得に失敗した場合は,リクエスト処理がエラーになります。
(2) 接続先動的変更の前提条件
DBアダプタの接続先を動的に変更するための前提条件を次に示します。
(a) リソース名の別名付与
接続先のDB Connectorにリソースの別名を付けます。
別名の付与規則については,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「2.6.2 別名の付与規則」を参照してください。
(b) SQLオペレーション定義ファイルの設定
SQLオペレーション定義ファイルのdynamic属性に「Y」を設定します。
(c) DB Connector種別の選択
接続先のDB Connectorの種別は,SQLオペレーション定義ファイルに設定したデータベース種別と同一にします。
(d) トランザクションサポートレベルの設定
接続先のDB Connectorのトランザクションサポートレベルは,「LocalTransaction」または「XATransaction」を指定できます。
指定できるトランザクションサポートレベルと指定できる条件を次の表に示します。
指定できるトランザクションサポートレベル |
指定できる条件 |
---|---|
LocalTransaction,またはXATransaction |
|
XATransaction |
上記以外の場合 |
(e) ビジネスプロセスの設定
ビジネスプロセスで接続先情報を設定します。
(3) 接続先情報を動的に変更する例
接続先情報ファイルを使用して,接続先情報を動的に変更する例を説明します。
(a) ビジネスプロセスの例
接続先情報ファイルを使用するビジネスプロセスの例を次の図に示します。
-
サービスリクエスタがビジネスプロセスにサービス部品の実行を要求します。
-
サービスリクエスタから送付する要求電文内のヘッダ電文に接続先情報(DB Connectorのリソースの別名)を設定します。
-
ビジネスプロセスはXMLの要求電文を受付アクティビティで受け取ります。
-
ビジネスプロセスがヘッダ要求データおよび要求データを生成します。
-
ヘッダ要求データの接続先情報を,データ変換アクティビティなどで接続先情報変数に設定します。
-
ビジネスプロセスは接続先情報変数に含まれる接続先情報をDBアダプタに設定して,サービス部品を呼び出します。
-
ビジネスプロセスが,サービス部品の実行結果をXMLの応答電文として構成し,応答アクティビティで返します。
-
サービスリクエスタへの応答が返されます。
-
サービスリクエスタへの応答では,XMLの応答電文が送付されます。
(4) ユーザ定義受付を生成するWSDLの作成例
ユーザ定義受付を生成するWSDLの作成例を次に示します。
なお,この例では,接続先となるDB Connectorのリソースの別名をSOAPヘッダで送付しています。
(a) データ変換アクティビティの設定例
「図2-50 接続先情報ファイルを使用するビジネスプロセスの例(DBアダプタの場合)」に示すビジネスプロセスで使用するデータ変換アクティビティの設定例を次に示します。
ここでは,変換元に「ヘッダ要求データ」を,変換先に「接続先」を指定しています。
また,変換のマッピングは,次の図に示すとおりに定義します。
(b) 接続先情報ファイルの定義
DB Connectorのリソースの別名をDBアダプタに設定するための接続先情報ファイル(XMLスキーマ)に定義します。
サービスプラットフォームでは,接続先情報ファイルを提供しています。
-
接続先情報ファイルの格納先
<サービスプラットフォームのインストールディレクトリ>/CSC/schema/connection/connection_db_adapter.xsd
- 注意事項
-
DBアダプタの接続先情報を動的に変更する場合,サービスプラットフォームで提供している接続先情報ファイルを使用してください。提供している接続先情報ファイルを使用しなかった場合,動作は保証されません。
-
接続先情報ファイルの形式
<?xml version="1.0" encoding="UTF-8"?> <!-- DO NOT EDIT THIS FILE. --> <xsd:schema elementFormDefault="qualified" targetNamespace="http://www.hitachi.co.jp/soft/xml/cosminexus/csc/connection/change/dba" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="dbaAddress"> <xsd:complexType> <xsd:sequence> <xsd:element name="optionalName" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>
-
設定できる要素
- optionalName
-
DB Connectorに設定したリソースの別名を指定します。
(c) 接続先情報の設定
「図2-50 接続先情報ファイルを使用するビジネスプロセスの例(DBアダプタの場合)」に示すビジネスプロセスで使用する接続先情報の設定例を次に示します。なお,接続先情報は,サービス呼出アクティビティのヘッダ割当変数に設定します。ここで設定した情報が,DBアダプタで参照できる情報になります。