Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)
アプリケーションサーバでは,二つのメソッドの仕様を規定しています。
- 形式
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のインスタンスの取得に失敗した場合
|
- 形式
public boolean isDeliveryTransacted(Method method) throws NoSuchMethodException
- アプリケーションサーバ独自の仕様
- J2EEサーバ用ユーザプロパティファイルのejbserver.distributedtx.XATransaction.enabledプロパティにtrueを指定すると,引数で渡されたメソッドのトランザクション属性にCMTのRequiredが指定されている場合に,trueを返却されます。
アプリケーションサーバでは,三つのメソッドの仕様を規定しています。
- 形式
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 |
|
- 形式
public void afterDelivery() throws ResourceException
- アプリケーションサーバ独自の仕様
- 例外について規定しています。
- 例外
- アプリケーションサーバで規定した例外の動作について示します。
例外 |
例外が発生するタイミング |
java.lang.IllegalStateException |
- EJBを含むJ2EEアプリケーションの停止処理を開始したあとでメッセージリスナのメソッドを呼び出した場合
- release()メソッドがすでに呼び出されている場合
|
javax.resource.spi.IllegalStateException |
- 不正な順序で呼び出した場合(Option B※のメッセージリスナのメソッド呼び出し後以外のタイミングでafterDelivery()を呼び出した場合)
|
javax.resource.spi.UnavailableException |
|
注※ Connector 1.5仕様に記述されているメッセージ配送オプションです。
- 形式
public void release()
- アプリケーションサーバ独自の仕様
- このメソッドを呼び出すと,エンドポイントに対応づけられたMessage-driven Beanのインスタンスが解放され,インスタンスプールに戻ります。
- エンドポイントを使用し終わったら,必ずこのメソッドを呼び出して,Message-driven Beanをインスタンスプールに戻すように実装してください。
- 例外
- アプリケーションサーバで規定した例外の動作について示します。
例外 |
例外が発生するタイミング |
java.lang.IllegalStateException |
- EJBを含むJ2EEアプリケーションの停止処理を開始したあとでメッセージリスナのメソッドを呼び出した場合
- release()メソッドがすでに呼び出されている場合
|
インタフェースはメッセージリスナのインタフェースで定義されます。ここでは,アプリケーションサーバで規定した例外の動作について示します。
例外 |
例外が発生するタイミング |
メッセージリスナのインタフェースに指定された例外 |
- 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) 2012, 2015, Hitachi, Ltd.