3.16.7 アプリケーションサーバ独自のConnector 1.5 API仕様
ここでは,Connector 1.5で仕様のインタフェースに対して,アプリケーションサーバ独自で規定した仕様について説明します。
- 〈この項の構成〉
(1) javax.resource.spi.endpoint.MessageEndpointFactoryインタフェース
アプリケーションサーバでは,二つのメソッドの仕様を規定しています。
(a) createEndpointメソッド
- 形式
public MessageEndpoint createEndpoint(XAResource xaResource) throws UnavailableException
- アプリケーションサーバ独自の仕様
-
-
EJBを含むJ2EEアプリケーションの停止処理を開始したあとでこのメソッドが呼び出された場合は,javax.resource.spi.UnavailableExceptionがスローされます。
-
このメソッドの中でMessage-driven Beanのインスタンス取得処理が実行されます。Message-driven Beanのインスタンスプールの上限に達していた場合は,Message-driven Beanのインスタンスを取得できるか,J2EEアプリケーションが停止するまで,メソッドがリターンされません。
-
- 例外
-
アプリケーションサーバで規定した例外の動作について示します。
例外
例外が発生するタイミング
javax.resource.spi.UnavailableException
-
EJBを含むJ2EEアプリケーションの停止処理を開始したあとでこのメソッドが呼び出した場合
-
Message-driven Beanのインスタンスの取得に失敗した場合
-
(2) javax.resource.spi.endpoint.MessageEndpointインタフェース
アプリケーションサーバでは,三つのメソッドの仕様を規定しています。
(a) beforeDeliveryメソッド
- 形式
public void beforeDelivery(Method method) throws NoSuchMethodException, ResourceException
- アプリケーションサーバ独自の仕様
-
例外について規定しています。
- 例外
-
アプリケーションサーバで規定した例外の動作について示します。
例外
例外が発生するタイミング
java.lang.IllegalStateException
-
EJBを含むJ2EEアプリケーションの停止処理を開始したあとでメッセージリスナのメソッドを呼び出した場合
-
release()メソッドがすでに呼び出されている場合
javax.resource.spi.IllegalStateException
-
不正な順序で呼び出した場合(beforeDeliveryメソッド呼び出し後に再度beforeDeliveryメソッドを呼び出した場合。またはメッセージリスナのメソッドの呼び出し後にbeforeDeliveryメソッドを呼び出した場合)
javax.resource.spi.UnavailableException
-
予期しない例外が発生した場合
-
(b) afterDeliveryメソッド
- 形式
public void afterDelivery() throws ResourceException
- アプリケーションサーバ独自の仕様
-
例外について規定しています。
- 例外
-
アプリケーションサーバで規定した例外の動作について示します。
例外
例外が発生するタイミング
java.lang.IllegalStateException
-
EJBを含むJ2EEアプリケーションの停止処理を開始したあとでメッセージリスナのメソッドを呼び出した場合
-
release()メソッドがすでに呼び出されている場合
javax.resource.spi.IllegalStateException
-
不正な順序で呼び出した場合(Option B※のメッセージリスナのメソッド呼び出し後以外のタイミングでafterDelivery()を呼び出した場合)
javax.resource.spi.UnavailableException
-
予期しない例外が発生した場合
-
(c) releaseメソッド
- 形式
public void release()
- アプリケーションサーバ独自の仕様
-
このメソッドを呼び出すと,エンドポイントに対応づけられたMessage-driven Beanのインスタンスが解放され,インスタンスプールに戻ります。
エンドポイントを使用し終わったら,必ずこのメソッドを呼び出して,Message-driven Beanをインスタンスプールに戻すように実装してください。
- 例外
-
アプリケーションサーバで規定した例外の動作について示します。
例外
例外が発生するタイミング
java.lang.IllegalStateException
-
EJBを含むJ2EEアプリケーションの停止処理を開始したあとでメッセージリスナのメソッドを呼び出した場合
-
release()メソッドがすでに呼び出されている場合
-
(3) メッセージリスナのメソッド
インタフェースはメッセージリスナのインタフェースで定義されます。ここでは,アプリケーションサーバで規定した例外の動作について示します。
例外 |
例外が発生するタイミング |
---|---|
メッセージリスナのインタフェースに指定された例外 |
|
javax.ejb.EJBException |
|
java.lang.IllegalStateException |
|