![]() ![]() ![]() ![]() |
注意 : | WebLogic Integration は、WebLogic Integration の使用許諾を受けた場合にのみ、BEA Workshop for WebLogic Platform で使用できます。 |
注意 : | XML メタデータ キャッシュは、WebLogic Integration Administration Console または MBean API を使用して管理され、このキャッシュを使用することでコンソールに基づいた独自の NetUI の作成が可能になります。WebLogic Integration を使用して、XML メタデータ キャッシュ内にある XML メタデータを取得できます。 |
WebLogic Integration は、管理されているキーと値の組み合わせにすばやくアクセスするために使用されます。キーは String 型で、値には XML データが含まれます。WebLogic Integration を使用するソースの詳細については、http://dev2dev.bea.com/code/wli.jsp にある WebLogic Integration コード ライブラリの Weblogic Integration コード サンプルを参照してください。
WebLogic Integration をビジネス プロセスのフローで使用すると、XML メタデータ キャッシュから XML メタデータを取得できます。キャッシュのエントリは、WebLogic Integration Administration Console で管理 (追加、削除、更新) されます。または、NetUI アプリケーションなどのカスタム アプリケーションを記述してキャッシュを管理することもできます。詳細については、「クラスタ内でキャッシュ データを共有する」を参照してください。
WebLogic Integration は、主に読み取りを行う環境で使用するのに適しています。XML メタデータ キャッシュは、メタデータのコンフィグレーション以外では使用できません。これは、実行時の xml データをキャッシュするために使用されます。キャッシュのエントリの更新は、クラスタ内のすべてのキャッシュ エントリを更新する必要がある一方で読み込み操作が常にインメモリで処理されるため、コストがかかります。そのため、キャッシュ内の XML 値のサイズは通常 100KB 未満に抑えるようにします。それよりサイズが大きくても機能しますが、更新にかかるコストが増えます。XML メタデータ キャッシュはグローバルなドメイン全体のキャッシュです。キャッシュのデータは、ファイルベースで格納することにより永続的に使用できるようになります。
図 18-1 では、XML メタデータ キャッシュおよび WebLogic Integration の実装を示します。
XML メタデータは、管理サーバを実行しているノードからのみキャッシュに追加できます。管理サーバは入力を受け取り、キーおよび関連付けられた XML メタデータを次の形式のファイルに格納します。
XMLMetatadaCache_<keyname>_.xml
キャッシュに追加された XML ドキュメントごとに、新しい XML メタデータ キャッシュ ファイルが作成されます。ファイルが作成されると、新しく追加された XML ドキュメントはクラスタ内のすべてのノードに伝播されます。このため、データは要求側ノードですぐに使用できるようになります。
XML メタデータ キャッシュ コントロールをクラスタ内で使用している場合に、クラスタのサーバが再起動されてサーバがオフラインの間に値が変更されると、サーバは再びオンラインになったときに変更の通知を受け取ります。
注意 : | 管理サーバが停止しているときに XML メタデータ キャッシュを変更することはできません。 |
図 18-2 は、クラスタ内でデータが共有される様子を示します。
新しい WebLogic Integration を作成してビジネス プロセスに追加できます。新しい WebLogic Integration を定義するには
注意 : | データ パレット ビューが BEA Workshop for WebLogic Platform に表示されない場合は、メニュー バー![]() ![]() ![]() |
[Insert control: XML メタデータ キャッシュ] ダイアログ ボックスが表示されます。
WebLogic Integration には以下のメソッドが含まれます。
このメソッドを使用すると、get
コマンドで String
型のキーを使用してキャッシュ内の XML メタデータにアクセスできます。このメソッドの使用方法の詳細については、「ビジネス プロセスで WebLogic Integration を使用する」を参照してください。
キャッシュからドキュメントを取得できるのは、以前に Administration Console を使用してキャッシュにドキュメントを追加した場合のみです。キャッシュに XML ドキュメントを追加する方法の詳細については、http://edocs.beasys.co.jp/e-docs/wli/docs92/manage/index.html
にある『WebLogic Integration ソリューションの管理』の XML メタデータ キャッシュに関する説明を参照してください。
作成が終わったら、新しい WebLogic Integration をビジネス プロセスで使用できます。
ビジネス プロセスは通常、クライアント要求ノードで開始されます。このノードは、クライアントによるプロセスの要求を表します。ここでは、クライアントがプロセスの get(String key)
メソッドを呼び出して、キャッシュから XML メタデータ キーを取得します。
ビジネス プロセスを設定してキャッシュから XML メタデータを取得するには、以下の作業を行います。
get
メソッドを表示するには、MyWebLogic Integration を展開します。get (String key)
ノードを追加できるようになりました。
WebLogic Integration を使用した XML メタデータ ドキュメントの取得には、以下のプロパティを使用できます。
コントロールではこのプロパティを使用して、XML メタデータ キャッシュから特定のキーを取得します。
WebLogic Integration を使用してビジネス プロセスでキーを取得するには、次の手順を実行します。
XmlObject get(String)
メソッドをドラッグして、ビジネス プロセスのクライアント要求ノードの下にドロップします。get(String key)
以下は、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 メタデータ キャッシュをデプロイする方法について説明します。
販売者はオークション クライアントに商品を出品し、購入者はその商品を入札します。入札が承認されると、販売者は購入者の詳細情報を要求して売買を進めます。ワークフローのさまざまな要素間の通信はルータ プロセスによって処理されます。
get (String key)
メソッドを使用して購入者の XML メタデータを取得しています。つまり、WebLogic Integration はルータ プロセスに追加されています。そのためにデータが円滑に取得されます。注意 : | 情報の転送が正常に行われるには、ルータ JPD をデプロイする前に、購入者のメタデータがキャッシュ内に格納されている必要があります。 |
Configuration MBean API を使用して独自のキャッシュを作成し、そのキャッシュに対するデータの追加、取得および削除を行えます。
シングルトンの 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 で提供される以下のメソッドを使用して、XML メタデータ キャッシュに対するエントリの追加、取得、削除を行えます。
public XmlObject xmlObj = XmlObject.Factory.parse(new File(
YourXmlFile)) //xmlObject を作成する
public xmlCacheMBean.add(key, xmlObj);
public XmlObject xmlObject_get = xmlCacheMBean.get(key);
public XmlObject newxmlObj = ..... //別の xmlObject を作成する
public xmlCacheMBean.update(key,newxmlObj);
public xmlCacheMBean.delete(key);
public boolean keyExists = xmlCacheMBean.keyExists(key);
public String[] allKeys = xmlCacheMBean.getAllKeys();
![]() ![]() ![]() |