アダプタの開発

     前  次    目次     
ここから内容

DBMS サンプル アダプタを使用したアダプタ開発方法の学習

この節では、以下の内容を扱います。

 


DBMS サンプル アダプタの概要

DBMS サンプル アダプタは JSP ベースの GUI を含む J2EE 準拠のアダプタです。これらのアダプタは、WebLogic Integration ADK を使ったアダプタの構築方法を示す具体例を提供します。アダプタの EIS としてリレーショナル データベースが使用されているので、アダプタ プロバイダは特別な EIS について学習する必要がなく、アダプタと ADK に専念できます。

次の 2 つの DBMS サンプル アダプタが提供されています。

DBMS サンプル アダプタは、独自のアダプタを設計、開発するために必要なタスクの理解を助けることを目的としています。プロダクション環境で使用するためのアダプタではなく、プロダクション環境での使用はサポートされていません。アダプタはプロダクション用ではなく、サンプルとして用意されたアダプタなので、すべての機能を備えているわけではありません。複雑なクエリやストアド プロシージャは実行できないという制限があります。

開発者やビジネス アナリストは、DBMS サンプル アダプタを使うことで、ADK を使ってアダプタを構築する場合に何が可能かを理解しやすくなります。ビジネス アナリストにとっては、インタフェースを操作することによって「DBMS サンプル アダプタの仕組み」で説明するアプリケーション ビュー、サービス、およびイベントを理解できるので、非常に便利なツールであるといえます。

アダプタ開発者は、ADK クラスを拡張および使用して J2EE 準拠のアダプタを構築する方法の学習から始めることをお勧めします。この手順は、次のとおりです。

DBMS サンプル アダプタは以下の要件を満たしています。

 


DBMS サンプル アダプタの接続パラメータ

これらのアダプタの接続パラメータを設定するときは、JDBC ドライバおよび URL を指定してください。サンプルの DBMS アダプタでは DataSource の指定はサポートされません。DataSource を使用する既存のサービス接続は以前と同様に作動しますが、Application Integration Design Console では新規アダプタに対して DataSource を指定できなくなります。

XA ドライバを使用してドメインをコンフィグレーションする場合は、イベント接続について作成する DataSource に対して接続プールをもう 1 つ作成します。

同じ接続プールを指す 2 つの Tx Data Source を作成しないでください。同じ接続プールを指している 2 つの Tx Data Source が 1 つのトランザクションで使用されると、2 つ目の接続にアクセスしようとしたときに XA_PROTO エラーが発生します。

JDBC データ ソースおよび WebLogic Server の詳細については、次の場所にある『Administration Console オンライン ヘルプ』の JDBC データ ソースの説明を参照してください。

http://edocs.beasys.co.jp/e-docs/wls/docs92/ConsoleHelp/taskhelp/jdbc/ConfigureDataSources.html

DBMS サンプル アダプタを Microsoft SQL Server または Sybase データベースで使用するときは、WebLogic Server Administration Console を使用して、Application Integration で使用される接続プールの TestReservedConnection パラメータを有効にします。このパラメータが有効になっていないと、自動再開または手動再開機能が作動せず、次のような SQLException が送出されます。

java.sql.SQLException: [BEA][SQLServer JDBC Driver]No more data
available to read

 


DBMS サンプル アダプタの仕組み

この節では、DBMS サンプル アダプタの仕組みについて説明します。ビジネス アナリストの方はインタフェースの操作を通じてアダプタの仕組みを理解できます。この節では、基底のデータベースに顧客を挿入するサービスを作成する方法、およびそのアクションが実行されたことを第三者に通知するためのイベントを生成する方法について説明します。

この節では、以下の内容を扱います。

始める前に

DBMS サンプル アダプタにアクセスする前に、必ず以下のタスクを完了してください。

DBMS サンプル アダプタへのアクセス

DBMS サンプル アダプタにアクセスするには

  1. 新しいブラウザ ウィンドウを開きます。
  2. システムの Application Integration Design Console を示す URL を入力します。
  3. http://HOSTNAME:7001/wlai

    図 E-1 に示すように、[WebLogic Integration - Application Integration Design Console ログオン] ページが表示されます。

警告 : Application Integration Design Console は、1 台のクライアント マシンにつき 1 つだけ実行するようにしてください。1 台のマシンで複数のコンソールを実行すると、Web ブラウザの画面間の移動が正しく行われない場合があります。

DBMS サンプル アダプタのツアー

ここでは DBMS サンプル アダプタの操作方法について簡単に説明します。まず、ブラウザで DBMS サンプル アダプタの [WebLogic Integration - Application Integration Design Console ログオン] ページを開きます。手順については、「DBMS サンプル アダプタへのアクセス」を参照してください。

図 E-1 [WebLogic Integration - Application Integration Design Console ログオン]

WebLogic Integration - Application Integration Design Console ログオン

  1. Application Integration Design Console にログオンするには、WebLogic Server のユーザ名とパスワードを入力し、[ログイン] をクリックします。[アプリケーションの選択] ページが表示されます。

  2. WebLogic Integration - Application Integration Design Console ログオン

  3. 新しいアプリケーションに使用するリポジトリを作成するには、アプリケーション名とそのアプリケーションのルート ディレクトリを指定します。[OK] をクリックします。[Application Integration Design Console] ページが表示されます。
  4. 図 E-2 [Application Integration Design Console] ページ


    [Application Integration Design Console] ページ

  5. [アプリケーション ビューの追加] をクリックします。[新規アプリケーション ビューの定義] ページが表示されます。アプリケーション ビューの作成時、アプリケーション ビューと DBMS サンプル アダプタを関連付けるための説明を指定する必要があります。
  6. アプリケーション ビューおよびその定義方法の詳細については、『Application Integration Design Console の使い方』の「アプリケーション ビューの定義」を参照してください。

    図 E-3 [新規アプリケーション ビューの定義] ページ


    [新規アプリケーション ビューの定義] ページ

  7. アプリケーション ビューを定義するには
    1. [アプリケーション ビューの名前] フィールドに AppViewTest と入力します。
    2. 入力する名前は、このアプリケーションが実行する一連の機能を表すものにする必要があります。また、アダプタに対してユニークなアプリケーション ビュー名にする必要があります。ピリオド (.)、ハッシュ マーク (#)、バックスラッシュ (\)、プラス記号 (+)、アンパサンド (&)、カンマ (,)、アポストロフィ (')、二重引用符 (") およびスペースは名前に使えません。

    3. [説明] フィールドにアプリケーション ビューの簡単な説明を入力します。
    4. [関連付けられたアダプタ] リストからこのアプリケーション ビューを作成する際に使用する DBMS サンプル アダプタを選択します。
    5. [新規接続を作成] をクリックします。新しい参照接続の作成ページが表示されます。
    6. 既存の接続を再利用する場合は、[既存の接続を再利用] をクリックして、参照する接続を選択します。


      [新規アプリケーション ビューの定義] ページ

  8. 新しい接続を作成するには
    1. [接続名] フィールドに、デフォルトの接続名プレフィックスに対してユニークなサフィックスを入力するか、または表示されるデフォルトのサフィックスをそのまま残します。
    2. [説明] フィールドに新しい接続の説明を入力します。
    3. 必要に応じて接続プールとログのパラメータを編集します。
    4. [定義] をクリックして、参照する接続の接続パラメータを定義します。[接続パラメータのコンフィグレーション] ページが表示されます。
    5. 図 E-4 [接続パラメータのコンフィグレーション] ページ


      [接続パラメータのコンフィグレーション] ページ

  9. [接続パラメータのコンフィグレーション] ページでは、アプリケーション ビューが対象の EIS と対話するために必要なネットワーク関連情報を入力します。これを入力する必要があるのは、各アプリケーション ビューで 1 度だけです。
    1. データベースのユーザ名とパスワードを入力します。
    2. [JDBC ドライバ] フィールドおよび [JDBC URL] フィールドに、それぞれドライバ仕様および JDBC URL を入力します。データベースの種類によっては、その他のプロパティを指定することもできます。ページ下部に表示される、サポートされているデータベース タイプとそれぞれの URL フォーマットに注意してください。
    3. [接続パラメータのコンフィグレーション] ページで [続行] をクリックして、新しい参照接続の作成ページに戻ります。
    4. [OK] をクリックします。[アプリケーション ビュー管理] ページが表示されます。
    5. [アプリケーション ビュー管理] ページには接続条件の概要が表示されます。イベントやサービスを定義した後、このページでスキーマや概要を表示したり、イベントやサービスを削除できます。

      ここまでの作業でアプリケーション ビューの作成が完了し、サービスをアプリケーション ビューに追加する準備が整いました。

      図 E-5 AppViewTest の [アプリケーション ビュー管理] ページ


      AppViewTest の [アプリケーション ビュー管理] ページ

  10. 新しいアプリケーション ビューにサービスを追加するには、サービスの名前、説明、および SQL 文を指定する必要があります。
  11. 参照リンクを使って DBMS サンプル アダプタ データベース スキーマとテーブルを参照し、データベース テーブル CUSTOMER_TABLE を指定します。

    サービスを追加するには

    1. [アプリケーション ビュー管理] ページで [サービス] グループ内の [追加] をクリックします。[サービスの追加] ページが表示されます。
    2. 図 E-6 [サービスの追加] ページ


      [サービスの追加] ページ

    3. [ユニークなサービス名] フィールドに InsertCustomer と入力します。
    4. [説明] フィールドにサービスの説明を入力します。
    5. [DBMS を参照] リンクをクリックして、データベースのテーブルおよびカラム構造を表示します。複雑なクエリを記述する場合、参照ウィンドウを開いたままにして、後でテーブルやカラムの名前を切り取ってクエリに貼り付けることができます。
    6. 図 E-7 [DBMS を参照] ページ


      [DBMS を参照] ページ

    7. カタログの DBMS スキーマ ページで [WEBLOGIC] をクリックします。
    8. 図 E-8 [DBMS を参照] のテーブル タイプ ページ


      [DBMS を参照] のテーブル タイプ ページ

    9. [DBMS テーブル タイプ] ページで [TABLE] をクリックします。
    10. 図 E-9 [DBMS を参照] のテーブル ページ


      [DBMS を参照] のテーブル ページ

    11. [次に対するテーブル : .WEBLOGIC] ページで [CUSTOMER_TABLE] をクリックします。ブラウズ ウィンドウにカラムの名前と型が表示されます。
    12. 図 E-10 [DBMS を参照] のテーブルの DBMS カラム ページ


      [DBMS を参照] のテーブルの DBMS カラム ページ

    13. [ウィンドウを閉じる] をクリックしてウィンドウを閉じ、[サービスの追加] ページに戻ります。
    14. このウィンドウはアダプタで使用できる機能を紹介するためにツアーの中に組み込まれています。この演習ではテキストを選択する必要はありません。

    15. [サービスの追加] ページで以下の情報を [SQL 文] フィールドに入力します。
    16. Insert into WEBLOGIC.CUSTOMER_TABLE (FIRSTNAME, LASTNAME, DOB) VALUES ([FIRSTNAME VARCHAR], [LASTNAME VARCHAR], [DOB DATE])

    17. [追加] をクリックします。[アプリケーション ビュー管理] ページが表示されます。
    18. サービスの追加に関する詳細については、『Application Integration Design Console の使い方』の「アプリケーション ビューの定義」を参照してください。

  12. アプリケーション ビューにイベントを追加します。追加するには、イベントのユニークな名前と説明を指定する必要があります。次に、イベントのトリガを追加するデータベース テーブルを指定します。また、追加するイベントが挿入、更新、削除のどれであるかも指定する必要があります。
  13. DBMS 参照リンクを使用すると、DBMS データベース スキーマとテーブルを参照してデータベース テーブルを指定できます。そこで [選択したテーブルをテーブル名に入力] ボタンをクリックすると、選択したテーブル名をフィールドに自動的に入力できます。

    イベントを追加するには

    1. [アプリケーション ビュー管理] ページで [イベント] フィールド内の [追加] をクリックします。[イベントの追加] ページが表示されます。
    2. 図 E-11 [イベントの追加] ページ


      [イベントの追加] ページ

    3. [ユニークなイベント名] フィールドに CustomerInserted と入力します。
    4. [説明] フィールドにイベントの説明を入力します。
    5. [DBMS を参照] リンクをクリックして、データベースのテーブルおよびカラム構造を表示します。
    6. 図 E-12 [DBMS を参照] のテーブル ページ


      [DBMS を参照] のテーブル ページ

    7. [CUSTOMER TABLE] オプションを選択します。次に、[選択したテーブルをテーブル名に入力] ボタンをクリックします。
    8. 図 E-13 [イベントの追加] ページ


      [イベントの追加] ページ

    9. [挿入イベント] オプションを選択します。
    10. [追加] をクリックします。[アプリケーション ビュー管理] ページが表示されます。
    11. 図 E-14 AppViewTest の [アプリケーション ビュー管理] ページ


      AppViewTest の [アプリケーション ビュー管理] ページ

  14. [保存] をクリックして現在のアプリケーション ビュー情報を保存します。アプリケーション ビューをテストおよびパブリッシュする前に、サービスおよびイベントの接続を作成または選択する必要があります。
  15. [選択/編集] をクリックします。[アプリケーション ビューの接続情報] ページが表示されます。[アプリケーション ビューの接続情報] ページは、サービス呼び出し、イベント配信、設計時参照接続の各接続タイプ別に編成されています。

  16. AppViewTest の [アプリケーション ビュー管理] ページ

  17. このツアーでは既存のサービス接続を使います。サービス接続の [既存接続を選択] リンクをクリックして、既存の接続を選択します。
  18. [イベント] をクリックして接続のプロパティおよびイベント接続のログ レベルをコンフィグレーションします。[イベント接続の編集] ページが表示されます。

  19. AppViewTest の [アプリケーション ビュー管理] ページ

    [イベント接続の編集] ページを使って、イベント パラメータを定義し、接続ファクトリのどの情報をログに記録するかをコンフィグレーションできます。ログの設定を以下の中から 1 つ選択します。

    • エラーおよび監査メッセージをログに記録
    • 警告、エラー、および監査メッセージをログに記録
    • 情報、警告、エラー、および監査メッセージをログに記録
    • すべてのメッセージをログに記録
    • [接続パラメータ] で [定義] をクリックしてイベント配信パラメータを設定します。[イベント配信パラメータのコンフィグレーション] ページが表示されます。

      このページで入力するイベント配信パラメータにより、EIS インスタンスへの接続が有効になります。また、これらのパラメータはイベントの生成時に使用されます。プロパティは関連付けられているアダプタごとに固有であり、基本となるアダプタの wli-ra.xml ファイルに定義されます。

  20. イベント配信パラメータを設定したら、[続行] をクリックして [イベント接続の編集] ページに戻り、次に [OK] をクリックして [接続情報] ページに戻ります。
  21. [戻る] をクリックして [アプリケーション ビュー管理] ページに戻ります。
  22. [アプリケーション ビュー管理] ページで [テスト] をクリックします。[アプリケーション ビューの概要] ページが表示されます。その際 [ステータス] は [テスト] であり、[テストの停止] リンクが表示されます。
  23. 図 E-15 [アプリケーション ビューの概要] ページ


    [アプリケーション ビューの概要] ページ

  24. イベントをテストします。アプリケーション ビューが正常に機能することを確認するために、そこに表示されているイベントおよびサービスをテストできます。イベントをテストするには、サービスを呼び出すか、手動でイベントを作成します。また、アプリケーションがイベントを受け取るまでの待機時間を指定することもできます。
    1. [イベント] グループの [CustomerInserted] ライン上で [テスト] をクリックします。[イベントのテスト] ページが表示されます。
    2. 図 E-16 [イベントのテスト] ページ


      [イベントのテスト] ページ

    3. [イベントのテスト] ページで [サービス] オプションを選択し、[サービス] メニューの [InsertCustomer] を選択します。
    4. [イベントを受信するまでの待機時間を指定してください] フィールドに 6000 と入力します。
    5. [テスト] をクリックします。[サービスのテスト] ページが表示されます。
    6. 図 E-17 [サービスのテスト] ページ


      [サービスのテスト] ページ

    7. [FIRSTNAME] フィールドに、名前を入力します。
    8. [LASTNAME] フィールドに、苗字を入力します。
    9. [DOB] フィールドに、生年月日を入力します。[DOB] フィールドの右側に表示されるフォーマットに従ってください。
    10. [テスト] をクリックします。[テスト結果] ページが表示されます。このページには、生成したイベント、およびアプリケーション サーバによって生成された応答を表す XML ドキュメントの内容が表示されます。
    11. 図 E-18 [テスト結果] ページ
      [サービスのテスト] ページ

イベントおよびサービスのテストが正常に終了したら、[概要] ページに戻ってアプリケーション ビューをパブリッシュできます。パブリッシュすると、アプリケーション ディレクトリに EJB が生成され、スキーマ ファイルが XML マッパーで使用できるように WebLogic Workshop アプリケーションにパブリッシュされます。また、アプリケーション ビューも WebLogic Workshop で表示できるようになります。

アプリケーション ビューのパブリッシュに関する詳細については、『Application Integration Design Console の使い方』の「アプリケーション ビューの定義」を参照してください。

 


DBMS サンプル アダプタの開発工程

この節では DBMS サンプル アダプタを開発する際に使用するインタフェースについて説明します。ADK では Java コネクタ アーキテクチャに準拠したアダプタに必要な実装が豊富に用意されていますが、EIS およびその環境を定義するまでは完全に実装されないインタフェースもあります。このため、ADK で提供される抽象クラスの具象実装として、DBMS サンプル アダプタが作成されました。

DBMS サンプル アダプタの作成手順は以下のとおりです。

手順 1 : DBMS サンプル アダプタについて

ADK で提供される実装が DBMS サンプル アダプタでどのように使用されるかについては、Javadoc およびこの節で定義するメソッドのコードを参照してください。

注意 : WLI_HOME は、WebLogic Integration がインストールされているドライブまたはディレクトリです。

手順 2 : 環境の定義

コーディングを開始する前に、開発中のアダプタに関するクリティカルな情報を識別および収集するには、「アダプタ設定ワークシート」が役立ちます。DBMS サンプル アダプタ BEA_WLS_DBMS_ADK の場合、ワークシートの質問に対する答えは以下のようになります。

注意 : 先頭にアスタリスク (*) が付いた質問は、GenerateAdapterTemplate ユーティリティを使うためには必須です。
  1. * アダプタの開発に使用する EIS の名前は何ですか?
  2. PointBase または Oracle データベース。

  3. * 使用する EIS のバージョンは何ですか?
  4. PointBase 4.4、Oracle 8.1.7、または Oracle 91 Release 2。

  5. * 使用する EIS のタイプ (DBMS または ERP など) は何ですか?
  6. DBMS。

  7. * アダプタのベンダ名は何ですか?
  8. BEA。

  9. * 使用するアダプタのバージョンは何ですか?
  10. ありません (サンプル用)。

  11. * アダプタの論理名は何ですか?
  12. BEA_WLS_DBMS_ADK

  13. アダプタで EIS 内部の機能を呼び出す必要がありますか?
  14. はい

    その必要がある場合、アダプタはサービスをサポートしていなければなりません。

    はい

  15. 外部プログラムから EIS の機能を呼び出せるようにするために、EIS ではどのようなメカニズムや API を提供していますか?
  16. JDBC

  17. このメカニズムでは、EIS に対するセッションや接続を確立するために、どのような情報が必要ですか?
  18. データベース URL、ドライバ クラス、ユーザ名、パスワードが必要です。

  19. 所定のサービスについて EIS で呼び出す機能を決定するために、どのような情報が必要ですか?
  20. 機能名、executeUpdate、executeQuery が必要です。

  21. EIS では、所定の機能の入出力の要件を取得するために EIS をクエリできますか?
  22. はい、データ構造を参照できます。

    クエリできる場合、サービスの入力要件を決定するためにどのような情報が必要ですか?

    SQL。

  23. すべての要求で同一の入力要件は何ですか? アダプタでは、このような静的な情報を InteractionSpec オブジェクトでエンコードする必要があります。
  24. SQL。

  25. 要求ごとに異なる入力要件は何ですか? アダプタでは、要件ごとにこのサービスで必要な入力パラメータを記述した XML スキーマを提供する必要があります。
  26. サービスの SQL 式により、入力要件は異なります。

  27. サービスの出力要件を決定するためにどのような情報が必要ですか?
  28. ありません。

  29. アダプタから呼び出せる機能のカタログを参照するメカニズムが EIS によって提供されていますか? 提供されている場合、アダプタでサービスの参照をサポートする必要があります。
  30. はい

  31. EIS 内部で発生した変更に関する通知をアダプタで受信する必要がありますか? その必要がある場合、アダプタでイベントをサポートする必要があります。
  32. はい

  33. 外部プログラムで EIS のイベント通知を受け取るために、EIS ではどのようなメカニズムや API が提供されていますか? この質問への回答は、プル型とプッシュ型のどちらのメカニズムを開発するかを判断する際に役立ちます。
  34. ありません。DBMS サンプル アダプタは、プル メカニズムを使って、WebLogic Integration イベント ジェネレータ上に構築されています。

  35. EIS では、アダプタがサポートできるイベントを特定する方法が提供されていますか?
  36. はい

  37. EIS では、所定のイベントに対するメタデータをクエリする方法が提供されていますか?
  38. はい

  39. アダプタでサポートする必要があるロケール (言語および国によって定義される) は何ですか?
  40. 複数のロケールのサポートが必要です。

手順 3 : サービス プロバイダ インタフェース パッケージの実装

DBMS サンプル アダプタのサービス プロバイダ インタフェース (Service Provider Interface : SPI) を実装し、J2EE 準拠の SPI 要件を満たすため、ADK のクラスが拡張され、以下の具象クラスが作成されました。

表 E-1 SPI クラスの拡張
具象クラス
拡張された ADK クラス
ManagedConnectionFactoryImpl
AbstractManagedConnectionFactory
ManagedConnectionImpl
AbstractManagedConnection
ConnectionMetaDataImpl
AbstractConnectionMetaData
LocalTransactionImpl
AbstractLocalTransaction

これらのクラスを使って、EIS への接続の提供、イベントのリスンや要求の送信に使うフレームワークの構築、トランザクション デマーケーションの設定、および該当する EIS の管理を行います。

ManagedConnectionFactoryImpl

DBMS サンプル アダプタ用の SPI を実装するためにまず ManagedConnectionFactory インタフェースを実装しました。ManagedConnectionFactory は、ManagedConnection インスタンスのマッチングと作成を行うメソッドを提供して、接続プールをサポートします。

基本的な実装

ADK で提供される com.bea.adapter.spi.AbstractManagedConnection Factory は、Java コネクタ アーキテクチャ インタフェース javax.resource.spi.ManagedConnectionFactory の実装です。DBMS サンプル アダプタでは com.bea.adapter.dbms.spi.ManagedConnectionFactoryImpl でこのクラスが拡張されています。コード リスト E-1ManagedConnectionFactoryImpl の派生ツリーを示しています。

コード リスト E-1 com.bea.adapter.dbms.spi.ManagedConnectionFactoryImpl

javax.resource.spi.ManagedConnectionFactory
|
|-->com.bea.adapter.spi.AbstractManagedConnectionFactory
|
|-->com.bea.adapter.dbms.spi.ManagedConnectionFactoryImpl

開発者のコメント

ManagedConnectionFactory は Java コネクタ アーキテクチャ SPI パッケージの中心クラスです。AbstractManagedConnectionFactory では、必要とされる Sun MicroSystems のインタフェースで宣言されているメソッドの実装の多くが提供されています。この ADK の AbstractManagedConnectionFactory を DBMS サンプル アダプタ向けに拡張するため、キー メソッドである createConnectionFactory() および createManagedConnection() が実装されています。また、equals()hashcode()checkState() のオーバーライドも記述され、DBMS サンプル アダプタによってサポートされるデータベース固有の動作が提供されています。

スーパークラスが認識できないプライベート属性が存在します。アダプタを作成する際、プライベート属性に対してセッター/ゲッター メソッドを指定する必要があります。抽象メソッドの createConnectionFactory() は、入力パラメータを使った EIS 固有の ConnectionFactory を提供するために実装されています。

そのほかに、クラスの主要なファクトリ メソッドとして createManagedConnection() があります。このメソッドは、アダプタが正しくコンフィグレーションされているかどうかを、使用前にチェックします。次に、接続およびパスワード資格オブジェクトを取得するためのスーパークラスのメソッドを実装します。そして物理データベースへの接続を試み、それに成功すると、物理接続に割り当てられている ManagedConnectionImpl (ManagedConnection の DBMS サンプル アダプタ実装) をインスタンス化して返します。

その他のメソッドは、メンバー属性用のゲッター/セッター メソッドです。

ManagedConnectionImpl

ManagedConnection インスタンスは、管理対象環境の基底の EIS への物理接続を表します。ManagedConnection オブジェクトは、アプリケーション サーバによってプールされます。詳細については、「ManagedConnection」の ADK による AbstractManagedConnection インスタンスの実装方法に関する箇所を参照してください。

基本的な実装

ADK で提供される com.bea.adapter.spi.AbstractManagedConnection は、J2EE インタフェース javax.resource.spi.ManagedConnection を実装したものです。DBMS サンプル アダプタでは com.bea.adapter.dbms.spi.ManagedConnectionImpl でこのクラスが拡張されています。コード リスト E-2ManagedConnectionImpl の派生ツリーを示しています。

コード リスト E-2 com.bea.adapter.dbms.spi.ManagedConnectionImpl

javax.resource.spi.ManagedConnection
|
|-->com.bea.adapter.spi.AbstractManagedConnection
|
|-->com.bea.adapter.dbms.spi.ManagedConnectionImpl

開発者のコメント

ManagedConnection は Java コネクタ アーキテクチャ SPI 仕様の重要部分なので、このクラスの詳細が Javadoc コメントに記載されています。以下のメソッドの実装を重点的に参照してください。

ping() メソッドを使うと、物理データベース接続 (cci.Connection 以外) が今でも有効かどうかチェックできます。例外が発生した場合、ping() は例外のタイプを具体的にチェックし、接続が不必要に切断されないようにします。

その他のメソッドは、EIS 固有のメソッド、または単に必要とされているセッター/ゲッター メソッドです。

ConnectionMetaDataImpl

ManagedConnectionMetaData インタフェースは、ManagedConnection インスタンスに関連付けられた、基底の EIS インスタンスに関する情報を提供します。アプリケーション サーバは、この情報を使用して、接続した EIS インスタンスに関する実行時情報を取得します。詳細については、「ManagedConnection」の ADK による AbstractConnectionMetaData インスタンスの実装方法に関する箇所を参照してください。

基本的な実装

ADK で提供される com.bea.adapter.spi.AbstractConnectionMetaData は、J2EE インタフェース javax.resource.spi.ManagedConnection MetaData を実装したものです。DBMS サンプル アダプタでは com.bea. adapter.dbms.spi.ConnectionMetaDataImpl でこのクラスが拡張されています。コード リスト E-3ConnectionMetaDataImpl の派生ツリーを示しています。

コード リスト E-3 com.bea.adapter.dbms.spi.ConnectionMetaDataImpl

javax.resource.spi.ManagedConnectionMetaData
|
|-->com.bea.adapter.spi.AbstractConnectionMetaData
|
|-->com.bea.adapter.dbms.spi.ConnectionMetaDataImpl

開発者のコメント

ADK の AbstractConnectionMetaData クラスは以下のクラスを実装しています。

ConnectionMetaData クラスの実装では、DatabaseMetaData オブジェクトが使用されます。ADK の抽象実装が使用されているので、このクラスに抽象メソッドを実装する場合は EIS 固有の情報を指定する必要があります。

LocalTransactionImpl

LocalTransaction インタフェースは、EIS リソース マネージャ内で管理されているトランザクションをサポートするため、外部トランザクション マネージャは必要ありません。詳細については、「LocalTransaction」の ADK による AbstractLocalTransaction インスタンスの実装方法に関する箇所を参照してください。

基本的な実装

ADK で提供される com.bea.adapter.spi.AbstractLocalTransaction は、J2EE インタフェース javax.resource.spi.LocalTransaction を実装したものです。DBMS サンプル アダプタでは com.bea.adapter.dbms.spi.LocalTransactionImpl でこのクラスが拡張されています。コード リスト E-4 は LocalTransactionImpl の派生ツリーを示しています。

コード リスト E-4 com.bea.adapter.dbms.spi.LocalTransactionImpl

javax.resource.spi.LocalTransaction
|
|-->com.bea.adapter.spi.AbstractLocalTransaction
|
|-->com.bea.adapter.dbms.spi.LocalTransactionImpl

開発者のコメント

このクラスでは、ロギングおよびイベント通知を提供する ADK の抽象スーパークラスが使用されます。このスーパークラスは、Sun が提供する CCI と SPI の両方の LocalTransaction インタフェースを実装しています。DBMS サンプル アダプタの具象クラスは、以下に示すスーパークラスの 3 つの抽象メソッドを実装しています。

手順 4 : Common Client Interface パッケージの実装

DBMS サンプル アダプタの Common Client Interface (CCI) を実装し、J2EE 準拠の CCI 要件を満たすため、多くの ADK のクラスが拡張され、以下の具象クラスが作成されています。

表 E-2 CCI クラスの拡張
具象クラス
拡張された ADK クラス
ConnectionImpl
AbstractConnection
InteractionImpl
AbstractInteraction
InteractionSpecImpl
InteractionSpecImpl

これらのクラスを使って、バックエンド システムにアクセスできます。クライアント インタフェースは、EIS との対話における要求および応答の両レコードのフォーマットを指定します。

注意 : Java コネクタ アーキテクチャ 1.0 の仕様では CCI の実装は省略可能になっていますが、将来的には必須になる予定です。参考として DBMS サンプル アダプタは詳細な実装例を提供しています。

ConnectionImpl

Connection は、クライアントが基底の物理接続にアクセスするときに使用する、アプリケーションレベルのハンドルを表します。Connection インスタンスに関連付けられた実際の物理接続は、ManagedConnection インスタンスによって表されます。詳細については、「Connection」の ADK による AbstractConnection インスタンスの実装方法に関する箇所を参照してください。

基本的な実装

ADK で提供される com.bea.adapter.cci.AbstractConnection は、J2EE インタフェース javax.resource.cci.Connection を実装したものです。DBMS サンプル アダプタでは com.bea.adapter.dbms.cci.ConnectionImpl でこのクラスが拡張されています。コード リスト E-5 は ConnectionImpl の派生ツリーを示しています。

コード リスト E-5 com.bea.adapter.dbms.cci.ConnectionImpl

javax.resource.cci.Connection
|
|-->com.bea.adapter.cci.AbstractConnection
|
|-->com.bea.adapter.dbms.cci.ConnectionImpl

開発者のコメント

ConnectionImpl クラスは javax.resource.cci.Connection インタフェースの DBMS サンプル アダプタの具象実装です。このクラスにより ADK の AbstractConnection クラスが拡張されます。Connection インスタンスに関連付けられた実際の物理接続は、ManagedConnection インスタンスによって表されます。

クライアントは、ConnectionFactory インスタンスの getConnection() メソッドを使用することにより、Connection インスタンスを取得します。Connection は、Interaction インスタンスと関連付けないか、または 1 つ以上の Interaction インスタンスと関連付けることができます。この具象クラスの単純さは、ADK の基本クラスの強力な拡張機能の証拠です。

InteractionImpl

Interaction インスタンスは、コンポーネントが EIS の機能を実行できるようにします。対話インスタンスは接続に基づいて作成され、Connection インスタンスとの関係を維持する必要があります。詳細については、「Interaction」の ADK による AbstractInteraction インスタンスの実装方法に関する箇所を参照してください。

基本的な実装

ADK で提供される com.bea.adapter.cci.AbstractInteraction は、J2EE インタフェース javax.resource.cci.Interaction を実装したものです。DBMS サンプル アダプタでは com.bea.adapter.dbms.cci.InteractionImpl でこのクラスが拡張されています。InteractionImpl. コード リスト E-6 は InteractionImpl の派生ツリーを示しています。

コード リスト E-6 com.bea.adapter.dbms.cci.InteractionImpl

javax.resource.cci.Interaction
|
|-->com.bea.adapter.cci.AbstractInteraction
|
|-->com.bea.adapter.dbms.cci.InteractionImpl

開発者のコメント

InteractionImpl クラスは、ADK の Interaction オブジェクトの具象実装です。このメソッドは、Java コネクタ アーキテクチャおよび ADK で必要とされるメソッドの EIS 固有の実装です。

Java コネクタ アーキテクチャの javax.resource.cci.InteractionExecute() メソッド (このクラスの中心メソッド) の 2 つのバージョンが DBMS サンプル アダプタで実装されています。execute() メソッドのメイン ロジックでは、次のシグネチャが使用されます。

public Record execute(InteractionSpec ispec, Record input)

このメソッドは対話から実際の出力を返すので、他のメソッドよりも頻繁に呼び出されます。

第 2 の実装は、便利なメソッドとして提供されます。この形の execute() では、次のシグネチャが使用されます。public boolean execute(InteractionSpec ispec, Record input, Record output)。第 2 の実装のロジックでは、対話の成否のみを示すブール値が返されます。

InteractionSpecImpl

InteractionSpecImpl は、EIS インスタンスとの対話を行うためのプロパティを格納しています。InteractionSpec は対話で基底の EIS で指定された関数を実行するときに使用されます。

CCI 仕様では InteractionSpec の標準プロパティが定義されていますが、そのプロパティが基底の EIS に適用されない場合は InteractionSpec の実装で標準プロパティをサポートする必要はありません。

InteractionSpec 実装クラスは、サポートする各プロパティに対してゲッター メソッドとセッター メソッドを提供する必要があります。ゲッター メソッドおよびセッター メソッドは、JavaBean 設計パターンに基づく規約に従って作成する必要があります。詳細については、「InteractionSpec」の ADK による InteractionSpecImpl インスタンスの実装方法に関する箇所を参照してください。

基本的な実装

ADK で提供される com.bea.adapter.cci.InteractionSpecImpl は、J2EE インタフェース javax.resource.cci.InteractionSpec を実装したものです。DBMS サンプル アダプタでは com.bea.adapter.dbms.cci.InteractionSpecImpl でこのクラスが拡張されています。コード リスト E-7 は InteractionSpecImpl の派生ツリーを示しています。

コード リスト E-7 com.bea.adapter.dbms.cci.InteractionSpecImpl

javax.resource.cci.InteractionSpec
|
|-->com.bea.adapter.cci.InteractionSpecImpl
|
|-->com.bea.adapter.dbms.cci.InteractionSpecImpl

開発者のコメント

InteractionSpec インタフェースの実装クラスは、java.io.Serializable インタフェースを実装する必要があります。InteractionSpec は、String 属性 m_sql にゲッター メソッドおよびセッター メソッドを追加するために、ADK の InteractionSpec を拡張しています。ゲッター メソッドおよびセッター メソッドは Java コネクタ アーキテクチャ 1.0 仕様で指定されている JavaBean 設計パターンに従う必要があります。

手順 5 : イベント パッケージの実装

このパッケージには、DBMS サンプル アダプタ EventGeneratorWorker という 1 つのクラスのみが含まれます。このクラスは、DBMS サンプル アダプタのイベント ジェネレータに対して機能します。

EventGenerator

EventGenerator クラスには以下のインタフェースが実装されています。

基本的な実装

データベースはイベント ジェネレータに対して情報をプッシュできず、通知する変更内容をプルまたはポーリングする必要があるので、DBMS サンプル アダプタのイベント ジェネレータは ADK の AbstractPullEventGenerator を拡張しています。コード リスト E-8 は EventGenerator の派生ツリーを示しています。

コード リスト E-8 EventGenerator

com.bea.adapter.event.AbstractEventGenerator
|
|-->com.bea.adapter.event.AbstractPullEventGenerator
|
|-->com.bea.adapter.dbms.event.DbmsEventGeneratorWorker

開発者のコメント

ADK の AbstractPullEventGenerator の具象実装では以下の抽象メソッドが実装されます。

また、以下のメソッドがオーバーライドされます。

これらのメソッドは EIS 固有であり、EIS のコンテキスト内でイベントを識別するために使われます。また、データベースにアクセスしてイベント定義およびイベントを作成および削除します。また、これらのメソッドを使って、イベント発生時に実行されるデータベースのトリガを作成および削除できます。

このクラスのキー メソッドは postEvents() です。このメソッドは、データベースの EVENT テーブルの行から読み込んだデータの IEvent オブジェクトを作成します。引数は IEventRouter です。postEvents() は、IEventDefinition オブジェクトの createDefaultEvent() メソッドを使って IEvent を作成し、イベント データを設定してから router.postEvent(event) を呼び出してイベントをルータに通知します。ルータにイベントを送信したら、データベースからイベント データに関連する行を削除します。

メソッド setupNewTypes() は新しいイベント定義を作成し、データベースに対して適切なトリガが作成されていることを確認します。このメソッドはイベント定義ごとにトリガ情報オブジェクトを作成します。このオブジェクトにはイベント定義で表現するカタログ、スキーマ、テーブル、トリガ タイプ、およびトリガ キーが記述されます。トリガ キーのマップが保存されるため、トリガが重複してデータベースに追加されることがありません。マップ内に新しいキーが存在しない場合はデータベースに対するトリガ テキストが生成されます。

removeDeadTypes() メソッドもトリガ情報オブジェクトを作成しますが、このオブジェクトは、1 つまたは複数の一致するイベント タイプの検索も行います。このトリガに一致するすべてのイベント定義がマップから削除され、次にデータベースからトリガ自身が削除されます。

手順 6 : DBMS サンプル アダプタのデプロイ

SPI、CCI、およびイベントの各インタフェースを実装した後、以下の手順に従ってアダプタをデプロイします。

手順 6a : 環境の設定

アダプタを WebLogic Integration 環境にデプロイする前に、アダプタがコンピュータのどの場所にあるかを確認します。アダプタのある場所は WLI_HOME/adapters/dbms です。WLI_HOME を、WebLogic Integration がインストールされているディレクトリのパス名に置き換えます。以後、この場所を ADAPTER_ROOT と呼びます。

手順 6b : ra.xml ファイルの更新

DBMS サンプル アダプタでは、アダプタの RAR ファイル (META-INF/ra.xml) の中に、ra.xml ファイルが組み込まれています。DBMS サンプル アダプタでは AbstactManagedConnectionFactory クラスが拡張されており、以下のプロパティが ra.xml ファイルで定義されています。

DBMS サンプル アダプタには、以下の表に示す宣言も必要です。

表 E-3 ra.xml のプロパティ
プロパティ
UserName
DBMS サンプル アダプタのログイン ユーザ名
Password
ユーザ名に対するパスワード
DataSourceName
JDBC 接続プールの名前

DBMS サンプル アダプタの ra.xml ファイルは、次に示すディレクトリで参照できます。

WLI_HOME/adapters/dbms/src/rar/META-INF/

手順 6c : RAR ファイルの作成

クラス ファイル、ロギング コンフィグレーション情報、メッセージ バンドルは JAR ファイルにまとめて記述する必要があります。このファイルは META-INF/ra.xml とバンドルして RAR ファイルを作成します。Ant build.xml ファイルは、この RAR ファイルの正しい構築方法を示しています。

手順 6d : JAR および EAR ファイルの作成

JAR および EAR ファイルを構築するには、次の手順を実行します。

  1. テキスト エディタで、WLI_HOME/adapters/utils にある antEnv.cmd (Windows) または antEnv.sh (UNIX) を編集します。以下の変数に有効なパス名を割り当てます。
    • BEA_HOME - BEA 製品の最上位ディレクトリ。
    • WLI_HOME - Application Integration ディレクトリの場所。
    • JAVA_HOME - 使用する Java 開発キットの場所。
    • WL_HOME - 使用する WebLogic Server ディレクトリの場所。
    • ANT_HOME - Ant インストールの場所。WLI_HOME/adapters/utils など。
  2. コマンド ラインから antEnv を実行し、必要な環境変数の新しい値を有効にします。
  3. WLI_HOME/adapters/dbms/project に移動します。
  4. ant.cmd release (Windows) または ant.sh release (UNIX) を WLI_HOME/adapters/dbms/project ディレクトリから実行して、アダプタをビルドします。

手順 6e : EAR ファイルの作成とデプロイ

EAR ファイルを作成してデプロイすると、DBMS サンプル アダプタが表示されます。手順は、次のとおりです。

  1. 以下のリストで示すように、アダプタの EAR ファイルをドメインの config.xml ファイルで宣言します。
  2. コード リスト E-9 DBMS サンプル アダプタの EAR ファイルの宣言
    <!-- EAR ファイルのデプロイ -->
    <Application Deployed="true" Name="BEA_WLS_DBMS_ADK" Path="WLI_HOME/adapters/dbms/lib/BEA_WLS_DBMS_ADK.ear">
         <ConnectorComponent Name="BEA_WLS_DBMS_ADK" Targets="myserver"
    URI="BEA_WLS_DBMS_ADK.rar"/>
        <WebAppComponent Name="DbmsEventRouter" Targets="myserver"
    URI="BEA_WLS_DBMS_ADK_EventRouter.war"/>
        <WebAppComponent Name="BEA_WLS_DBMS_ADK_Web" Targets="myserver"
    URI="BEA_WLS_DBMS_ADK_Web.war"/>
    </Application>
    注意 : WLI_HOME は、使用する環境の WebLogic Integration のインストール ディレクトリのパス名に置き換えます。
  3. 以下のように入力して、WebLogic Server Administration Console を起動します。
  4. http://host:port/console

    この URL で、host は、サーバの名前であり、port はサーバがリスンするポートです。以下に例を示します。

    http://localhost:7001/console

  5. WebLogic Server Administration Console で、以下を行います。
    1. アダプタ グループをデフォルトの WebLogic Server セキュリティ レルムに追加します。
    2. ユーザをアダプタ グループに追加します。
    3. 変更内容を保存します。
  6. アプリケーション ビューをコンフィグレーションしてデプロイするために、次の場所に移動します。
  7. http://host:port/wlai

    この URL で、host は、サーバの名前であり、port はサーバがリスンするポートです。以下に例を示します。

    http://localhost:7001/wlai

    [WebLogic Integration - Application Integration Design Console ログオン] ページが表示されます。


    [テスト結果] ページ

  8. ユーザ名とパスワードを該当するフィールドに入力し、WebLogic Integration にログオンします。
  9. 『Application Integration Design Console の使い方』の「アプリケーション ビューの定義」に示す手順に従って、アプリケーション ビューをコンフィグレーションし、パブリッシュします。

 


データベース固有のエラー メッセージ

DBMS サンプル アダプタを使用するときに、データベース固有のエラー メッセージがログ ファイルに書き込まれる場合があります。この節では、一般的なデータベース固有のエラー メッセージを示します。

Sybase または MSSQL データベースを使用しているとき、アクティブなデータベースまたは言語 (あるいはその両方) の変更を知らせる警告が発行されることがあります。これらの警告は、接続上でアクティブなデータベースまたは言語が変更された場合に、Sybase データベースおよび MSSQL データベースから送信されます。カタログは DBMS サンプル アダプタのさまざまな場所で変更されるため、サンプル アダプタのユーザは必ずこれらのメッセージを目にすることになります。これらの警告は特に問題ではなく、無視してかまいません。

MSSQL XA 環境のアダプタ インスタンスが自動的に一時停止されて再開すると、次のようなエラー メッセージが送出されます。

<Oct 15, 2003 4:40:30 PM PDT> <Error> <JDBC> <BEA-001112>
<Test "SELECT COUNT(*) FROM sysobjects" set up for pool "wlaiPool" failed with
exception: "javax.transaction.xa.XAException: [BEA][SQLServer JDBC Driver]
No more data available to read.".>

これは JDBC レベルのエラーです。再起動された DBMS インスタンスに対する既存の接続または切断された接続を JDBC コンテナがクリーンアップするときに生成されます。このような例外はこの場合には正常です。つまり、EIS は使用可能であり、アダプタ インスタンスは正常に再開しており、JDBC コンテナは回復しています。

DBMS サンプル アダプタを Microsoft SQL Server データベースで使用するときは、WebLogic Server Administration Console を使用して、Application Integration で使用される接続プールの TestReservedConnection パラメータを有効にします。このパラメータが有効になっていないと、自動再開または手動再開機能が作動せず、次のような SQLException が送出されます。

java.sql.SQLException: [BEA][SQLServer JDBC Driver]No more data
available to read

 


DBMS サンプル アダプタ設計時 GUI の開発工程

設計時 GUI は、ユーザがアプリケーション ビューの作成、サービスとイベントの追加、および WebLogic Integration 環境でホストされているアダプタのデプロイを実行できるインタフェースです。この節では、DBMS サンプル アダプタの設計時 GUI の開発工程について説明します。

手順 1 : 要件の識別

DBMS の設計時 GUI の開発を始める前に、以下のパラメータの値を決定する必要があります。

手順 2 : 必要な Java Server Page の識別

DBMS サンプル アダプタは、設計時 GUI に、ADK に付属する JSP (Java Server Page) を使用します。ただし、アダプタ固有の機能を提供するための JSP が追加されています。次の表では、追加されているプロパティについて説明します。

手順 3 : メッセージ バンドルの作成

テキスト ラベル、メッセージ、および例外のインターナショナライゼーションをサポートするため、DBMS サンプル アダプタでは、テキスト プロパティ ファイルに基づくメッセージ バンドルが使われます。プロパティ ファイルには、BEA_WLS_SAMPLE_ADK プロパティ ファイルからコピーされた名前と値の組み合わせおよび DBMS サンプル アダプタ固有のプロパティ用に追加された新しいエントリの両方が記述されています。

DBMS サンプル アダプタのメッセージ バンドルは、WLI_HOME/adapters/dbms/src ディレクトリに格納されています。これは ADK と一緒にインストールされたものです。詳細については、同じディレクトリ内の BEA_WLS_DBMS_ADK.properties ファイルを参照してください。

メッセージ バンドルの作成方法の詳細については、以下のサイトの JavaSoft チュートリアルでインターナショナライゼーションについて参照してください。

http://java.sun.com/docs/books/tutorial/i18n/index.html

手順 4 : 設計時 GUI の実装

設計時 GUI を実装するには DesignTimeRequestHandler クラスを作成する必要があります。このクラスはフォームからのユーザ入力を受け取り、設計時アクションを実行するためのメソッドを提供します。DesignTimeRequestHandler の詳細については、「手順 4 : 設計時 GUI の実装」を参照してください。

DBMS サンプル アダプタのパブリック クラス DesignTimeRequestHandler により AbstractDesignTimeRequestHandler が拡張され、次の表に示すメソッドが提供されます。

表 E-5 DBMS サンプル アダプタの設計時 GUI のメソッド
メソッド
説明
browse(java.lang.String dbtype, com.bea.connector.DocumentRecord input)
addevent.jsp と addservc.jsp ページの参照機能のバックエンド動作を処理する。
getAdapterLogicalName()
アダプタの論理名を返し、アプリケーション ビューなどのエンティティがデプロイされるときに親クラスをサポートする。
getManagedConnectionFactoryClass()
アダプタの SPI ManagedConnectionFactory 実装クラスを返す。親クラスはこのクラスを使って、EIS に対する CCI 接続を取得する。
supportsServiceTest()
このアダプタが設計時にサービスのテストをサポートしていることを示す。
initServiceDescriptor(ActionResult result, IServiceDescriptor sd, HttpServletRequest request)
サービスの要求および応答スキーマの作成に関するサービス記述子を初期化する。通常、EIS に対する対話を実行してメタデータを読み込み、そのメタデータを XML スキーマに変換する。
そのため、アダプタで提供されている CCI インタフェースが使用されている。このメソッドは、AbstractDesignTimeRequestHandleraddsrvc メソッドによって呼び出される。
initEventDescriptor(ActionResult result, IEventDescriptor ed, HttpServletRequest request)
イベント記述子を初期化する。イベント記述子ではアプリケーション ビューのイベントに関する情報が提供される。サブクラスではこのメソッドを実装する必要がある。
イベントがサポートされていない場合、UnsupportedOperationException が呼び出される。このメソッドは、イベント名と定義の有効性が検証され、イベントがアプリケーション ビューで既存でないことが確認されるまでは、(AbstractDesignTimeRequestHandler によって) 呼び出されることがない。
GetDatabaseType()
使用するデータベース管理システムのタイプを決定する。WebLogic Integration は PointBase および Oracle をサポートしている。

手順 5 : Java Server Page の記述

開発プロセスで以下を行うことを検討してください。

カスタム JSP タグの使用

JSP は display.jsp ページに表示されるので、display.jsp は最初に記述する必要のある .jsp ファイルです。ADK はカスタム JSP タグのライブラリを備えており、これらは ADK および DBMS サンプル アダプタの JSP 全体で使用できます。これらのタグは、検証機能を追加したり、ユーザがボタンをクリックしたときにフィールド値を保存するなど、さまざまな機能をサポートしています。

オブジェクトの状態の保存

ADK を使ってアダプタ用の JSP を記述する際、オブジェクトの状態の保存が必要な場合があります。これにはいくつかの方法があります。AbstractDesignTimeRequestHandler には編集対象のアプリケーション ビューの ApplicationViewDescriptor が保持されます。このファイルから高速かつ効率的にハンドラを呼び出せるので、このファイルに状態を保存するのが一般的です。

別の選択肢として、便利なメソッド (getApplicationViewManager()getSchemaManager() および getNamespaceManager()) を使って AbstractDesignTimeRequestHandler から Manager Bean を要求して、アプリケーション ビューに関するリポジトリから情報を検索することもできます。このメソッドには時間がかかりますが、必要になる場合もあります。これは JSP なのでセッション オブジェクトも使用できます。ただし、セッション内のすべてのオブジェクトで明示的に java.io.serializable インタフェースを実装する必要があります。

WEB-INF/web.xml デプロイメント記述子の記述

WEB-INF/web.xml のデプロイメント記述子を記述します。通常は、アダプタの web.xml ファイルを起点として、必要に応じてコンポーネントを変更します。このアダプタの web.xml ファイルを参照するには、次に示すディレクトリに移動してください。

WLI_HOME/adapters/dbms/src/war/WEB-INF/web.xml

詳細については、次の URL にある BEA WebLogic Server 製品ドキュメントを参照してください。

http://edocs.beasys.co.jp/e-docs

 


実行時の考慮事項

WebLogic Integration Administration Console を使用して Application Integration の実行時環境を管理することができます。詳細については、次の URL にある『WebLogic Integration Administration Console の使用』の「Application Integration」を参照してください。

http://edocs.beasys.co.jp/e-docs/wli/docs92/adminhelp/ai.html

次の節では、DBMS サンプル アダプタ固有の管理の問題について説明します。

イベント接続の変更

DBMS サンプル アダプタ インスタンスのイベント接続の EventSchema パラメータを変更するときは、次の点を考慮してください。

注意 : Application Integration イベントのための JDBC 接続プールで使用されるデータベース インスタンスに変更がある場合などは、サーバを再デプロイする必要があります。

イベント トリガに関連付けられているスキーマ名/テーブル オーナは、設計時に指定される情報のままです。WebLogic Integration Administration Console でイベント接続を編集するときは、イベント テーブルに対して新しい接続を指定します。すべてのイベント メタデータが新しい接続に関連付けられるのは、アプリケーションが WebLogic Integration Administration Console で再デプロイされた後になります。このときにもイベント トリガは元のスキーマ名を指しています。

新しいデータベースへのイベント接続を変更するときは、新しいデータベースに含まれるスキーマとテーブルを以前の設定と同じ名前にする必要があります。新しいテーブルがイベントのトリガに使用されます。

環境変数を使用すると、イベント トリガが新しいスキーマ/テーブル名を指すようにすることができます。元のトリガが削除されないことと、アダプタ インスタンスを再デプロイする必要があることに注意してください。元のトリガを削除するには、WebLogic Server Administration Console からアプリケーションを再デプロイします。スキーマ名に対する環境変数によって、トリガがポーリングするスキーマ名/テーブル オーナを変更することができます。

データベースのテーブルごとにイベントを 1 つに制限することをお勧めします。こうすると、1 つのテーブルに複数のイベント ポーラーがアクセスしないようになります。

複数のアプリケーション ビューで使用される DBMS サンプル アダプタ インスタンスの管理

複数のアプリケーション ビューで使用される DBMS サンプル アダプタを設定するときは、次の点を考慮してください。特定のテーブル/トリガ タイプのイベントを必要とするすべてのアプリケーション ビューでは、使用するアダプタ インスタンスを 1 つだけにする必要があります。2 つのアプリケーション ビューがあり、それぞれが CUSTOMER_TABLE 挿入に依存する場合は、2 つのビューが同じアダプタ インスタンスを使用するようにします。アダプタ インスタンスのイベント ジェネレータは、そのすべてのイベント サブスクリプションがアンデプロイされると、CUSTOMER_TABLE から挿入トリガを削除するためです。AppView1adapter_instance_1 を使用してアンデプロイされると、adapter_instance_1CUSTOMER_TABLE の挿入トリガを削除します。同じく CUSTOMER_TABLE 挿入を必要とする AppView2adapter_instance_2 を使用しても、adapter_instance_1 によってトリガが削除されているためイベントは発生しません。AppView2adapter_instance_1 を使用すると、adapter_instance_1AppView2CUSTOMER_TABLE 挿入イベントを必要とすることを認識しているため、AppView1 がアンデプロイされた場合でもトリガを削除しません。

同一 DBMS インスタンスを使用する複数のイベント ジェネレータ

WebLogic Integration クラスタのノードにイベント ジェネレータを分散させることができます。これにより、イベント生成のロード バランシングとフォールト トレランスが向上します。同一 DBMS インスタンスを使用する複数のイベント ジェネレータの例については、「例 : DBMS サンプル アダプタ」を参照してください。

クラスタ化環境ではイベント ジェネレータ ターゲットを設定する必要があります。空の対象 ("") では、クラスタ内のどのノードでもイベントが起動されません (単一ノード環境では値を指定する必要はありません。イベント ジェネレータの対象値が空でも 1 つのサーバーでイベントが起動されます)。


  ページの先頭       前  次