データベースへの接続

ブローカーは ODBC を使用してそのデータベースにアクセスするので、ブローカー・システムごとに 1 つの ODBC 接続を設定する必要があります。このトピックでは、ブローカー・データベースで必要な接続や、必要な接続の定義方法を説明します。

ブローカー・データベース接続

ブローカーが必要とするそのデータベースとの接続の数は、それが処理しているメッセージ・フローのアクションにある程度依存します。 以下の接続が各ブローカーで必要です。

  • 内部ブローカー・スレッドによる 5 つ。
  • トポロジーがデプロイされている場合、それぞれのパブリッシュ/サブスクライブの近隣ごとに 1 つ。
  • Publication ノードを含むメッセージ・フロー・スレッドごとに 1 つ。
  • MRM メッセージを構文解析するメッセージ・フロー・スレッドごとに 1 つ。
  • WebSphere MQ Everyplace とともに SCADA ノードを使用している場合はさらに必要。 追加する正確な数は、スレッド・プーリングが使用中かどうかに依存します (SCADAInput ノードの「スレッド・プール使用 (Use Thread Pooling)」プロパティーをチェックします)。
    • 「スレッド・プール使用 (Use Thread Pooling)」が選択されていない (デフォルト設定) 場合、SCADAInput ノードに接続する SCADA クライアントの数を追加します。
    • 「スレッド・プール使用 (Use Thread Pooling)」が選択されている場合、SCADAInput ノードの「スレッドの最大数 (Max Threads)」プロパティーの値を追加します。 デフォルト値は 500 です。

複数のブローカーで同じデータベースを使用している場合、すべてのブローカーを考慮に入れて計算しなければなりません。

保存パブリケーションを使用する場合、近隣の接続および publication ノードが必要です。

ブローカーを始動する際、ブローカーはその独自の操作のために、必要なブローカー・データベースとの接続をすべて開きます。 ブローカーを停止する際、ブローカーはすべての現行データベース接続ハンドルをリリースします。

自分のデータベースとして DB2 を使用する場合、DB2 が行うデフォルトのアクションは、データベースへの同時接続の数を maxappls 構成パラメーターの値に制限することです。 maxappls のデフォルト値は 40 です。 ブローカーに必要な接続数が maxappls の値を超過すると考えられる場合、このパラメーターおよびそれと関連するパラメーター maxagents を計算に基づく新しい値に増やします。

UNIX プラットフォーム上での ODBC 接続の定義

Linux プラットフォーム: Linux プラットフォーム上では ODBC 構成は必要ありません。 このプラットフォームでは、WebSphere Business Integration Message Broker は、唯一サポートされるデータベースである DB2 に直接接続します。

UNIX 環境では、ODBC アドミニストレーターもドライバー・マネージャーもありません。 ODBC データ・ソース名 (DSN) 定義を構成するには、必要なシステム情報を編集する必要があります。これは、.odbc.ini という名前のプレーン・テキスト・ファイルに保持されます (このファイルの名前はピリオドで始まります)。

このファイルは、ODBCINI 環境変数によって識別されるディレクトリー内に作成する必要があります。 この変数が設定されていない場合、ディレクトリーのデフォルトは /var/wmqi/odbc ディレクトリーになります。 このディレクトリーはWebSphere Business Integration Message Broker のインストール時に作成されます。 このファイルには mqm:mqbrkrs のファイル許可がなければなりません。

サンプル・テンプレートがファイル<install_dir>/wmqi/merant/odbc.ini として提供されており、このファイルには WebSphere Business Integration Message Broker がサポートする各データベース内にある DSN の構成方法例が含まれています。 サポートされるプラットフォームのサンプル・テンプレート・ファイルは以下に示されています。 それらは、サポートされるデータベースの推奨される構成を示しています。

ローカル要件と一致するように構成しなければならないスタンザ内のエントリーはイタリックで示されています (これらのエントリーの説明は、例の次に示されています。ODBC.ini パラメーターを参照してください)。 すべてのエントリーを表示させておく必要がありますが、構成で必要なければスタンザそのものを除去することができます (例えば、Oracle データベースを使用する場合、DB2 および Sybase に関して示されるスタンザを除去することができます)。

デフォルト・ファイルのコピーを作り、ODBCINI をそのコピーを指すように設定し、デフォルトにではなくてそのコピー・ファイルに対して変更を行います。

適切なライブラリー検索パス環境変数 (Solaris では LD_LIBRARY_PATH) が使用される指定データベース製品を反映するように設定します。 詳しくは、データベース製品資料を参照してください。

変更の始まりAIX プラットフォーム: AIX 上では、データベースとして DB2 を使用する場合、単一プロセスからは共用メモリーを使用する最大 10 個の接続が許されます。 ということは、同時に 1 個か 2 個より多いメッセージ・フローをデプロイすると、DB2 エラー・メッセージ SQL1224N で示される接続の失敗が生じる可能性があります。 ブローカーの実行グループからシステム・ログに接続エラーが報告されます。 この問題を回避するには、TCP/IP モードを使用して DB2 に接続しなければなりません。 この作業を行う方法について詳細は、DB2への接続中に DB2 エラー・メッセージ SQL 1224N を受け取るを参照してください。変更の終わり

AIX
[ODBC Data Sources]
WBRKBKDB=IBM DB2 ODBC Driver
MYDB=IBM DB2 ODBC Driver
ORACLEDB=DataDirect 410 Oracle Driver
SYBASEDB=DataDirect 410 Sybase ASE Driver
 
[WBRKBKDB]
Driver=/u/db2inst1/sqllib/lib/libdb2.a
Description=WBRKBKDB DB2 ODBC Database
Database=WBRKBKDB
 
[MYDB]
Driver=/u/db2inst1/sqllib/lib/libdb2.a
Description=MYDB DB2 ODBC Database
Database=MYDB

[ORACLEDB]
Driver=/usr/opt/wmqi/merant/lib/UKor818.so
Description=Oracle
ServerName=YourServerName
EnableDescribeParam=1
OptimizePrepare=1
WorkArounds=536870912
WorkArounds2=2
 
[SYBASEDB]
Driver=/usr/opt/wmqi/merant/lib/UKase18.so
Description=Sybase12
Database=sybasedb
ServerName=YourServerName
WorkstationID=id
EnableDescribeParam=1
OptimizePrepare=1
SelectMethod=0
NetworkAddress=10.30.14.72,5000
SelectUserName=1 
 
[ODBC]
Trace=0
TraceFile=/var/wmqi/odbc/odbctrace.out
TraceDll=/usr/opt/wmqi/merant/lib/odbctrac.so
InstallDir=/usr/opt/wmqi/merant
HP-UX
[ODBC Data Sources]
WBRKBKDB=IBM DB2 ODBC Driver
MYDB=IBM DB2 ODBC Driver
ORACLEDB=DataDirect 410 Oracle Driver
SYBASEDB=DataDirect 410 Sybase ASE Driver
 
[WBRKBKDB]
Driver=/u/db2inst1/sqllib/lib/libdb2.sl
Description=WBRKBKDB DB2 ODBC Database
Database=WBRKBKDB
 
[MYDB]
Driver=/u/db2inst1/sqllib/lib/libdb2.sl
Description=MYDB DB2 ODBC Database
Database=MYDB
 
[ORACLEDB]
Driver=/opt/wmqi/merant/lib/UKor818.sl
Description=Oracle
ServerName=YourServerName
EnableDescribeParam=1
OptimizePrepare=1
WorkArounds=536870912
WorkArounds2=2
 
[SYBASEDB]
Driver=/opt/wmqi/merant/lib/UKase18.sl
Description=Sybase12
Database=sybasedb
ServerName=YourServerName
WorkstationID=id
EnableDescribeParam=1
OptimizePrepare=1
SelectMethod=0
NetworkAddress=10.30.14.72,5000
SelectUserName=1 
 
[ODBC]
Trace=0
TraceFile=/var/wmqi/odbc/odbctrace.out
TraceDll=/opt/wmqi/merant/lib/odbctrac.sl
InstallDir=/opt/wmqi/merant
Solaris
[ODBC Data Sources]
WBRKBKDB=IBM DB2 ODBC Driver
MYDB=IBM DB2 ODBC Driver
ORACLEDB=DataDirect 410 Oracle Driver
SYBASEDB=DataDirect 410 Sybase ASE Driver
 
[WBRKBKDB]
Driver=/u/db2inst1/sqllib/lib/libdb2.so
Description=WBRKBKDB DB2 ODBC Database
Database=WBRKBKDB
 
[MYDB]
Driver=/u/db2inst1/sqllib/lib/libdb2.so
Description=MYDB DB2 ODBC Database
Database=MYDB
 
[ORACLEDB]
Driver=/opt/wmqi/merant/lib/UKor818.so
Description=Oracle
ServerName=YourServerName
EnableDescribeParam=1
OptimizePrepare=1
WorkArounds=536870912
WorkArounds2=2
 
[SYBASEDB]
Driver=/opt/wmqi/merant/lib/UKase18.so
Description=Sybase12
Database=sybasedb
ServerName=YourServerName
WorkstationID=id
EnableDescribeParam=1
OptimizePrepare=1
SelectMethod=0
NetworkAddress=10.30.14.72,5000
SelectUserName=1 
 
[ODBC]
Trace=0
TraceFile=/var/wmqi/odbc/odbctrace.out
TraceDll=/opt/wmqi/merant/lib/odbctrac.so
InstallDir=/opt/wmqi/merant

AIX または Solaris 上の Oracle データベースにアクセスする場合、シンボリック・リンクをセットアップする必要があります。

  • AIX の場合:
    ln -s <ORACLE_INSTALL_DIR>/lib/libclntsh.a /usr/lib/libclntsh.so
  • Solaris の場合:
    ln -s <ORACLE_INSTALL_DIR>/lib/libclntsh.so /usr/lib/libclntsh.a

(ここで <ORACLE_INSTALL_DIR> は、システム上で Oracle がインストールされているディレクトリーです。)

このステップは HP-UX では必要ありません。

このリンクを正しくセットアップできない場合、XA 調整は正しく機能しません。 ブローカーのキュー・マネージャーは始動します (ブローカーの始動時、またはブローカーと別々に始動することを選択した場合は strmqm 発行時) が、Oracle がエラー XAER_RMFAIL または XAER_RMERR を戻したことを示すエラー AMQ7604WebSphere MQ キュー・マネージャー・エラー・ログに記録されます。

Windows 上での ODBC 接続の定義

Windows では、「ODBC データ ソース アドミニストレータ」を使って ODBC データ・ソースを構成することができます。 (「スタート」 > 「設定」 > 「コントロール パネル」を選択してから「ODBC」を選択します。)新規データ・ソースを定義する際、データベースの適切なドライバーを選択し、表示されるダイアログを完成させます。 詳しくは、関連データベースの製品資料を参照してください。

サポートされるデータベースに関して、WebSphere Business Integration Message Broker に固有のセットアップの考慮事項が以下で説明されています。

  • DB2 UDB

    DB2 UDB のデータ・ソースを定義する際、IBM DB2 ODBC DRIVER という名前のドライバーを選択しなければなりません。 データ・ソース名 (DSN) と説明を入力し、ドロップダウン・リストから正しいデータベース別名を選択します。

    DB2 の場合、以下のようにするとより簡単にこれを行えます。

    1. 「DB2 構成アシスタント (DB2 Configuration Assistant)」を開きます。
    2. データベースを右マウス・ボタン・クリックし、「データベースの変更 (Change Database)」 を選択します。
    3. 「データ・ソース (Data Source)」を選択します。
    4. 「ODBC にこのデータベースを登録する (Register this database for ODBC)」 を選択します。
    5. 「終了 (Finish)」をクリックします。
    6. 「接続のテスト (Test Connection)」ダイアログが自動的にオープンし、さまざまな接続をテストすることができます。
  • Microsoft SQL Server

    Microsoft SQL のデータ・ソースを定義する際、SQL Server という名前のドライバーを選択しなければなりません。 ドライバー・レベルはバージョン 3.60 以降でなければなりません。 名前と説明を入力し、ドロップダウン・リストから正しいサーバーを選択します。

  • Oracle

    Oracle のデータ・ソースを定義する際、MQSeries DataDirect 4.10 32-BIT Oracle という名前のドライバーを選択しなければなりません。 このドライバーを構成する際、以下を行う必要があります。

    • DSN 名、説明、およびサーバー名を入力します (ここでサーバー名は、たとえば、TSNAMES.ORA ファイルのマッピングを介して、"Connect Descriptor" を解決する "Service Name" です)。
    • 「SQLDescribeParam を使用可能にする (Enable SQLDescribeParam)」ボックスがチェックされていることを確認してください。 このパラメーターは、ドライバー設定の「拡張 (Advanced)」タブにあります。
    • Oracle データベースを参照する DSN ごとに新規レジストリー・サブキーを作成します。これを行うには、REGEDIT を使用して以下にナビゲートします。
      HKEY_LOCAL_MACHINE
              SOFTWARE
                      ODBC
                              ODBC.INI

      DSN を右マウス・ボタン・クリックし、「新規 (New)」>「ストリング値 (String Value)」を選択します。 ストリングの「次善策 (WorkArounds)」を指定し、値を 536870912 に設定します。

  • Sybase Adaptive Server Enterprise

    Sybase Adaptive Server Enterprise のデータ・ソースを定義する際、MQSeries DataDirect 4.10 32-BIT Sybase という名前のドライバーを選択しなければなりません。 WebSphere Business Integration Message Brokerで使用できるようこのドライバーを構成する際、以下の行う必要があります。

    • DSN 名、説明、サーバーのネットワーク・アドレスを入力します (このアドレスのフォーマットの説明については、ODBC.ini パラメーターNetworkAddress= の説明を参照してください)。
    • 「Describe パラメーターを使用可能にする (Enable Describe Parameter)」ボックスがチェックされていることを確認します。 このパラメーターは「拡張 (Advanced)」タブ上にあります。
    • 「メソッドの作成 (Prepare Method)」設定が 「1 - 一部 (1 - Partial)」となっていることを確認します。 このパラメーターは、「パフォーマンス (Performance)」タブ上にあります。

ODBC.ini パラメーター

テンプレート・ファイルは、以下のパラメーターを更新することによって構成します。

[ODBC Data Sources]
このスタンザは、.odbc.ini ファイルで構成されるデータベースのデータ・ソース名 (DSN) を説明します。 すべてのデータベースを表示するようにこのスタンザを構成し、それぞれにスタンザを含める必要があります。
Driver=
  • DB2 を使用している場合、DB2 インストールと一致するドライバー・ライブラリーの場所を指定します。
  • Oracle または Sybase を使用する場合、表示されたとおりのパスを使用します。
Description=
選択する場合、これを変更することができます。 これは情報専用のテキスト・フィールドで、操作とは関係がありません。
Database=
  • DB2 を使用している場合、データベース別名を指定します。 リモート DB2 データベースを使用している場合、この別名を正確なデータベースに解決するために、クライアント/サーバー接続をセットアップする必要があります。 詳しくは、DB2 資料を参照してください。
  • Sybase を使用している場合、デフォルトの接続先としたいデータベースの名前を指定します。 値を指定しなかった場合、各ユーザーごとにシステム管理者によって定義されたデータベースがデフォルトとなります。
ServerName=
  • Oracle を使用している場合、たとえば、TSNAMES.ORA ファイルのマッピングを介して、"Connect Descriptor" を解決する "Service Name" を指定します。
  • Sybase を使用している場合、サーバー・マシン上で定義した Sybase データベース・サーバーの名前を指定します。
NetworkAddress=
Sybase サーバーのネットワーク・アドレスを指定します (これはローカルおよび リモート・データベースで必須です)。 以下のように IP アドレスを指定します。
<servername or IP address>, <portnumber>

たとえば、Sybaseserver, 5000 のように指定します。 199.226.224.34, 5000 のように IP アドレスを直接指定することもできます。 ポート番号は、通常は interfacesinterfac、または sql.ini という名前 (オペレーティング・システムによって異なる) の Sybase インターフェース・ファイルにあります。

WorkstationID=
ワークステーション ID を入力します。 たとえば、mqsiuidのように入力します。
SelectUserName=
これは 1 に設定しなければなりません。

関連タスク
コンポーネント・データベースの構成
データベースの作成
DB2 データベースのカスタマイズ
データベースへのアクセスの許可

関連資料
サポートされるデータベース
ユーザー・データベース接続
整合されたメッセージ・フローのデータベース接続