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

BPM クライアント アプリケーション プログラミング

 前 次 目次 索引 PDFで表示  

プロセス エンジンからの切断

この章では、WebLogic Integration のプロセス エンジンからの切断方法について説明します。この章の内容は以下のとおりです。

 


セッション EJB 参照の削除

すべてのアプリケーション タスクを完了後、セッション EJB 参照を削除して、システム スペースを他の EJB が使用できるようにすることが可能です。

API セッション EJB のホーム インタフェースとリモート インタフェースの表に定義されているセッション EJB のホーム インタフェースとリモート インタフェースは、それぞれインタフェース javax.ejb.EJBHomejavax.ejb.EJBObject からメソッドを継承します。

EJB 参照の削除に使用できる継承済みメソッドを次の表で定義します。

EJB インタフェース

メソッド

機能

ホーム

public void remove(javax.ejb.Handle handle
) throws java.rmi.RemoteException,
javax.ejb.RemoveException

指定のハンドルと関連付けられている EJB オブジェクトを削除する。

public javax.ejb.HomeHandle getHomeHandle() throws java.rmi.RemoteException

ホーム インタフェース オブジェクトのハンドルを取得する。

リモート

public void remove() throws java.rmi.RemoteException,
javax.ebj.RemoveException

EJB オブジェクトを削除する。

public javax.ejb.EJBHome getEJBHome() throws java.rmi.RemoteException

EJB ホーム インタフェースを取得する。

public javax.ejb.Handle getHandle() throws java.rmi.RemoteException

EJB オブジェクトのハンドルを取得する。

この値は、この表で前述のホーム インタフェース remove() メソッド内の handle パラメータとして使用可能。


 

たとえば、JSP ワークリスト サンプルから抜粋された次のコードは、セッション変数を含む Worklist EJB 参照を削除する方法を示します。このコード例では、worklistWorklist EJB への EJBObject 参照を表します。session 変数は、worklist リモート オブジェクト参照を事前に格納した HttpSession オブジェクトです。

Worklist worklist = null;
worklist = (Worklist)session.getValue("worklist");

if (worklist != null) {
try {
worklist.remove();
} catch (Exception e) {
}

worklist = null;
session.removeValue("worklist");
}

ホーム インタフェースとリモート インタフェースによって継承されるメソッドの詳細については、Javadoc の javax.ejb.EJBHome および javax.ejb.EJBObject をそれぞれ参照してください。

 


他のリソースの解放

セッション EJB 参照の削除に加えて、以下の節で説明するタスクを実行する必要があります。

JMS コネクタの停止および終了

一般に、JMS プロバイダはコネクタの作成時に多量のリソースを割り当てます。コネクタが使用されなくなった後に、コネクタを終了し、それに関連付けられているリソースを解放してください。コネクタは、次の javax.jms.Connection メソッドを使用して終了できます。

public void close(
) throws javax.jms.JMSException

コネクタを終了して JMS から切断する方法を次のコード例に示します。

try {
tcon.close();
} catch (Exception e) {
ExceptionHandler.reportException(e, this);
}
tcon = null;
tsession = null;
tsubscriber = null;
}

コネクタが終了した後、アプリケーションにより、コネクタ、セッション、およびトピック サブスクライバの変数が null に設定され、これらのオブジェクトで使用されていたリソースをガベージ コレクタが解放できます。

コンテキストの終了

JNDI コンテキスト リソースを(ガベージ コレクタによって自動的に解放されるのを待つのではなく)終了するには、次の javax.naming.Context メソッドを使用します。

public void close() throws javax.naming.NamingException

たとえば、次のコードでは JNDI コンテキスト リソースが終了します。

try {
ctx.close();
{
catch(Exception exp)
{
}
}

詳細については、Javadoc の javax.naming.Context を参照してください。

 

ページの先頭 前 次