Cosminexus 機能解説
9.13.6 Application Server独自のConnector 1.5 API仕様
(1) javax.resource.spi.endpoint.MessageEndpointFactoryインタフェース
Cosminexusでは,二つのメソッドの仕様を規定しています。
(a) createEndpointメソッド
- 形式
public MessageEndpoint createEndpoint(XAResource xaResource) throws UnavailableException
- Application Server独自の仕様
- 引数xaResourceにXAResourceインスタンスを指定しても,無視されます。
- EJBを含むJ2EEアプリケーションの停止処理を開始したあとでこのメソッドが呼び出された場合は,javax.resource.spi.UnavailableExceptionがスローされます。
- このメソッドの中でMessage-driven Beanのインタスタンス取得処理が実行されます。Message-driven Beanのインスタンスプールの上限に達していた場合は,Message-driven Beanのインスタンスを取得できるか,J2EEアプリケーションが停止するまで,メソッドがリターンされません。
- 例外
- Application Serverで規定した例外の動作について示します。
例外 |
例外が発生するタイミング |
javax.resource.spi.UnavailableException |
- EJBを含むJ2EEアプリケーションの停止処理を開始したあとでこのメソッドが呼び出した場合
- Message-driven Beanのインスタンスの取得に失敗した場合
|
(b) isDeliveryTransactedメソッド
- 形式
public boolean isDeliveryTransacted(Method method) throws NoSuchMethodException
- Application Server独自の仕様
- Application ServerではConnector 1.5仕様のリソースアダプタに対してCMTをサポートしていません。このため,常にfalseが返却されます。
(2) javax.resource.spi.endpoint.MessageEndpointインタフェース
Application Serverでは,三つのメソッドの仕様を規定しています。
(a) beforeDeliveryメソッド
- 形式
public void beforeDelivery(Method method) throws NoSuchMethodException, ResourceException
- Application Server独自の仕様
- 例外について規定しています。
- 例外
- Application Serverで規定した例外の動作について示します。
例外 |
例外が発生するタイミング |
java.lang.IllegalStateException |
- EJBを含むJ2EEアプリケーションの停止処理を開始したあとでメッセージリスナのメソッドを呼び出した場合
- release()メソッドがすでに呼び出されている場合
|
javax.resource.spi.IllegalStateException |
- 不正な順序で呼び出した場合(beforeDeliveryメソッド呼び出し後に再度beforeDeliveryメソッドを呼び出した場合。またはメッセージリスナのメソッドの呼び出し後にbeforeDeliveryメソッドを呼び出した場合)
|
javax.resource.spi.UnavailableException |
|
(b) afterDeliveryメソッド
- 形式
public void afterDelivery() throws ResourceException
- Application Server独自の仕様
- 例外について規定しています。
- 例外
- Application Serverで規定した例外の動作について示します。
例外 |
例外が発生するタイミング |
java.lang.IllegalStateException |
- EJBを含むJ2EEアプリケーションの停止処理を開始したあとでメッセージリスナのメソッドを呼び出した場合
- release()メソッドがすでに呼び出されている場合
|
javax.resource.spi.IllegalStateException |
- 不正な順序で呼び出した場合(Option B※のメッセージリスナのメソッド呼び出し後以外のタイミングでafterDelivery()を呼び出した場合)
|
javax.resource.spi.UnavailableException |
|
- 注※
- Connector 1.5仕様に記述されているメッセージ配送オプションです。
(c) releaseメソッド
- 形式
public void release()
- Application Server独自の仕様
- このメソッドを呼び出すと,エンドポイントに対応づけられたMessage-driven Beanのインスタンスが解放され,インスタンスプールに戻ります。
- エンドポイントを使用し終わったら,必ずこのメソッドを呼び出して,Message-driven Beanをインスタンスプールに戻すように実装してください。
- 例外
- Application Serverで規定した例外の動作について示します。
例外 |
例外が発生するタイミング |
java.lang.IllegalStateException |
- EJBを含むJ2EEアプリケーションの停止処理を開始したあとでメッセージリスナのメソッドを呼び出した場合
- release()メソッドがすでに呼び出されている場合
|
(3) メッセージリスナのメソッド
インタフェースはメッセージリスナのインタフェースで定義されます。ここでは,Application Serverで規定した例外の動作について示します。
例外 |
例外が発生するタイミング |
メッセージリスナのインタフェースに指定された例外 |
- Message-driven Beanの実行時(システム例外が発生した時以外)
|
javax.ejb.EJBException |
- Message-driven Beanの実行時(システム例外が発生した時)
|
java.lang.IllegalStateException |
- EJBを含むJ2EEアプリケーションの停止処理を開始したあとでメッセージリスナのメソッドを呼び出した場合
- release()メソッドがすでに呼び出されている場合
- 不正な順序で呼び出した場合(Option B※のメッセージ配送で,メッセージリスナのメソッドを呼び出したあと,続けてメッセージリスナのメソッドを呼び出した場合)
|
- 注※
- Connector 1.5仕様に記述されているメッセージ配送オプションです。
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.