Integration コントロールを使用する

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

XML メタデータ キャッシュ コントロール

コントロールの挿入 : XML メタデータ キャッシュ

注意 : XML メタデータ キャッシュは、Oracle WebLogic Integration Administration Console または MBean API を使用して管理され、このキャッシュを使用することでコンソールに基づいた独自の NetUI の作成が可能になります。このコントロールは、XML メタデータ キャッシュ内にある XML メタデータを取得するために使用します。

 


この節に含まれるトピック

概要 : XML メタデータ キャッシュ コントロール

Oracle WebLogic Integration とその機能について説明します。

クラスタ内でキャッシュ データを共有する

キャッシュされたデータをクラスタ全体で共有し、ノードから要求されたときに利用可能にする方法を説明します。

XML メタデータ キャッシュ コントロールを作成する

Oracle WebLogic Integration 内に新しい Oracle WebLogic Integration を作成する方法を説明します。

XML メタデータ キャッシュ コントロールの get メソッドについて

Oracle WebLogic Integration の get メソッドを使用して XML メタデータを取得する方法を説明します。

ビジネス プロセスで XML メタデータ キャッシュ コントロールを使用する

ビジネス プロセスで Oracle WebLogic Integration を使用する方法を説明します。

サンプル : XML メタデータ キャッシュ コントロール

Oracle WebLogic Integration を使用するシナリオを説明します。

 


概要 : XML メタデータ キャッシュ コントロール

XML メタデータ キャッシュ コントロールは、管理されているキーと値の組み合わせにすばやくアクセスするために使用されます。キーは String 型で、値には XML データが含まれます。

XML メタデータ キャッシュ コントロールをビジネス プロセスのフローで使用すると、XML メタデータ キャッシュから XML メタデータを取得できます。キャッシュのエントリは、Oarcle WebLogic Integration Administration Console で管理 (追加、削除、更新) されます。または、NetUI アプリケーションなどのカスタム アプリケーションを記述してキャッシュを管理することもできます。詳細については、「クラスタ内でキャッシュ データを共有する」を参照してください。

XML メタデータ キャッシュ コントロールは、主に読み取りを行う環境で使用するのに適しています。XML メタデータ キャッシュは、メタデータのコンフィグレーション以外では使用できません。これは、実行時の xml データをキャッシュするために使用されます。キャッシュのエントリの更新は、クラスタ内のすべてのキャッシュ エントリを更新する必要がある一方で読み込み操作が常にインメモリで処理されるため、コストがかかります。そのため、キャッシュ内の XML 値のサイズは通常 100KB 未満に抑えるようにします。それよりサイズが大きくても機能しますが、更新にかかるコストが増えます。XML メタデータ キャッシュはグローバルなドメイン全体のキャッシュです。キャッシュのデータは、ファイルベースで格納することにより永続的に使用できるようになります。

図 19-1 では、XML メタデータ キャッシュおよび Oracle WebLogic Integration の実装を示します。

図 19-1 Oracle WebLogic Integration 実装の概要
コントロールの挿入 : XML メタデータ キャッシュ

 


クラスタ内でキャッシュ データを共有する

XML メタデータは、管理サーバを実行しているノードからのみキャッシュに追加できます。管理サーバは入力を受け取り、キーおよび関連付けられた XML メタデータを次の形式のファイルに格納します。

XMLMetatadaCache_<keyname>_.xml

キャッシュに追加された XML ドキュメントごとに、新しい XML メタデータ キャッシュ ファイルが作成されます。ファイルが作成されると、新しく追加された XML ドキュメントはクラスタ内のすべてのノードに伝播されます。このため、データは要求側ノードですぐに使用できるようになります。

XML メタデータ キャッシュ コントロールをクラスタ内で使用している場合に、クラスタのサーバが再起動されてサーバがオフラインの間に値が変更されると、サーバは再びオンラインになったときに変更の通知を受け取ります。

注意 : 管理サーバが停止しているときに XML メタデータ キャッシュを変更することはできません。

図 19-2 は、クラスタ内でデータが共有される様子を示します。

図 19-2 クラスタ内のデータ共有

 


XML メタデータ キャッシュ コントロールを作成する

新しい XML メタデータ キャッシュ コントロールを作成してビジネス プロセスに追加できます。新しい XML メタデータ キャッシュ コントロールを作成するには、次の手順に従います。

  1. [パッケージ・エクスプローラー] ペインで、XML メタデータ キャッシュ コントロールを追加するビジネス プロセス (Process.java ファイル) をダブルクリックします。ビジネス プロセスがデザイン ビューに表示されます。
  2. データ パレットクラスタ内でデータを共有する をクリックし、ドロップダウン リストから Integration コントロールを選択して、アプリケーションの統合に使用するコントロールのリストを表示します。
  3. 注意 : [データ パレット] ビューが Oracle Workshop for WebLogic に表示されない場合は、メニュー バーから、
    [ウィンドウビューの表示データ パレット] をクリックします。
  4. XML メタデータ キャッシュを選択します。
  5. [コントロールの挿入 : XML メタデータ キャッシュ] ダイアログ ボックスが表示されます (図 19-3 を参照)。

    図 19-3 コントロールの挿入 : XML メタデータ キャッシュ


    コントロールの挿入 : XML メタデータ キャッシュ

  6. [コントロールの挿入 : XML メタデータ キャッシュ] ダイアログ ボックスに以下の情報を入力します。
    • [フィールド名] に、ビジネス プロセスから新しい XML メタデータ キャッシュ コントロール インスタンスにアクセスするときに使用する変数の名前を入力します。有効な Java 識別子を入力する必要があります。
    • [挿入位置] で、フィールド名をプロセス ファイルに挿入するポイントをドロップダウン リストから選択します。
    • [終了] をクリックします。
    • 注意 : XML メタデータ キャッシュ コントロールの場合、[これを実行時に複数のインスタンスを作成できるコントロール ファクトリにする] オプションは無効になっていて選択できません。

 


XML メタデータ キャッシュ コントロールの get メソッドについて

XML メタデータ キャッシュ コントロールには次のメソッドが含まれています。

XmlObject get(String key)

このメソッドを使用すると、get コマンドで String 型のキーを使用してキャッシュ内の XML メタデータにアクセスできます。このメソッドの使用方法の詳細については、「ビジネス プロセスで XML メタデータ キャッシュ コントロールを使用する」を参照してください。

キャッシュからドキュメントを取得できるのは、以前に Administration Console を使用してキャッシュにドキュメントを追加した場合のみです。キャッシュに XML ドキュメントを追加する方法の詳細については、「XML キャッシュ」を参照してください。

 


ビジネス プロセスで XML メタデータ キャッシュ コントロールを使用する

作成が終わったら、新しい XML メタデータ キャッシュ コントロールをビジネス プロセスで使用できます。

ビジネス プロセスは通常、クライアント要求ノードで開始されます。このノードは、クライアントによるプロセスの要求を表します。ここでは、クライアントがプロセスの get(String key) メソッドを呼び出して、キャッシュから XML メタデータ キーを取得します。

ビジネス プロセスを設定してキャッシュから XML メタデータを取得するには、以下の作業を行います。

クライアント ノードを準備するには
  1. クライアント要求ノードを開きます。[一般的な設定] タブの [メソッド名] フィールドに、NewXMLMetadata と入力します。
  2. [追加] をクリックし、Java データ型のリストから [String] を選択します。[名前] フィールドに変数として Key1 と入力して [OK] をクリックすると、選択した内容がクライアント要求ノードに追加されます。これで、このコントロールではクライアントによって送受信される値として String 型の値を予期することが、クライアントに対して示されます。ここでの String は、XML メタデータを関連付けるキーの定義に使用されるデータ型になります。
  3. [データの受信] タブで、クライアント要求ノードのタブに割り当てる変数として String を選択します。変数の型は、変数を割り当てるパラメータに基づいて、あらかじめ定義されます。ここで指定した String は、オブジェクトの中心的な要素であるキーの値の定義に使用されるデータ型になります。
  4. クライアント要求ノードを閉じます。これで、ビジネス プロセスに get (String key) ノードを追加できるようになりました。
XML メタデータ ドキュメントを取得するには

Oracle WebLogic Integration を使用した XML メタデータ ドキュメントの取得には、以下のプロパティを使用できます。

xmlObject get(String key)

コントロールではこのプロパティを使用して、XML メタデータ キャッシュから特定のキーを取得します。

Oracle WebLogic Integration を使用してビジネス プロセスでキーを取得するには、次の手順を実行します。

  1. データ パレットから XmlObject get(String) メソッドをドラッグして、ビジネス プロセスのクライアント要求ノードの下にドロップします。
  2. get ノードをダブルクリックして、ノード ビルダの [一般的な設定] タブを表示します。
  3. [コントロール] フィールドに MyOracle WebLogic Integration が表示され、[メソッド] フィールドで以下のメソッドが選択されていることを確認します。
  4. get(String key)
  5. [データの送信] タブを開きます。[割り当てる変数を選択します] ドロップダウン リストで [Key1(String)] を選択します。
  6. [データの受信] タブを開きます。[割り当てる変数を選択します] リストで、XML_1 という新しい変数を作成します。デフォルトでは、XMLObject データ型が選択されます。これで、XML メタデータに対する get 要求が完了しました。
  7. ウィンドウを閉じます。

以下は、add (String key) ノードのコンフィグレーションのサンプル コードです。

public void get_metadataGet() throws Exception
{
//#START: CODE GENERATED - PROTECTED SECTION - このメソッドのこのコメントより上にはコードを安全に追加できる
// 入力変換
// メソッド呼び出しを返す
this.XML_1 = get_metadata.get(this.Key_1);
// 出力変換
// 出力の割り当て
//#END: CODE GENERATED - PROTECTED SECTION - このメソッドのこのコメントより下にはコードを安全に追加できる

 


サンプル : XML メタデータ キャッシュ コントロール

以下のシナリオでは、ワークフロー内のビジネス プロセスで XML メタデータ キャッシュをデプロイする方法について説明します。

以下の要素が含まれます。

販売者はオークション クライアントに商品を出品し、購入者はその商品を入札します。入札が承認されると、販売者は購入者の詳細情報を要求して売買を進めます。ワークフローのさまざまな要素間の通信はルータ プロセスによって処理されます。

購入者の入札が承認されると、以下のシナリオが発生します。

  1. 販売者は購入者のメタデータを求める要求をオークション クライアントに送信します。このメタデータには、購入者の名前、住所、電話番号などの情報が含まれています。
  2. ルータは要求を調べて、その内容に基づいて購入者プロセスに必要なメタデータを問い合わせます。
  3. 購入者の情報は XML ドキュメントの形でグローバルな XML メタデータ キャッシュに格納されています。ルータは関連するキーを求める要求を購入者に送信します。
  4. ルータは購入者からキーを取得し、XML メタデータ キャッシュ コントロールを使用して、必要なメタデータに対する get 要求を実行します。XML メタデータが取得されてクライアントに返されます。このイベントでは、ルータ プロセスは XML メタデータ キャッシュ コントロールを追加し、get (String key) メソッドを使用して購入者の XML メタデータを取得しています。つまり、XML メタデータ キャッシュ コントロールはルータ プロセスに追加されています。そのためにデータが円滑に取得されます。
  5. 注意 : 情報の転送が正常に行われるには、ルータ ビジネス プロセスをデプロイする前に、購入者のメタデータがキャッシュ内に格納されている必要があります。

 


MBean API を使用して XML メタデータ キャッシュを管理する

Configuration MBean API を使用して独自のキャッシュを作成し、そのキャッシュに対するデータの追加、取得および削除を行えます。

シングルトンの XMLCacheMBean を取得する

シングルトンの XMLCacheMBean を取得するには、次のコードを使用します。

Context ctx = new InitialContext();
MBeanHome home = (MBeanHome) ctx.lookup(MBeanHome.LOCAL_JNDI_NAME); (XMLCacheMBean) xmlCacheMBean = home.getMBean(XMLCacheMBean.SINGLETON_MBEAN_NAME, XMLCacheMBean.MBEAN_TYPE);
String key = "key1";

Configuration MBean API を使用する

Configuration MBean API で提供される以下のメソッドを使用して、XML メタデータ キャッシュに対するエントリの追加、取得、削除を行えます。

public XmlObject xmlObj = XmlObject.Factory.parse(new File(YourXmlFile)) //xmlObject を作成する

このメソッドを使用して XMLobject を作成できます。

public xmlCacheMBean.add(key, xmlObj);

このメソッドを使用して XML メタデータ キャッシュへのキーを追加できます。

public XmlObject xmlObject_get = xmlCacheMBean.get(key);

このメソッドを使用して XML メタデータ キャッシュからキーを取得できます。

public XmlObject newxmlObj = ..... //別の xmlObject を作成する

このメソッドを使用して新しい XMLObject を作成できます。

public xmlCacheMBean.update(key,newxmlObj);

このメソッドを使用して XML メタデータ キャッシュを更新できます。

public xmlCacheMBean.delete(key);

このメソッドを使用して XML メタデータ キャッシュからキーを削除できます。

public boolean keyExists = xmlCacheMBean.keyExists(key);

このメソッドを使用して、特定のキーが XML メタデータ キャッシュ内に存在するかどうかを調査できます。

public String[] allKeys = xmlCacheMBean.getAllKeys();

このメソッドを使用して、XML メタデータ キャッシュ内にあるすべてのキーのリストを取得できます。

  ページの先頭       前  次