DB2 データベース用の JDBC プロバイダー・エントリーの作成

DatabaseRoute ノードと DatabaseRetrieve ノードは、ブローカーのレジストリーに保管されている接続詳細を使って JDBC 接続を構成します。その詳細には、標準の DBMS JDBC プロバイダー設定が含まれています。 DB2 Universal Database を使用する場合、以下の手順に従って、JDBC プロバイダー・エントリーを作成します。

以下のスクリプト内に用意されている mqsicreateconfigurableservice コマンドを使用して、SIMPLERROUTEDB という新しい JDBC プロバイダー・エントリーを作成することができます。 このエントリーは、サンプルで使用されるデータベース・ノード内の「データ・ソース名」プロパティー・フィールドによって参照されます。 また、以下の指示に従って、ブローカーがデータベースへのアクセス時に使用するユーザー ID とパスワードを使用して JDBC プロバイダー・エントリーを構成する方法もあります。

  1. 以下のように、データベース用の JDBC プロバイダー・エントリーを作成します。

    1. ブローカーを開始し、そのブローカーに対して実行グループがデプロイ済みであることを確認します。 例えば、ブローカーを開始するには、WebSphere Message Broker コマンドを実行可能なコマンド・コンソール・ウィンドウをオープンし、次のようなコマンドを入力します。
      mqsistart MB8BROKER
    2. テキスト・エディターで新しい文書を開き、Simplified Database Routing サンプルに JDBC データベース・アクセスを提供するために JDBC プロバイダーのエントリー SIMPLERROUTEDB を作成する以下のスクリプトをコピーして、文書に貼り付けます。 スクリプト内の以下のプレースホルダーを、ご使用の環境に合った値に置き換える必要があります。
      • <JARS URL> ブローカーが実行されているシステム上で、タイプ 4 ドライバー・クラスが含まれる JAR ファイルが置かれている、ローカル・ディレクトリー・パス。 以下の場所がデフォルトの場所です。
        • Windows の場合: C:¥Program Files¥IBM¥SQLLIB¥java
        • Linux の場合: sqllib/java。例えば /home/db2inst1/sqllib/java/
      • <PORT NUMBER> データベース・サーバーが listen しているポート番号。DB2 のデフォルトは 50000 です。
      • <SERVER NAME> DB2 が稼働しているホストの名前。例えば localhost
      mqsideleteconfigurableservice MB8BROKER -c JDBCProviders -o SIMPLERROUTEDB
      mqsicreateconfigurableservice MB8BROKER -c JDBCProviders -o SIMPLERROUTEDB 
      -n connectionUrlFormat,databaseName,description,jarsURL,portNumber,serverName,
      type4DatasourceClassName,type4DriverClassName 
      -v "jdbc:db2://[serverName]:[portNumber]/[databaseName]:user=[user];password=[password];,
      SROUTEDB,Simplified Database Routing Sample Database,<JARS URL>,<PORT NUMBER>,
      <SERVER NAME>,com.ibm.db2.jcc.DB2DataSource,com.ibm.db2.jcc.DB2Driver" 
      
      注: 上記のスクリプトは 2 つのコマンドのみで構成されます。 それぞれのコマンドは別個の行で開始および終了する必要があります。 このため、スクリプトをコピー・アンド・ペーストする場合、スクリプト全体は、以下のように 2 行のみを占める必要があります。
      mqsideleteconfigurableservice MB8BROKER -c JDBCProviders -o SIMPLERROUTEDB
      mqsicreateconfigurableservice MB8BROKER -c JDBCProviders -o SIMPLERROUTEDB -n connectionUrlFormat,databaseName,description,jarsURL,portNumber,serverName,type4DatasourceClassName,type4DriverClassName -v "jdbc:db2://[serverName]:[portNumber]/[databaseName]:user=[user];password=[password];,SROUTEDB,Simplified Database Routing Sample Database,<JARS URL>,<PORT NUMBER>,<SERVER NAME>,com.ibm.db2.jcc.DB2DataSource,com.ibm.db2.jcc.DB2Driver"
      
      スクリプトが 2 行でコピー・アンド・ペーストされなかった場合、スクリプトを実行すると、" -n is not recognised as a valid program...." のようなエラーが発生します。 これは、システムが誤ってすべての改行を新規コマンドの開始として認識するためです。

      フローに DatabaseRetrieve ノードが含まれるので、com.ibm.db2.jcc.DB2XADataSource の代わりに com.ibm.db2.jcc.DB2DataSource クラスを使用してください。

    3. ファイルを保存します。 以下の手順では、ファイルは simplifieddbrouting.bat という名前であると想定しています。
    4. コマンド・コンソールで、simplifieddbrouting.bat を含んでいるフォルダーにナビゲートし、次のようなコマンドを入力してスクリプトを実行します。
      simplifieddbrouting.bat

      このスクリプトを実行すると、以下のタスクが実行されます。

      • SIMPLERROUTEDB という名前の既存のすべての JDBCProvider エントリーを削除します。
      • Simplified Database Routing サンプルで使用するための SIMPLERROUTEDB という名前の新規の JDBCProvider エントリーを作成します。 デフォルト設定では、このベンダーの JDBC タイプ 4 ドライバー・クラスを使用する場合のターゲットは DB2 DBMS です。
    5. スクリプトの実行が終了するまで待ちます。 スクリプトを初めて実行すると、次のようなメッセージが表示されます。
      BIP8984W: 構成可能なサービス・オブジェクト名 'JDBCProviders : SIMPLERROUTEDB' が見つかりませんでした。
      ユーザーによって、存在しない構成可能サービス・オブジェクト名の削除または変更が試行されました。
      既存の構成可能サービスの名前を mqsireportproperties コマンドで確認してください。
      その後、外部リソース・オブジェクト名を変更してコマンドを再発行してください。
      BIP2087E: ブローカー MB8BROKER が内部構成メッセージを処理できませんでした。
      内部構成メッセージの全体が、正常な処理に失敗しました。
      このメッセージに続くメッセージを使用して、失敗の理由を判別してください。
      BIP8036E: 否定応答を受信しました。
      このコマンドはブローカーに内部構成メッセージを送信しましたが、ブローカーは内部構成メッセージを受信しませんでした。
      WebSphere MQ トランスポートが使用可能かどうか確認してください。
      システム・ログを調べてください。
      
      メッセージを無視します。このメッセージが表示されるのは、スクリプトが、SIMPLERROUTEDB という既存の JDBCProvider レジストリー・エントリーを削除してから、この JDBCProvider レジストリー・エントリーを再作成しようとするためです。 以前にスクリプトを実行したことがなければ、レジストリー内でこのエントリーは見つかりません。
    6. 次のようなコマンドを入力することにより、サンプル SIMPLERROUTEDB JDBCProvider エントリーを使ってデフォルト・ブローカー・レジストリーが正しく更新されたことを確認できます。
      mqsireportproperties MB8BROKER -o SIMPLERROUTEDB -c JDBCProviders -r

      更新が正常に完了すると、このコマンドから報告されるプロパティー出力は次の例のようになります。

      JDBCProviders
        SIMPLERROUTEDB
          connectionUrlFormat='jdbc:db2://[serverName]:[portNumber]/[databaseName]:user=[user];password=[password];'
          connectionUrlFormatAttr1=''
          connectionUrlFormatAttr2=''
          connectionUrlFormatAttr3=''
          connectionUrlFormatAttr4=''
          connectionUrlFormatAttr5=''
          databaseName='SROUTEDB'
          databaseType='default_Database_Type'
          databaseVersion='default_Database_Version'
          description='Simplified Database Routing Sample Database'
          environmentParms='default_none'
          jarsURL='C:\Program Files\IBM\SQLLIB\java'
          portNumber='50000'
          securityIdentity='default_User@default_Server'
          serverName='localhost'
          type4DatasourceClassName='com.ibm.db2.jcc.DB2DataSource'
          type4DriverClassName='com.ibm.db2.jcc.DB2Driver'
      
      BIP8071I: コマンドが正常に完了しました
      
  2. JDBC プロバイダー SIMPLERROUTEDB と関連付けるユーザー ID とパスワードを指定するには、mqsisetdbparms および mqsichangeproperties コマンドを使用します。 このユーザー ID は、データベースを作成したときに使用したユーザー ID と同じでなければなりません。

    1. 以下のコマンドを入力して、ユーザー ID およびパスワードをセキュリティー ID と関連付けます。
      mqsisetdbparms MB8BROKER -n jdbc::mySecurityIdentity -u <user ID> -p <password>
    2. 以下のコマンドを入力して、前のステップで定義したセキュリティー ID を、JDBC プロバイダー SIMPLERROUTEDB の securityIdentity プロパティーと関連付けます。
      mqsichangeproperties MB8BROKER -c JDBCProviders -o SIMPLERROUTEDB -n securityIdentity -v mySecurityIdentity
    3. すでにデプロイ済みのメッセージ・フローで JDBC プロバイダーに加えた変更内容を使用できるようにするには、ブローカーを停止してから再始動する必要があります。 サンプルがすでにデプロイ済みの場合、ブローカーを停止してから再始動します。

    詳細は、WebSphere Message Broker 資料のデータベースへの JDBC 接続の使用可能化、および WebSphere Message Broker 資料の DatabaseRoute ノードの中の『DatabaseRoute ノードで JDBC プロバイダー・サービスを使用できるようにする』セクションを参照してください。

DB2 のセットアップに戻る

「データベースのセットアップ」に戻る

サンプルのホームに戻る