BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA
 ドキュメントのダウンロード   サイト マップ   用語集 
検索

B2B Integration 管理アプリケーション プログラミング ガイド

 前 次 目次 索引 PDF で表示  

管理アプリケーションの開発

以下の節では、WebLogic Integration B2B エンジンの実行時アクティビティのモニタに使用する管理アプリケーションの作成方法について説明します。

 


管理ツールの操作

WebLogic Integration B2B Console を使用すると、B2B Integration のアクティビティを実行時にモニタできます。また、必要に応じてカスタム管理アプリケーションを作成し、B2B Console と同等の情報をモニタすることもできます。

カスタム管理アプリケーションは、以下のような用途に使用できます。

注意: WebLogic Integration リポジトリは、カスタム管理アプリケーションでは更新できません。リポジトリは、次のいずれかのツールを使用して更新します。

 


MBean と MBeanServer の操作

WebLogic Integration では、B2B エンジンの実行時アクティビティをモニタするカスタム管理アプリケーションの作成に必要なアプリケーション プログラミング インタフェース(API)が用意されています。B2B Console でもこれらの API を使用してリアルタイムのモニタ情報を表示しています。

これらの API は、管理操作のための属性およびメソッドを備えた特別な JavaBean である Java Management Extensions (JMX) Managed Bean (MBean) のセットで構成されています。JMX、特に JMX API (MBeanServer および MBean を含む) の詳細については、Sun Microsystems, Inc. 発行の Java Management Extensions 仕様(下記 URL)を参照してください。

http://www.java.sun.com/products/JavaManagement/index.html

MBean パッケージ

WebLogic Integration では、カスタム管理アプリケーションの作成に使用する com.bea.b2b.management パッケージが提供されています。このパッケージでは以下が提供されます。

このパッケージの詳細については、『BEA WebLogic Integration Javadoc』を参照してください。

このリリースでは、すべての MBean が 標準 MBean として実装されます。これらの標準 MBean によって、独自の MBean インタフェースを実装するクラスが構成されます。WebLogic Integration MBean は、リモート MBean としては実装されません。したがって、すべての管理アプリケーションを、モニタする B2B エンジンに常駐させる必要があります。

MBean

次の表では、各 WebLogic Integration MBean について説明します。

表2-1 WebLogic Integration MBean

ラベル

説明

WLCMBean

B2B Integration のインスタンスを表す。実行時のインスタンスのモニタに使用する。

DeliveryChannelMBean

配信チャネルを表す。実行時の B2B Integration システム上の配信チャネルのモニタに使用する。

ConversationMBean

B2B Integration インスタンス上のトランザクション マネージャによって管理されるビジネス会話を表す。配信チャネル内のアクティブなトランザクションのモニタに使用する。

TradingPartnerSession
MBean

トレーディング パートナのセッションを表す。トレーディング パートナのモニタに使用する。

MessageMBean

会話内のメッセージを表す。メッセージのモニタに使用する。

CollaborationAgreementMBean

コラボレーション アグリーメントを表す。コラボレーション アグリーメントは、どのプロトコルを使用してどのように通信するかについての 2 パーティ間の技術的なアグリーメントを表す。


 

注意: WebLogic Integration リリース 2.1、7.0 および BEA WebLogic Collaborate 2.0 では、すべての MBean がこのパッケージに集められています。WebLogic Collaborate の旧バージョンでは、MBean は c-hub パッケージと c-enabler パッケージに分けられていました。WebLogic Collaborate 1.0 または 1.0.1 からアップグレードする場合は、以前に記述した管理アプリケーションを、新しい MBean を使用するように変更する必要があります。次の表に、リリース 1.x MBean からリリース 2.x MBean への変更点をまとめます。

表2-2 MBean ラベル

リリース 1.x のラベル

リリース 2.x のラベル

EnablerMBean

WLCMBean

HubMBean

WLCMBean

CSpaceMBean

DeliveryChannelMBean

ConversationMBean

ConversationMBean

GlobalConversationMBean

ConversationMBean

EnablerSessionMBean

TradingPartnerSessionMBean

CollaboratorMBean

TradingPartnerSessionMBean

MessageMBean

MessageMBean


 

MBean サーバの実装

MBean をアプリケーションで使用する場合、WebLogic Integration では、WebLogic Server インスタンスの開始時に作成された MBean Server インスタンスに MBean が登録されます。WebLogic Server MBean Server の詳細については、次の URL の『WebLogic Server JMX Services プログラマーズ ガイド』を参照してください。

http://edocs.beasys.co.jp/e-docs/wls/docs70/jms/index.html

 


管理アプリケーションのプログラミング

JMX API を使用して WebLogic Integration MBeans にアクセスするには、Java アプリケーションで以下の手順を実行する必要があります。

情報を検索する場合は、クラスタ内の全ノードを通る app が必要です。ノードはそれぞれ、スタンドアロン ノードとして機能しなければなりません。上記の手順を繰り返してください。

注意: 管理アプリケーションをマルチノード クラスタにデプロイする場合は、全てのノードを個別に通るロジックを構築する必要があります。管理アプリケーションでは、マシンがそれぞれスタンドアロン ノードとして機能します。

手順 1 : 必要なパッケージをインポートする

MBean を操作するには、必要なパッケージを管理アプリケーションにインポートする必要があります。最低でも、次の表に示すパッケージをインポートしなければなりません。

表2-3 インポートが必要なパッケージ

ラベル

説明

javax.management.*;

Sun Microsystems, Inc. 発行のJava Management Extensions 仕様で必須であるため、JMX MBean で必要。

javax.naming.*;

JNDI ルックアップを使用して MBean サーバ オブジェクトを検索するために必要。以下のパッケージのみ必要。

com.bea.b2b.management.*

すべての管理アプリケーションで必要。

weblogic.management.*

すべての管理実装で必要。MBeanServer および MBeanHome を取得する。


 

次のリストのコードでは、管理アプリケーションで必要なパッケージをインポートします。

コード リスト 2-1 管理アプリケーション用のパッケージのインポート

import javax.management.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import com.bea.b2b.management.*;
import weblogic.management.*;

手順 2 : MBeanServer オブジェクトへの参照を取得する

WebLogic Integration では、WebLogic Server のインスタンスの起動時にインスタンス化された MBeanServer を使用します。MBeanServer への参照を取得するには、そのサーバの MBeanHome が必要です。MBeanServer の MBeanHome は、次に示すサーバの JNDI ツリーから取得できます。

weblogic.management.MBeanHome.JNDI_NAME.serverName

管理サーバは、JNDI ツリー上のドメイン内にある各サーバに対して MBeanHome をパブリッシュします。管理 MBeanHome は、次に示す管理サーバの JNDI ツリーから取得できます。

weblogic.manageme nt.MBeanHome.ADMIN_JNDI_NAME

すべての MBeanHome の基盤となる MBeanServer は、その MBeanHomegetMBeanServer() メソッドを呼び出すことによって取得できます。

次のコードは、管理サーバ MBeanHome 用の JNDI ルックアップの例です。

コード リスト 2-2 MBeanServer オブジェクトへの参照の取得

import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.AuthenticationException;
import javax.naming.CommunicationException;
import weblogic.jndi.Environment; ...
import weblogic.management.MBeanHome;
...
MbeanHome home = null;
try {
Environment env = new Environment();
ctx = env.getInitialContext();
home = (MBeanHome) ctx.lookup(MBeanHome.ADMIN_JNDI_NAME);
RemoteMBeanServer server = home.getMBeanServer();
}
catch (AuthenticationException e) {
... // エラー処理
} catch (CommunicationException e) {
... // エラー処理
} catch (NamingException e) {
... // エラー処理
}

手順 3 : ObjectName オブジェクトを作成する

MBeans は、MBeanServer 内では一意のオブジェクト名で識別されます。ObjectName クラスがオブジェクト名を表します。

WebLogic Integration リリース 2.1、7.0 およびWebLogic Collaborate 2.0 では、MBean Server に登録されるのは WLCMBean だけです。他の MBean はすべて、WLCMBean から検索されます。WLCMBean の属性は、名前、タイプ、およびドメインの 3 つです。これらの属性は、MBean の JMX Object Name に反映されます。Object Name は、所定の MBean に対する、すべてのドメインでユニークな識別子で、以下のような構造を持っています。

domain name:Name=name,Type=type[,attr=value]... 

name の値は、指定したドメインとタイプにおいてユニークである必要があります。たとえば、

mydomain:Name=WLC,Type=WLC
ObjectName objectName = new ObjectName("WLC", "WLC", "mydomain");

MBean の場合、オブジェクト名式が使用されているクエリ操作にオブジェクト名を使用することもできます。MBeanServer では、登録されている MBean のオブジェクト名でパターン マッチングが行われます。マッチング構文は、Sun Microsystems, Inc. 発行の Java Management Extensions 仕様で示されているファイル グロービングに準拠しています。

手順 4 : MBean サーバを照会する

オブジェクト名式を構築したら、その式に対応する ObjectName オブジェクトを渡して MBeanServer を照会します。登録された MBean のセット(オブジェクト名式を満たす名前)を検索するには、次のメソッドを使用します。

javax.management.MBeanServer.queryNames()

クエリ条件を満たすオブジェクトのセットが返されます。これらは、MBean を表す ObjectName オブジェクトであり、MBean 自体への直接の参照ではないことに注意してください。

手順 5 : MBean の属性を読み取る

他の MBean にアクセスするには、前のステップで取得した ObjectName インスタンスを使用します。ただし、ObjectName には、1 つまたは複数の MBean タイプの属性が必要です。MBean の属性を読み取るには、次のメソッドを使用します。パラメータとして ObjectName オブジェクトを渡します。

javax.management.MBeanServer.getAttribute()

最初の MBean の ObjectName を渡して getAttribute メソッドを呼び出した後は、他の MBean インスタンスへの直接の参照を取得できます。

次のコードでは、WLCMBean に関連付けられた属性のセットを検索しています。

コード リスト 2-3 会話属性の検索

MBeanHome home = Admin.getMBeanHome();
server = home.getMBeanServer();
ObjectName objectName = new ObjectName("WLC", "WLC", "mydomain");
beans = server.queryNames(objectName, null);
Iterator it = beans.iterator();
while (it != null && it.hasNext())
{
// 1 つのみ
obj = (ObjectName)it.next();
break;
}
if (obj != null)
{
Date startTime = (Date)server.getAttribute(obj, "ActiveSince");
Date lastTime = (Date)server.getAttribute(obj, "LastMessageSentTime");
ConversationMBean[ ] convs = (Conversation[ ]) server.getAttribute(obj,
"ActiveConversations");
if (convs != null)
{
for (int ii=0; ii< convs.length; ii++)
{
String protocol = convs[ii].getBusinessProtocolName();
}
}
}
...

上記のコードで示されているすべての属性は、getAttribute を呼び出すことによって検索できます。WLCMBean の shutDown などのメソッドを呼び出すには、MBeanServer を呼び出します。詳細については、次の URL の JMX 仕様を参照してください。

http://java.sun.com

手順 6 : MBean を検索する

論理的に関連する MBean には、相互に参照を検索するためのアクセサ メソッドが用意されています。これらのメソッドは強く型付けされており、正確な MBean タイプが返されます。たとえば、WLCMBean.getActiveDeliveryChannels() メソッドでは、システム内のすべてのアクティブな配信チャネルを表す DeliveryChannelMBean タイプの配列が返されます。同様に、TradingPartnerSessionMBean.getActiveConversations() メソッドでは、セッション内のすべてのアクティブな会話を表す ConversationMBean タイプの配列が返されます。

これらのメソッドの詳細については、『BEA WebLogic Integration Javadoc』を参照してください。

手順 7 : 例外を処理する

B2B Integration 管理アプリケーションの実行時にエラーが発生すると、com.bea.b2b.management.ManagementException が送出されます。この例外は、管理アプリケーションによって捕捉されて適切に処理されます。以下に例を示します。

コード リスト 2-4 管理アプリケーションによる ManagementExceptions の処理

catch (ManagementException me){
String msg = "Exception in Management Application: " + me;
debug(msg);
throw new Exception(msg);

 

ページの先頭 前 次