RDBMS イベント ジェネレータ ユーザーズ ガイド

     前  次    新しいウィンドウで目次を開く     
ここから内容

データ ソースの作成

RDBMS イベントを作成し、新規イベントのチャネル ルールを定義する前に、データベースをポイントするデータ ソースとチャネル ルール (イベント) を定義するテーブルを作成します。RDBMS イベント ジェネレータのチャネル ルールの定義については、WebLogic Integration ソリューションの管理ガイドの RDBMS イベント ジェネレータのチャネル ルールの定義に関する説明を参照してください。

RDBMS イベントのチャネル ルールを定義するには、データ ソースを作成後、RDBMS イベントからパブリッシュするメッセージ ブローカ チャネルも作成しておく必要があります。

以下の節では、データ ソースとメッセージ ブローカ チャネルの作成方法について説明します。

 


データ ソースの作成

データ ソースを作成する前に、接続先データ ソースのデータベース接続パラメータを確認しておく必要があります。データベース接続パラメータが不明な場合は、システム管理者にお問い合わせください。

データ ソース接続の作成

データ ソース作成の次の手順として、データ ソースへの接続を作成します。

データ ソース接続を作成するには :
  1. startWebLogic.cmd コマンドまたは BEA Workshop for WebLogic Platform から WebLogic Server を起動します。
  2. Web ブラウザに http://localhost:7001/console と入力するか、[スタート] メニューから [BEA ProductsArrow symbolExamplesArrow symbolWorkshopArrow symbolWebLogic Server Admin Console] を選択して WebLogic Server Console を起動します。
  3. ユーザ名とパスワードを入力し、[ログイン] をクリックします。デフォルトのユーザ名とパスワードは「weblogic」です。
  4. 図 3-1 のように、WebLogic Server のホーム ページが表示されます。

    図 3-1 WebLogic Server Administration Console


    WebLogic Server Administration Console

  5. [ドメイン コンフィグレーション] セクションの [サービス] で、[JDBC] に移動して [データ ソース] をクリックします。
  6. [JDBC データ ソースの概要] ページが表示されます。

  7. 左側のペインの [チェンジ センタ] にある [ロックして編集] ボタンをクリックし、[JDBC データ ソースの概要] ページにあるすべてのボタンをアクティブにします。
  8. [データ ソース] の [新規作成] をクリックします。
  9. 図 3-2 に示すように、[新しい JDBC データ ソースの作成] ページが表示されます。

    図 3-2 新しい JDBC データ ソース


    新しい JDBC データ ソース

  10. 以下を実行します。
    • [名前] フィールドに接続の名前を入力します。
    • 注意 : トリガ タイプのイベントをコンフィグレーションする場合、[データベース ユーザ名] フィールドに入力するデータベース アカウント ユーザ名とトリガ タイプのイベントをコンフィグレーションするテーブルのスキーマ名を同じにすることをお勧めします。また、使用するアカウント ユーザ名には、テーブルおよびトリガの CREATE/DROP パーミッションが必要です。Oracle データベースをコンフィグレーションする場合、使用するアカウント名にはテーブル、トリガ、およびシーケンスの CREATE/DROP パーミッションが必要です。
    • 接続に使用する名前を [JNDI 名] に入力します。
    • 接続するデータベース タイプを [データベースの種類] ドロップダウン リストから選択します。
    • サポートされるデータベースの一覧については、「サポートされるデータベース」を参照してください。

    • 使用するデータベース ドライバを [データベース ドライバ] ドロップダウン リストから選択します。
    • 注意 : WebLogic Server JDBC 認定ドライバには * (アスタリスク) が付いています。
    • [次へ] をクリックします。
    • 図 3-3 に示すように、[トランザクション オプション] ページが表示されます。

      図 3-3 トランザクション オプション


      トランザクション オプション

  11. [次へ] をクリックします。
  12. 図 3-4 に示すように、[接続プロパティ] ページが表示されます。

    図 3-4 接続プロパティ


    接続プロパティ

  13. 必要なパラメータを [接続プロパティ] で入力し、[次へ] をクリックします。
  14. 図 3-5 に示すように、[データベース接続のテスト] ページが表示されます。

    図 3-5 データベース接続のテスト


    データベース接続のテスト

    このページに表示されるフィールドは、前のページで選択したデータベースおよびドライバに応じて異なります。

  15. ページの表示内容が正しいことを確認して、[コンフィグレーションのテスト] をクリックします。
  16. 次の手順に進む前に、ドライバのコンフィグレーションをテストすることをお勧めします。ドライバのコンフィグレーションをテストしておかないと、それまでの手順にエラーがあった場合、RDBMS イベント ジェネレータをコンフィグレーションする際に、必要なデータベースに接続できません。

    接続の設定に問題があると、ページの上部にエラー メッセージが表示されます。

    コンフィグレーションのテストが成功すると、図 3-6 に示すように [サーバ] ページが表示されます。

    図 3-6 サーバの選択


    サーバの選択

  17. 指定したドメインに 1 台以上のサーバがある場合は、データ ソース接続をデプロイするサーバの横にあるチェック ボックスをオンにして、[完了] をクリックします。
  18. 接続が作成およびデプロイされて、画面が JDBC 接続プールのページに戻ります。

  19. [変更のアクティブ化] をクリックします。

 


データ ソースの作成に関する注意

データ ソースの作成時には、以下の事柄を考慮する必要があります。

 


メッセージ ブローカ チャネルの作成

この節では、RDBMS イベント ジェネレータからパブリッシュするメッセージ ブローカ チャネルの作成方法について説明します。3 種類のメッセージ ブローカ チャネルを作成する必要があります。

メッセージ ブローカ チャネルを作成するには :
  1. BEA Workshop for WebLogic Platform を起動し、サーバが動作していることを確認します。
  2. BEA Workshop for WebLogic Platform から [ファイルArrow symbol新規Arrow symbolその他] をクリックします。[ウィザードを選択] ダイアログ ボックスが表示されます。
  3. WebLogic Integration を展開し、[プロセス アプリケーション] を選択して [次へ] をクリックします。
  4. [プロセス アプリケーション] ダイアログ ボックスに、以下の例のように詳細を入力します。
    1. [EAR プロジェクト名] フィールドに RDBMS_ExampleEAR と入力します。
    2. [Web プロジェクト名] フィールドに RDBMS_ExampleWeb と入力します。
    3. [ユーティリティ プロジェクト名] フィールドに RDBMS_ExampleUtilty と入力します。
  5. [Weblogic Integration システムおよびコントロール スキーマをユーティリティ プロジェクトに追加] チェック ボックスをオンにします。
  6. これにより、Utility Project/schemas フォルダにスキーマが追加されます。

  7. [終了] をクリックします。
  8. 図 3-7 に示すように、[パッケージ・エクスプローラー] ペインで Schemas フォルダを右クリックし、[新規Arrow symbolチャネル定義] を選択します。
  9. 図 3-7 チャネル定義


    チャネル定義

  10. [新しいチャネル定義] ウィザード ダイアログ ボックスが表示されます。
  11. RDBMS_ExampleUtility から SRC フォルダを選択し、チャネル定義ファイルの名前を [ファイル名] に入力して [終了] をクリックします。
  12. 新しいチャネルのコードが表示されます。

  13. XML チャネル ファイルが事前にコンフィグレーションされている場合、新しく作成されたチャネルを固有のカスタム コードに置き換えます。固有のカスタム コードがない場合、次のコードを使用可能です。
  14. <?xml version="1.0"?> 
    <!--
    	 サンプル チャネル ファイル 
    	 channelPrefix および <channel/> 要素を変更してカスタマイズします。 
    	 このサンプル ファイルでは、次のネームスペースを使用します。これらの 
    	 ネームスペースはスキーマ ディレクトリに存在する必要があるスキーマを 
    	 参照します。 
    -	 xmlns:eg=http://www.bea.com/wli/eventGenerator" は 
    	 イベント ジェネレータのメタデータ参照に使われます。 
    -	 xmlns:dp="http://www.bea.com/wli/control/dynamicProperties" は 
    	 ファイル イベント ジェネレータでペイロードをファイル名で渡すために使われます。 
    -	 xmlns:oagpo="http://www.openapplications.org/003_process_po_007" はサンプル ペイロードの説明に使われます。 
    --> 
    <channels xmlns="http://www.bea.com/wli/broker/channelfile"  
    		 channelPrefix="/SamplePrefix"  
    		 xmlns:eg="http://www.bea.com/wli/eventGenerator"  
    		 xmlns:dp="http://www.bea.com/wli/control/dynamicProperties"  
    		 xmlns:oagpo="http://www.openapplications.org/003_process_po_007">  
    	 <channel name ="Samples" messageType="none">  
    		 <!-- XML を渡す単純なチャネル -->  
    		 
    		 <channel name ="SampleXmlChannel" messageType="xml"/>  
    		  
    		 <!-- rawData を渡す単純なチャネル -->  
    		 
    		 <channel name ="SampleRawDataChannel" messageType="rawData"/>  
    		  
    		 <!-- 文字列を渡す単純なチャネル -->  
    		 
    		 <channel name ="SampleStringChannel" messageType="string"/>  
             
    	 </channel>
    </channels>
  15. 上記のファイルの SampleXmlChannel エントリのコメントを解除し、XML チャネルを作成します。
  16. 文字列チャネルを作成するには、上記の手順を繰り返します。ただし、[チャネル名] の選択では、SampleXmlChannel ではなく、SampleStringChannel を選択します。
  17. RawData チャネルを作成するには、上記の手順を繰り返します。ただし、[チャネル名] の選択では、SampleXmlChannel ではなく、SampleRawDataChannel を選択します。
  18. [RDBMS_ExampleWEb] を右クリックし、[新規Arrow symbolプロセス] を選択します。
  19. [新しいプロセス] ダイアログ ボックスが表示されます。[名前] フィールドに名前を入力し、[終了] をクリックします。
  20. 新しい Process.java ファイルをダブルクリックします。
  21. [Starting Event] ノードをダブルクリックします。
  22. 図 3-8 のポップアップが表示されます。

    図 3-8 ビジネス プロセスの呼び出し


    ビジネス プロセスの呼び出し

  23. [メッセージ ブローカ チャネルをサブスクライブし、イベント (タイマー、電子メール、ファイル、アダプタなど) から開始する] を選択し、ダイアログを閉じます。
  24. ノードを再度ダブルクリックします。
  25. 図 3-9 のように、ノードの詳細を示すダイアログが表示されます。

    図 3-9 ノードの詳細


    ノードの詳細

  26. [チャネル名] ドロップダウン リストから [SampleXmlChannel] を選択します。固有の XMLChannel メッセージ ブローカをコンフィグレーションした場合は、そのチャネル名を選択します。
  27. 必要に応じて、左下にある [コードの表示] をクリックして、次の System.out メッセージを入力します。
  28. System.out.printIn(System.currentTimeMillis()+"-"+x0);
  29. [データの受信] タブをクリックして、変数の詳細を入力します。
  30. [保存] をクリックします。
  31. [パッケージ・エクスプローラー] ペインの Process.java ファイルを選択して右クリックします。
  32. [実行] をクリックし、[サーバーで実行] をクリックします。
  33. Process.java ファイルがサーバ上にデプロイされ、実行されます。

XML チャネルの場合、型保証付きで XML コンテンツを取得する方法があります。

  1. Workshop プロジェクトの Schemas フォルダを右クリックし、[インポート] をクリックします。生成された .XSD ファイルを Server ドメイン ディレクトリから選択します。.XSD はチャネル ルール定義と同じ名前でフォルダに作成されます。
  2. .XSD ファイルが自動的に Java クラスにコンパイルされます。
  3. CHAR 型と DATE 型の 2 つのカラムをパブリッシュする testFirst イベントの場合、生成されるスキーマ ファイルは TableRowSet.xsd です。次の subscription(..) メソッド ファイルは、生成されたクラスで XmlObject を使用する方法を示しています。
  4. import com.bea.wli.rdbmsEG.testFirst.TableRowSetDocument;
    import com.bea.wli.rdbmsEG.testFirst.TableRowSetDocument.TableRowSet;
    import com.bea.wli.rdbmsEG.testFirst.TableRowSetDocument.TableRowSet.TableRow;
    ....
    public void subscription(com.bea.xml.XmlObject x0)
        {
            //#START: CODE GENERATED - PROTECTED SECTION - このメソッドのこのコメントより前であれば、安全にコードを追加できる。#//
            // トランスフォームを入力する
            // パラメータの割り当て
            //#END  : CODE GENERATED - PROTECTED SECTION - このメソッドのこのコメントより後であれば、安全にコードを追加できる。#//
            final TableRowSetDocument doc = TableRowSetDocument.Factory.newInstance();
            doc.set(x0); 
            System.out.println("The document: " + doc);
            final TableRowSet rowSet = doc.getTableRowSet();
            final TableRow[] rows = rowSet.getTableRowArray();
            for(int i = 0; i < rows.length; i++)
            {
                System.out.println("---" + (i + 1) + "---");
                System.out.println("CHAR1: " + rows[i].getCHAR1());
                System.out.println("DATE1: " + rows[i].getDATE1());
            }
        }

RawData チャネルに関する次のコード例は、RDBMS イベント ジェネレータでパブリッシュされたデータの取得方法を示しています。

import com.bea.data.RawData;
import java.io.ByteArrayInputStream;
import java.io.ObjectInputStream;
import weblogic.jdbc.rowset.WLCachedRowSet;
....
    public void subscription(com.bea.data.RawData x0)
    {
        //#START: CODE GENERATED - PROTECTED SECTION - このメソッドのこのコメントより前であれば、安全にコードを追加できる。#//
        // トランスフォームを入力する
        // パラメータの割り当て
        //#END  : CODE GENERATED - PROTECTED SECTION - このメソッドのこのコメントより後であれば、安全にコードを追加できる。#//
        try
        {
            ByteArrayInputStream arrayInputStream = new ByteArrayInputStream(rawData.byteValue());
            ObjectInputStream objectInputStream = new ObjectInputStream(arrayInputStream);
            WLCachedRowSet rowSet = (WLCachedRowSet) objectInputStream.readObject(); 
            System.out.println("-- Event --\r\n");
            while (rowSet.next())
            {
                Map map = rowSet.getCurrentRow(); 
                for (Iterator iterator = map.keySet().iterator(); iterator.hasNext();)
                {
                    Object key = iterator.next();
                    System.out.println("  Column: " + key + ", Value: " + map.get(key));
                }
            }
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }

メッセージ ブローカ チャネルの詳細については、『WebLogic Integration Administration Console の使用』の「メッセージ ブローカ」を参照してください。

WebLogic Integration Administration Console のメッセージ ブローカ モジュールでは、アプリケーションのすべてのメッセージ ブローカ チャネルをモニタおよび管理できます。

データ ソースとメッセージ ブローカ チャネルの作成が完了すると、WebLogic Integration Administration Console で RDBMS イベント ジェネレータを作成し、これらのジェネレータのチャネル ルールを定義できるようになります。

RDBMS イベント ジェネレータの作成およびチャネル ルール定義の詳細については、『WebLogic Integration Administration Console の使用』の「イベント ジェネレータ」を参照してください。


  ページの先頭       前  次