ナビゲーションをスキップ.

RDBMS イベント ジェネレータ

  前 次 vertical dots separating previous/next from contents/index/pdf 目次  

データ ソースの作成

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

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

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

 


データ ソースの作成

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

データ ソースの作成手順を以下に示します。

クラスパスへのドライバの追加

データ ソースを作成するには、まず、必要なドライバを WebLogic クラスパスに追加します。

ドライバを WebLogic クラスパスに追加するには :

  1. <bea_home>\weblogic81\samples\domains\<domain name> ディレクトリを探します。
  2. setDomainEnv.cmd を開き、ファイルの最後までスクロールして、次の記述を表示します。
  3. @REM SET THE CLASSPATH
    set CLASSPATH=%PRE_CLASSPATH%;%WEBLOGIC_CLASSPATH...
  4. @REM SET THE CLASSPATH の直後に次のステートメントを追加します。
  5. set CLASSPATH=%WL_HOME%\server\lib\driver.jar;%CLASSPATH%

    driver.jar はクラスパスに追加するデータベース ドライバの jar ファイルです。たとえば、Oracle ドライバのコマンドは次のように記述されています。

    set CLASSPATH=%WL_HOME%\server\lib\ojdbc14.jar;%CLASSPATH%
  6. ファイルを保存します。

注意 : MS SQL XA ドライバでイベントを作成する前に、「MS SQL Server ドライバ」の「JTA 用ストアド プロシージャのインストール」の手順を実行する必要があります。

データ ソース接続の作成

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

データ ソース接続を作成するには :

  1. startWebLogic.cmd コマンドまたは WebLogic Workshop から WebLogic Server を起動します。
  2. Web ブラウザに http://localhost:7001/console と入力するか、[ツール|WebLogic Server|WebLogic コンソール...] を選択して、WebLogic Server Console を起動します。
  3. ユーザ名とパスワードを入力し、[サインイン] をクリックします。デフォルトのユーザ名とパスワードは、いずれも「weblogic」です。
  4. 次の図のように、WebLogic Server のホーム ページが表示されます。


     
  5. [サービス コンフィグレーション] セクションの [JDBC] の [接続プール] をクリックします。
  6. 次の図のように、[JDBC 接続プール] ページが表示されます。


     
  7. [新しい JDBC 接続プール のコンフィグレーション] をクリックします。
  8. 次の図のように、[JDBC 接続プールのコンフィグレーション] ページが表示されます。


     
  9. 接続するデータベース タイプを [データベース タイプ] ドロップダウン リストから選択します。
  10. サポートされるデータベースの一覧については、「サポートされるデータベース」を参照してください。

  11. 使用するデータベース ドライバを [データベース ドライバ] ドロップダウン リストから選択します。
  12. 注意 : WebLogic Server JDBC 認定ドライバには * の印が付いています。

  13. [続行] をクリックします。
  14. 次の図のように、[接続プロパティの定義] ページが表示されます。


     

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

  15. [名前] フィールドに接続の名前を入力します。
  16. その他の接続詳細を入力し、[続行] をクリックします。
  17. 注意 : トリガ タイプのイベントをコンフィグレーションする場合、[データベース ユーザ名] フィールドに入力するデータベース アカウント ユーザ名とトリガ タイプのイベントをコンフィグレーションするテーブルのスキーマ名を同じにすることをお勧めします。また、使用するアカウント ユーザ名には、テーブルおよびトリガの CREATE/DROP パーミッションが必要です。Oracle データベースをコンフィグレーションする場合、使用するアカウント名にはテーブル、トリガ、およびシーケンスの CREATE/DROP パーミッションが必要です。

    次の図のように、[データベース接続のテスト] ページが表示されます。


     

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

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

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

    コンフィグレーションのテストが成功すると、次の図のように [作成とデプロイ] ページが表示されます。


     
  20. 指定したドメインに複数のサーバが存在する場合、デプロイ対象のサーバをチェックし、[作成とデプロイ] をクリックします。
  21. 接続が作成およびデプロイされて、画面が [JDBC 接続プール] ページに戻ります。

接続プール コンフィグレーションの定義

次に、データ ソースの接続プールのコンフィグレーションを定義します。

接続プール コンフィグレーションを定義するには :

  1. [JDBC 接続プール] ページで新しい接続の名前をクリックします。
  2. 次の図のように、接続プールのコンフィグレーション ページが表示されます。


     
  3. [接続] タブをクリックします。
  4. 表示されたフィールドにコンフィグレーションの詳細を入力します。
  5. XA ドライバを使用している場合、[詳細オプション] セクションの [表示] をクリックします。
  6. [ローカル トランザクションのサポート] オプションが選択されていることを確認します。
  7. [適用] をクリックします。

新しいデータ ソースのコンフィグレーション

データ ソース接続の作成の最後の手順として、新しいデータ ソースを作成します。

新しいデータ ソースを作成するには :

  1. WebLogic Server のホーム ページで、[サービス コンフィグレーション] セクションの [JDBC] の [データ ソース] をクリックします。
  2. 次の図のように、[JDBC データ ソース] ページが表示されます。


     
  3. [新しい JDBC データ ソースのコンフィグレーション] をクリックします。
  4. 次の図のように、[データ ソースのコンフィグレーション] ページが表示されます。


     
  5. 新しいデータ ソースの名前を [名前] フィールドに入力します。
  6. [JNDI 名] フィールドに、データ ソースをバインドする JNDI パスを入力します。
  7. 非 XA ドライバを使用している場合は、[非 XA ドライバ用に 2 フェーズ コミットをエミュレート] チェックボックスをチェックします。
  8. [続行] をクリックします。
  9. 次の図のように、[接続プールへの接続] ページが表示されます。


     
  10. データ ソース接続の作成」で作成した接続を [プール名] ドロップダウン リストから選択します。
  11. [続行] をクリックします。
  12. 次の図のように、[データ ソースの対象設定] ページが表示されます。


     
  13. この JDBC データ ソースをデプロイするサーバおよびクラスタを選択します。通常、データ ソースは関連付けられた接続プールと同じサーバおよびクラスタにデプロイします。関連付けられた接続プールのデプロイメント対象がデフォルトで選択されています。
  14. [作成] をクリックします。
  15. 新しいデータ ソースが作成され、画面は [JDBC データ ソース] ページに戻ります。

WebLogic Integration Administration Console で RDBMS イベント ジェネレータを作成し、これらの新しいイベント ジェネレータのチャネル ルールを定義する前に、新しいイベント ジェネレータのパブリッシュ先となるメッセージ ブローカ チャネルを作成しておく必要があります。

 


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

以下の点に注意する必要があります。

 


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

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

メッセージ ブローカ チャネルを作成するには :

  1. WebLogic Workshop を起動し、サーバが動作していることを確認します。
  2. [ファイル新規作成アプリケーション] をクリックし、アプリケーション名を指定します。
  3. [アプリケーション] ペインで、[Schemas] フォルダを右クリックし、[新規作成チャネル ファイル] を選択します。

  4.  
  5. チャネル名を入力し、[作成] をクリックします。
  6. 新しいチャネルのコードが表示されます。

  7. XML チャネル ファイルが事前にコンフィグレーションされている場合、新しく作成されたチャネルを固有のカスタム コードに置き換えます。固有のカスタム コードがない場合、次のコードを使用可能です。
<?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>
  1. [ファイル新規作成プロセス ファイル] をクリックします。
  2. 新しいファイルの名前を指定して、[作成] をクリックします。
  3. 新しいプロセス ファイルをダブルクリックします。
  4. [Starting Event] ノードをダブルクリックします。
  5. ノード定義ダイアログが表示されます。


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


     
  9. [チャネル名] ドロップダウン リストから [SampleXmlChannel] を選択します。固有の XMLChannel メッセージ ブローカをコンフィグレーションした場合は、そのチャネル名を選択します。
  10. 必要に応じて、左下にある [コードの表示] をクリックして、次の System.out メッセージを入力します。
  11. System.out.printIn(System.currentTimeMillis()+"-"+x0);
  12. [データの受信] タブをクリックして、変数の詳細を入力します。
  13. ファイルを閉じて、[ビルドアプリケーションのビルド] をクリックします。
  14. これで XML チャネルが作成され、JPD がサーバに自動的にデプロイされます。

  15. 文字列チャネルを作成するには、上記の手順を繰り返します。ただし、[チャネル名] の選択では、[SampleXmlChannel] ではなく、[SampleStringChannel] を選択します。
  16. RawData チャネルを作成するには、上記の手順を繰り返します。ただし、[チャネル名] の選択では、[SampleXmlChannel] ではなく、[SampleRawDataChannel] を選択します。

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

  1. Workshop プロジェクトの Schemas フォルダを右クリックし、[インポート] をクリックします。生成された .XSD ファイルを Server ドメイン ディレクトリから選択します。.XSD はチャネル ルール定義と同じ名前でフォルダに作成されます。
  2. .XSD ファイルが自動的に Java クラスにコンパイルされます。
  3. CHAR 型と DATE 型の 2 つのカラムをパブリッシュする testFirst イベントの場合、生成されるスキーマ ファイルは TableRowSet.xsd です。次の subscription(..) メソッド ファイルは、生成されたクラスで XmlObject を使用する方法を示しています。
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");
            rowSet.moveToCurrentRow();
            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 Workshop のヘルプの「チャネルに対してパブリッシュおよびサブスクライブする」の「メッセージ ブローカ チャネルを作成するには」を参照してください。

WebLogic Integration Administration Console のメッセージ ブローカ モジュールでは、アプリケーションのすべてのメッセージ ブローカ チャネルをモニタおよび管理できます。詳細については、『WebLogic Integration ソリューションの管理』の「メッセージ ブローカ」を参照してください。

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

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

 

ナビゲーション バーのスキップ  ページの先頭 前 次