BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > WebLogic Integration > B2B トピック > B2B Integration 管理アプリケーション プログラミング ガイド > 管理アプリケーションの開発 |
B2B Integration 管理アプリケーション プログラミング ガイド
|
管理アプリケーションの開発
以下の節では、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 について説明します。
注意: 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 への変更点をまとめます。
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-1 管理アプリケーション用のパッケージのインポート 手順 2 : MBeanServer オブジェクトへの参照を取得する WebLogic Integration では、WebLogic Server のインスタンスの起動時にインスタンス化された MBeanServer を使用します。MBeanServer への参照を取得するには、そのサーバの MBeanHome が必要です。MBeanServer の MBeanHome は、次に示すサーバの JNDI ツリーから取得できます。 管理サーバは、JNDI ツリー上のドメイン内にある各サーバに対して MBeanHome をパブリッシュします。管理 MBeanHome は、次に示す管理サーバの JNDI ツリーから取得できます。 すべての MBeanHome の基盤となる MBeanServer は、その MBeanHome の getMBeanServer() メソッドを呼び出すことによって取得できます。 次のコードは、管理サーバ MBeanHome 用の JNDI ルックアップの例です。 コード リスト 2-2 MBeanServer オブジェクトへの参照の取得 手順 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 に対する、すべてのドメインでユニークな識別子で、以下のような構造を持っています。 name の値は、指定したドメインとタイプにおいてユニークである必要があります。たとえば、 MBean の場合、オブジェクト名式が使用されているクエリ操作にオブジェクト名を使用することもできます。MBeanServer では、登録されている MBean のオブジェクト名でパターン マッチングが行われます。マッチング構文は、Sun Microsystems, Inc. 発行の Java Management Extensions 仕様で示されているファイル グロービングに準拠しています。
import javax.management.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import com.bea.b2b.management.*;
import weblogic.management.*;weblogic.management.MBeanHome.JNDI_NAME.serverName
weblogic.manageme nt.MBeanHome.ADMIN_JNDI_NAME
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) {
... // エラー処理
}domain name:Name=name,Type=type[,attr=value]...
mydomain:Name=WLC,Type=WLC
ObjectName objectName = new ObjectName("WLC", "WLC", "mydomain");
手順 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 仕様を参照してください。
手順 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);
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |