メッセージ・フローに
DatabaseRetrieve、
DatabaseRoute、
JavaCompute、
Mapping、または Java™ ユーザー定義ノードを含めて、そのノードでデータベースと対話する場合、ブローカーはそのデータベースとの接続を確立して、そのノードが実行する操作を実施できるようにする必要があります。 JDBCProvider 構成可能サービスを定義して、接続を完了するのに必要な情報をブローカーに提供しなければなりません。
重要: JDBCProvider サービスに名前を付ける際は、以下の要件を考慮してください。
- JavaCompute ノードまたは Java ユーザー定義ノードで JDBCProvider サービスを使用する場合、JDBCProvider サービスの名前は、ノードからの getJDBCType4Connection() API 呼び出しにおける datasourceName パラメーターと一致する必要があります。
- Mapping ノードで JDBCProvider サービスを使用する場合、JDBCProvider サービスの名前は、グラフィカル・データ・マップのデータベース変換で使用するデータベース名と一致している必要があります。 各データベース変換では、データベース名は、マップの作成に使用されたデータ設計プロジェクトのデータベース定義 (.dbm ファイル) によって判別されます。
- DatabaseRetrieve ノードまたは DatabaseRoute ノードで JDBCProvider サービスを使用する場合、JDBCProvider サービスの名前は、ノードの「データ・ソース名」プロパティーの値と一致している必要があります。
JDBCProvider 構成可能サービスは、1 つのデータベースだけへの接続をサポートします。そのため、ノードまたは Java アプリケーションが接続するそれぞれのデータベースのサービスを作成する必要があります。
WebSphere Message
Broker Explorer を使用して Type 4 接続用の JDBC プロバイダーをセットアップするには、新しい構成可能サービスの作成を参照してください。
mqsicreateconfigurableservice または mqsichangeproperties コマンドを使用して Type 4 接続用の JDBC プロバイダーをセットアップするには、以下のステップを実行します。
- JDBCProvider サービスを必要とするデータベースのタイプを識別します。
サポートされるデータベースでは、サポートされている JDBC ドライバーとデータベースが示されています。一部のプラットフォームおよび一部のデータベースでは、グローバル調整 (XA) トランザクションのサポートが制限されます。
- mqsireportproperties コマンドを実行して、使用可能な JDBCProvider サービスのリストを表示します。 broker_name の部分を、使用しているブローカー名で置き換えます。
mqsireportproperties broker_name -c JDBCProviders -a -o AllReportableEntityNames
このコマンド応答では、定義されている JDBCProvider 構成可能サービスがすべてリストされます。 独自の定義を作成していない場合、以下のデフォルト提供サービスのリストが表示されます。
- DB2®
- Informix®
- Informix_With_Date_Format
- Microsoft_SQL_Server
- Oracle
- Sybase_JConnect6_05
Informix データベースに接続する場合は、次のようにします。
- 以前のバージョンの Informix サーバーが使用していた日付形式接続属性に依存するクライアント・アプリケーションとの互換性のためには、Informix_With_Date_Format を使用します。
- 日付形式属性に依存しないクライアント・アプリケーションには、Informix を使用します。
- 関連する JDBCProvider サービス定義の内容を表示します。 例えば、提供されている Oracle 定義を表示するには、以下のコマンドを実行します。
mqsireportproperties broker_name -c JDBCProviders -o Oracle -r
このコマンド応答では、Oracle 定義のすべてのプロパティーがリストされます。
この定義を変更していない場合、プロパティーは初期値に設定されています。その一部は、実行可能な定義を作成するために変更することが必要です。
例えば、databaseName というプロパティーは default_Database_Name に設定されていますが、接続先とする特定のデータベースを識別するためには変更する必要があります。
JDBCProvider サービスには、以下のプロパティーがあります。
- connectionUrlFormat。 特定のデータベース・タイプに固有の、接続 URL 定義を表すパターン。 例えば、DB2 のパターンは以下の内容で定義されます。
jdbc:db2://[serverName]:[portNumber]/[databaseName]:user=[user];password=[password];
実行時にブローカーがデータベースに接続するときに、このパターンはブローカーにより使用され、完成されます。 大括弧内の値 (例えば [serverName]) は、ブローカーにより、mqsicreateconfigurableservice、 mqsichangeproperties、または mqsisetdbparms コマンドで指定した値を使用して、パターンに置き換えられます。
以下の値および優先順位がブローカーによって使用され、パターンのユーザー ID およびパスワードを置換します。
- 最初に、すべてのプラットフォームで: mqsisetdbparms を使用し、-n パラメーターでデータベースを指定することにより、特定のデータベースに対して設定したユーザー ID およびパスワード。
- 2 番目に、すべてのプラットフォームの場合: mqsisetdbparms を使用し、-n パラメーターで jdbc::JDBC を指定することにより、その他のすべてのデータベースに対して設定したユーザー ID およびパスワード。
- 3 番目に、値はプラットフォーム固有です。
Windows の場合: mqsicreatebroker コマンドで指定したブローカー・サービス ID およびパスワード。

Linux および UNIX の場合: ユーザー ID mqsiUser および
パスワード ******** (これらの値は固定)。
z/OS® の場合: ユーザー ID "" およびパスワード ""。
提供されている JDBCProvider サービスの 1 つを使用する場合は、パターン自体を変更するために mqsichangeproperties コマンドを使用しないでください。パターンに変更を加えると、予測不能な結果の原因となる場合があります。
mqsicreateconfigurableservice コマンドを使用して独自の JDBCProvider サービスを定義する場合は、mqsireportproperties コマンドを使用して、connectionUrlFormat ストリングの内容が、デフォルトの提供されているプロバイダーと、使用しているデータベース・タイプに関して正確に一致しているか検査します。
さらに、z/OS で作業する場合に、JCL ファイルの BIPCRCS と BIPCHPR を使用して JDBCProvider サービスを定義する際には、ブローカーが稼働するのと同じコード・ページを使用して 3270 エミュレーターが構成されていることを確認してください。 コード・ページが一致しない場合は、定義した connectionUrlFormat ストリング・パターンがブローカーで正しく認識されない可能性があります。
- connectionUrlFormat Attr1-5。 データベースに対して定義された URL パターンに、サーバー ID などの非標準 JDBC データ・ソース・プロパティーが含まれている場合は、標準属性のほかに、5 種類の汎用接続の URL 属性のいずれかを使用して、これらのプロパティーを指定します。 以下に例を示します。
- connectionURLFormat = jdbc:oracle:thin:[user]/[password]@[serverName]:[portNumber]:[connectionUrlFormatAttr1] である場合、connectionUrlFormatAttr1 には、mqsicreateconfigurableservice または mqsichangeproperties コマンドでプロパティー connectionUrlFormatAttr1 に対して値を定義することで提供する必要がある、Oracle サーバー ID が含まれていなければなりません。
それによりブローカーは、すべての必要な値を必要なパターンに置き換えることができます。
- connectionURLFormat = jdbc:informix-sqli://[serverName]:[portNumber]/[databaseName]:informixserver=[connectionUrlFormatAttr1];
user=[user];password=[password] である場合、connectionUrlFormatAttr1 に、サーバー (通常は INFORMIXSERVER 環境変数により指定される) 上の Informix インスタンスの名前が含まれている必要があります。 この値は大/小文字の区別があります。
- databaseName。 データ・ソース・エントリーが接続を可能にするデータベースの名前。employees など。
- databaseSchemaNames。
必要に応じて、メッセージ・フローのノードによって作成される SQL ステートメントで使用されるデータベース・スキーマの名前をオーバーライドします。 このプロパティーは Mapping ノードによってのみ、およびデータベース変換を組み込んだグラフィカル・データ・マップを呼び出す場合にのみ使用されます。 詳しくは、JDBCProviders 構成可能サービスを参照してください。
- databaseType。 データベースのタイプ。DB2 など。
- databaseVersion。 データベースのバージョン。9.1 など。
- description。 データ・ソース定義を記述するためのオプション・プロパティー。
- environmentParms。 DB2 および Informix の場合のみ。データ・ソースのプロパティーのリストを指定するオプション・プロパティー。形式は name=value で、それぞれの値はセミコロンで区切られます。
- jarsURL。 ブローカーが実行されているシステム上のローカル・ディレクトリー・パス。
ここには、Type 4 ドライバー・クラスを含む JAR ファイルが配置されています。
さらに、ストレージ・エリア・ネットワーク・ディスクをディレクトリー・パスに使用できますが、リモート・コンピューターにマップされるネットワーク・ドライブは使用できません。
- maxConnectionPoolSize。
オプションでこのプロパティーを設定して、JDBC 接続プールを作成します。
詳しくは、実行グループで使用するデータベース・リソースを JDBC 接続プールで管理する操作を参照してください。
- portNumber。 データベース・サーバーが listen しているポート番号。50000 など。
- securityIdentity。 関連付けられたホスト・システム上に暗号化されたパスワードを格納するブローカーのセキュリティー ID の下でエントリーを検索するために、2 度めのブローカー・レジストリー・ルックアップを実施する固有なセキュリティー・キー。mysecurityIdentity など。
JDBC Type 4 接続の保護で説明されているように、mqsisetdbparms コマンドを使用して、セキュリティー ID を作成します。 mysecurityIdentity の値 (mysecurityIdentity など) は、そのコマンドの -n パラメーターに対して、接頭部 jdbc:: に続いて指定した値と一致しなければなりません。
セキュリティー ID はユーザー ID とパスワードの値の組を提供し、それらの値は特定の JDBCProvider サービス・エントリーに対して定義された指定のデータ・ソースにアクセスするために使用されます。このプロパティーは接続 URL に、挿入と置換にプロパティー値を必要とするようなユーザー ID
とパスワードの組が含まれていない場合には無視されます。
デフォルト値は mqsisetdbparms コマンドで jdbc::JDBC の ResourceName を指定することによって設定でき、以下の条件で使用されます。
- securityIdentity がブランクであるか、またはそれをデフォルト値の default_User@default_Server から変更していないが、接続 URL パターンに ID が必要な場合。
- 有効な固有のセキュリティー ID キーを入力したが、それを DSN キーの下で見つけられない場合。
- serverName。 サーバーの名前。host1 など。
- type4DatasourceClassName。 リモート・データベースへの Type 4 接続を確立し、トランザクション・サポートを整合するために使用される、JDBC データ・ソース・クラス名。
例えば、DB2 では com.ibm.db2.jcc.DB2XADataSource を指定するか、または、Oracle では oracle.jdbc.xa.client.OracleXADataSource を指定します。 整合トランザクションに getJDBCType4Connection() API 呼び出しを使用する場合は、XA クラス名を指定する必要があります。 データベース・サーバーが XA トランザクションをサポートしていない場合、または XA プロトコルを使用しないことにする場合、このプロパティーはオプションとなり、jdbcProviderXASupport プロパティーを false に設定する必要があります。
- type4DriverClassName。 接続を確立するために使用される、JDBC Type 4 ドライバー・クラス名。 例えば、DB2 では com.ibm.db2.jcc.DB2Driver を指定するか、または、Oracle では oracle.jdbc.OracleDriver を指定します。
- jdbcProviderXASupport。 ブローカーが XA プロトコルを使用してデータベース・サーバーに接続するかどうかを制御するオプションのプロパティー。 デフォルトでは、このプロパティーは true に設定されます。 データベース・サーバーが XA サポートに対応していない場合、または整合トランザクションが必要ではない場合は、この値を false に設定します。 このように設定すると、type4DatasourceClassName プロパティーに指定されたタイプ 4 データ・ソースではなく、type4DriverClassName プロパティーを使用して指定されたタイプ 4 ドライバーが使用されます。
- 提供された定義を使用する場合、mqsichangeproperties コマンドを実行して、デフォルトの値を、ご使用のデータベースおよび環境に固有の値に置き換えてください。 必須値に関して分からないことがある場合は、データベース管理者に問い合わせるか、選択したデータベースに付属の資料を確認してください。 いくつかの値はデータベース製品をインストールした方法やその位置によって異なります。例えば、jarsURL というプロパティーは、データベース・プロバイダーにより提供されてインストールされた JAR ファイルの場所を示します。
- 例えば提供されたサービスを将来の定義のためにテンプレートとして保存するなどの理由で、新規の構成可能サービスを作成する場合は、mqsicreateconfigurableservice コマンドを実行して定義を作成します。
mqsicreateconfigurableservice broker_name -c JDBCProviders -o provider_name
-n list of properties -v list of values
コマンドは 1 行で入力します。上記の例は読みやすさのために改行しています。
選択したデータベース・プロバイダーが要求するすべてのプロパティーを指定します。 プロパティーと値のリストを指定するには、各フラグの後の項目をコンマで区切ります。 例えば、-n databaseName,databaseType -v EmployeeDB,DB2 のようにします。 mqsicreateconfigurableservice コマンドですべてのプロパティーを指定したわけではない場合、後から mqsichangeproperties コマンドでそれらを更新することができます。
- JDBCProvider サービスをセットアップまたは変更したら、JDBCProvider サービスを現在使用している実行グループ、または使用する予定の実行グループを、再ロードする必要があります。