A EJB メタデータ・アノテーション・リファレンス
この付録の内容は次のとおりです。
EJB 3.xアノテーションの概要
WebLogic Server EJB 3.2プログラミング・モデルでは、Java EE 7メタデータ・アノテーション機能を使用して、アノテーション付きEJB 3.2 Beanファイルを作成し、標準Javaコンパイラでクラスをコンパイルします。生成されたクラスは、デプロイメント用のターゲット・モジュールにパッケージ化できます。実行時に、WebLogic Serverはアノテーションを解析して、必要な動作のアスペクトをBeanファイルに適用します。
以降の節では、EJB Beanファイルで指定できるメタデータ・アノテーションのリファレンス情報を提供します。一部のアノテーションはjavax.ejb
パッケージに含まれています。つまり、EJBに固有のアノテーションです。それ以外のアノテーションは、より一般的で他のJava EE 7コンポーネントでも使用するアノテーションです。したがって、javax.annotation
などの一般的なパッケージに含まれています。
ノート:
EJB実装で引き続きデプロイメント記述子を使用する場合は、『Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発』のEJBデプロイメント記述子に関する項を参照してください。
ステートレスBean、ステートフルBean、メッセージドリブンBeanのアノテーション
この節では、以下のアノテーションのリファレンス情報を提供します。
javax.ejb.AccessTimeout
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: メソッド、型
タイムアウトするまで同時アクセスがブロックされる時間を任意の時間単位で指定します。
このアノテーションは、コンテナ管理による同時実行性を使用する、ステートフル・セッションBeanまたはシングルトン・セッションBeanに適用できます。
デフォルトでは、クライアントはステートフル・セッション・オブジェクトに対して同時呼出しを実行できますが、このような同時リクエストはコンテナでシリアライズする必要があります。AccessTimeout
アノテーションは、ステートフル・セッションBeanインスタンスがすでに別のリクエストを処理している場合に、そのBeanへのリクエストがブロックされる時間を指定するために使用します。AccessTimeout
アノテーションの値に0を指定すると、ステートフル・セッションBeanへの同時クライアント・リクエストを禁止するようにコンテナに指示されます。
AccessTimeout
アノテーションは、ビジネス・メソッドまたはBeanクラスに指定できます。クラスに指定した場合は、そのクラスのすべてのビジネス・メソッドに適用されます。クラスおよびそのクラスのビジネス・メソッドの両方に指定した場合、そのメソッドではメソッド・レベルのアノテーションが優先されます。
シングルトン・セッションBeanの場合、アクセス・タイムアウトは同時実行性のロックを使用できるメソッドのみに適用されます。AccessTimeout
アノテーションは、シングルトン・セッションBeanクラスまたはそのクラスの該当するメソッドに指定できます。AccessTimeout
をクラスおよびクラスのビジネス・メソッドの両方で指定した場合、そのメソッドではメソッド・レベルのアノテーションが優先されます。
詳細は、「EJBタイマー・サービスのプログラミング(省略可能)」を参照してください
属性
次の表で属性について簡単に説明します。
表A-1 javax.ejb.AccessTimeoutアノテーションの属性
名前 | 説明 | データ型 | 必須? |
---|---|---|---|
value |
タイムアウトするまで同時アクセスがブロックされる時間を任意の時間単位で指定します。
-1よりも小さい値は無効です。 |
Long |
いいえ |
unit |
指定した値に使用する単位を指定します。 この属性のデフォルト値は |
TimeUnit |
いいえ |
javax.ejb.ActivationConfigProperty
以降の節では、このアノテーションについて詳しく説明します。
ノート:
Enterprise JavaBean仕様に基づき、javax.ejb.ActivationConfigProperty
はMDBでのみ使用されます。このアノテーションは、セッションBeanおよびエンティティBeanでは使用されません。
説明
ターゲット: すべて
操作環境でメッセージドリブンBeanを構成するために使用するプロパティを指定します。確認応答モード、メッセージ・セレクタ、想定される宛先やエンドポイントのタイプなどの情報を含めることができます。ActivationConfigProperty
はメッセージドリブンBeanでのみ使用され、セッションBeanおよびエンティティBeanでは使用されません。
このアノテーションは、@javax.ejb.MessageDriven
アノテーションのactivationConfig
属性の値としてのみ使用します。このアノテーションの詳細は、Oracle WebLogic ServerメッセージドリブンBeanの開発のEJB 3.2準拠MDBの使用とMDB向けデプロイメント要素およびアノテーションを参照してください。
javax.ejb.AfterBegin
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: メソッド
after beginセッション同期コールバックを受信するステートフル・セッションBeanメソッドを指定します。
after beginコールバックは、ステートフル・セッションBeanインスタンスに対して、新しいトランザクションが開始されたこと、およびそのインスタンスに対する以降のビジネス・メソッドがそのトランザクションのコンテキスト内で呼び出されることを通知します。
このメソッドは適切なトランザクション・コンテキスト内で実行されます。Beanで使用できるAfterBegin
メソッドは1つまでです。このメソッドのシグネチャは次のルールに従う必要があります。
-
final
やstatic
として宣言することはできません。 -
任意のアクセス・タイプを指定できます。
-
戻り型は
void
でなければなりません。 -
引数を取ることはできません。
このメソッドはトランザクション・コンテキストを使用せずに実行されます。
ステートフル・セッションBeanクラスでは、SessionSynchronization
インタフェースまたはセッション同期アノテーションのいずれかを使用できますが、両方使用することはできません。
javax.ejb.AfterCompletion
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: メソッド
after completionセッション同期コールバックを受信するステートフル・セッションBeanメソッドを指定します。
after completionコールバックは、ステートフル・セッションBeanインスタンスに対して、トランザクションのコミット・プロトコルが完了したことを通知します。完了ステータスがtrueの場合は、トランザクションがコミットされたことを示します。ステータスがfalseの場合は、ロールバックが行われたことを示します。
Beanで使用できるAfterCompletion
メソッドは1つまでです。このメソッドのシグネチャは次のルールに従う必要があります。
-
final
やstatic
として宣言することはできません。 -
任意のアクセス・タイプを指定できます。
-
戻り型は
void
でなければなりません。 -
boolean
型の引数を1つ取る必要があります。
このメソッドはトランザクション・コンテキストを使用せずに実行されます。
ステートフル・セッションBeanクラスでは、SessionSynchronization
インタフェースまたはセッション同期アノテーションのいずれかを使用できますが、両方使用することはできません。
javax.ejb.ApplicationException
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: クラス
その例外がアプリケーション例外で、クライアント・アプリケーションに直接(ラップせずに)報告することを指定します。
このアノテーションは、検査済みの例外と未検査の例外の両方に適用できます。
javax.ejb.Asynchronous
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: メソッド、型
セッションBeanメソッドを非同期メソッドとして示す場合や、セッションBeanクラスのすべてのビジネス・メソッドを非同期として指定する場合に使用します。これらのメソッドでは、そのメソッドがセッションBeanインスタンスで呼び出される前にエンタープライズBeanコンテナによってクライアントに制御が戻されます。通常、非同期メソッドは、メソッドの呼出し結果が即座に必要でない場合に、アプリケーションのスループット向上やレスポンス時間短縮の方法として、長時間実行される処理、プロセッサ負荷の高いタスク、バックグラウンド・タスクに対して使用します。
クライアントで非同期メソッドを呼び出した場合は、エンタープライズBeanコンテナによってクライアントにただちに制御が戻されます。そのため、クライアントではメソッドの呼出しが完了するまでの間、他のタスクを実行できます。メソッドが結果を返す場合、その結果は戻り型voidまたはjava.util.concurrent.Future<V>
インタフェースの実装になります。V
は結果値の型です。Future<V>
インタフェースには、クライアントで使用するメソッドが定義されており、これらのメソッドを使用して、計算の完了状態のチェック、呼出し完了までの待機、最終結果の取得、呼出しの取消しを実行できます。
非同期メソッド呼出しのセマンティクスは、インタフェースなしのローカル・ビジネス・クライアント・ビューおよびリモート・クライアント・ビューのみに適用されます。EJB 2.xローカル、EJB 2.xリモート、およびWebサービス・クライアント・ビューを介して公開されるメソッドは、非同期として指定しないでください。
javax.ejb.BeforeCompletion
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: メソッド
before completionセッション同期コールバックを受信するステートフル・セッションBeanメソッドを指定します。
before completionコールバックは、ステートフル・セッションBeanインスタンスに対して、トランザクションがコミットされようとしていることを通知します。
このメソッドは適切なトランザクション・コンテキスト内で実行されます。
ノート:
インスタンスは、セッション・コンテキストでsetRollbackOnly()
メソッドを呼び出すか、例外をスローすることにより、コンテナでトランザクションをロールバックさせることができます。Beanで使用できるBeforeCompletion
メソッドは1つまでです。
このメソッドのシグネチャは次のルールに従う必要があります。
-
final
やstatic
として宣言することはできません。 -
任意のアクセス・タイプを指定できます。
-
戻り型は
void
でなければなりません。 -
引数を取ることはできません。
このメソッドはトランザクション・コンテキストを使用せずに実行されます。
ステートフル・セッションBeanクラスでは、SessionSynchronization
インタフェースまたはセッション同期アノテーションのいずれかを使用できますが、両方使用することはできません。
javax.ejb.ConcurrencyManagement
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: 型
シングルトン・セッションBeanの同時実行性管理の種類を宣言します。
このアノテーションが指定されていない場合、そのシングルトンBeanではコンテナ管理の同時実行性を使用するものと見なされます。
このアノテーションはステートフル・セッションBeanに適用できますが、適用しても、そのようなBeanの同時実行性管理のセマンティクスには効果がありません。Bean管理による同時実行性(BEAN)に対する同時実行性管理の種類は、ステートフル・セッションBeanには適用されません。
javax.ejb.DependsOn
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: 型
初期化時のシングルトン・コンポーネント間の依存関係を指定するために使用します。
シングルトンのPostConstruct
メソッドが呼び出される前に、そのシングルトンとDependsOn
関係にあるすべてのシングルトンBeanが初期化されることをコンテナが保証します。
アプリケーションの停止時に、このシングルトンとDependsOn
関係にあるすべてのシングルトンBeanがシングルトンのPreDestroy
メソッド内でまだ使用できることをコンテナが保証します。
javax.ejb.EJB
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: クラス、メソッド、フィールド
EJBビジネス・インタフェースまはたホーム・インタフェースへの依存性(参照)を指定します。
他のEJBへの依存関係を指定するには、Beanのインスタンス変数に@EJB
アノテーションを付けます。WebLogic Serverでは、アノテーションを付けた変数が、依存先のEJBへの参照に基づいて自動的に初期化されます。これを依存関係インジェクションと呼びます。この初期化は、BeanのEJBContext
が設定された後、Beanのビジネス・メソッドが呼び出される前に発生します。
このアノテーションをBeanクラス内のセッター・メソッドに付けることもできます。その場合、WebLogic Serverはセッター・メソッド自体を使用して依存関係インジェクションを実行します。この方法でインスタンス変数に依存性を注入することもできます。
このアノテーションをクラスに適用すると、Beanが実行時にルックアップするEJBが宣言されます。
変数またはセッター・メソッドへの注入を使用する場合、WebLogic Serverでは、アノテーションを付けたインスタンス変数またはセッター・メソッドのパラメータの名前またはデータ型に基づいて参照先のEJBの名前が判別されます。少しでも不明確な場合は、@EJB
アノテーションのbeanName
属性またはmappedName
属性を使用して、依存先のEJBの名前を明示的に指定する必要があります。
属性
次の表で属性について簡単に説明します。
表A-6 javax.ejb.EJBアノテーションの属性
名前 | 説明 | データ型 | 必須? |
---|---|---|---|
name |
環境内で参照先EJBのルックアップに使用する名前を指定します。 この名前は、クラスおよびそのスーパークラスからなるデプロイメント・ユニット内でユニークでなければなりません。 |
String |
いいえ |
beanInterface |
参照先EJBのインタフェース・タイプ(ビジネス・インタフェースまたはホーム・インタフェース)を指定します。 この属性のデフォルト値は |
Class |
いいえ |
beanName |
参照先EJBの名前を指定します。 この属性は、参照先EJBの EJB JARファイル内の複数のセッションBeanが同じインタフェースを実装している場合は、各Beanの名前をユニークにする必要があるため、この属性が非常に有用になります。 |
String |
いいえ |
mappedName |
参照先EJBのグローバルJNDI名を指定します。 たとえば:
この場合は、WebLogic Server JNDIツリー内にデプロイされている ノート: マッピングされた名前を使用するEJBは、移行できなくなる可能性があります。 |
String |
いいえ |
description |
EJB参照の説明。 |
String |
いいえ |
javax.ejb.Init
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: メソッド
Beanクラス内のメソッドと、適合するEJB 2.1 EJBHome
またはEJBLocalHome
クライアント・ビューのcreateMETHOD
メソッドとの対応関係を指定します。
このアノテーションは、ステートフル・セッションBean (クラス・レベルの@javax.ejb.Stateful
アノテーションを付けたBean)でのみ使用します。
@javax.ejb.Init
アノテーションを付けたメソッドの戻り値の型はvoid
でなければなりません。また、パラメータの型は、参照するcreateMETHOD
メソッドのパラメータの型とまったく同じである必要があります。
@Init
アノテーションが必要になるのは、Remote-Home
またはLocalHome
インタフェースを提供するステートフル・セッションBeanのみです。少しでも不明確な場合は、value
属性を使用して、Home
またはLocalHome
インタフェースの適合するcreate
メソッドの名前を指定する必要があります。
javax.ejb.Local
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: クラス
セッションBeanのローカル・インタフェースを指定します。ローカル・インタフェースは、ビジネス・ロジックをローカル・クライアント(EJBと同じアプリケーションで動作しているクライアント)にエクスポーズします。ローカル・クライアントから呼び出せるビジネス・メソッドを定義します。
Beanクラスに複数のインタフェース(ただし以下のインタフェースを除く)が実装されている場合は、このアノテーションを指定する必要があります。
-
java.io.Serializable
-
java.io.Externalizable
-
javax.ejb.*
このアノテーションは、ステートレスまたはステートフル・セッションBeanにのみ適用されます。
javax.ejb.LocalHome
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: クラス
Beanクラスのローカル・ホーム・インタフェースを指定します。
ローカル・ホーム・インタフェースは、ローカル・クライアント(EJBと同じアプリケーションで動作するクライアント)から使用して、Beanのインスタンスを作成、削除、および(エンティティBeanの場合は)検索することができるメソッドを提供します。ローカル・ホーム・インタフェースには、特定のBeanインスタンスに固有ではないビジネス・ロジックであるホーム・メソッドもあります。
この属性は、ステートレスおよびステートフル・セッションBeanにのみ適用されます。
通常、この属性は、EJB 3.x Beanの適合するEJB 2.1コンポーネント・ビューを提供する予定がある場合にのみ指定します。このアノテーションは、EJB 2.1 APIに記述されているBeanクラスにも使用できます。
javax.ejb.Lock
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: 型、メソッド
コンテナ管理による同時実行性を使用するシングルトン・セッションBeanに対して同時実行性のロックを宣言します。
このアノテーションは、BeanクラスまたはそのBeanクラスのビジネス・メソッド、あるいはこの両方に指定できます。このアノテーションをビジネス・メソッドに指定すると、クラス・レベルで指定した値(ある場合)は、オーバーライドされます。
このアノテーションが使用されていない場合、値はLock(WRITE)
であると見なされます。
javax.ejb.MessageDriven
以降の節では、このアノテーションについて詳しく説明します。
属性
次の表で属性について簡単に説明します。
表A-12 javax.ejb.MessageDrivenアノテーションの属性
名前 | 説明 | データ型 | 必須? |
---|---|---|---|
name |
このメッセージドリブンBeanの名前を指定します。 この属性を指定しない場合は、Beanクラスの未修飾名がデフォルト値になります。 |
String |
いいえ |
messageListenerInterface |
Beanクラスのメッセージ・リスナー・インタフェースを指定します。 Beanクラスにメッセージ・リスナー・インタフェースが明示的に実装されていない場合や、Beanクラスに複数のインタフェース(ただし、 この属性のデフォルト値は |
Class |
いいえ |
activationConfig |
操作環境でのメッセージドリブンBeanの構成を指定します。確認応答モード、メッセージ・セレクタ、想定される宛先やエンドポイントのタイプなどの情報を含めることができます。 アクティブ化構成情報(プロパティ名や値)は、 |
ActivationConfigProperty[] |
いいえ |
mappedName |
メッセージドリブンBeanをマッピングする製品固有の名前を指定します。 この属性を使用して、このメッセージドリブンBeanのメッセージ宛先のJNDI名を指定することもできます。たとえば:
このメッセージドリブンBeanは、WebLogic Server JNDIツリー内にデプロイされている ノート: この属性を指定した場合は、そのメッセージドリブンBeanを移行できなくなる可能性があります。 |
String |
いいえ |
description |
メッセージドリブンBeanの説明を指定します。 |
String |
いいえ |
javax.ejb.PostActivate
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: メソッド
EJBコンテナがBeanインスタンスを再アクティブ化した直後に通知を受信するライフサイクル・コールバック・メソッドを指定します。
このアノテーションは、ステートフル・セッションBeanにのみ適用されます。ステートフル・セッションBeanインスタンスがパッシブ化されたときの会話状態はEJBコンテナによって自動的に保持されるため、ほとんどのステートフル・セッションBeanではこのアノテーションを指定する必要はありません。このアノテーション(およびこれと対をなす@PrePassivate
)を使用する必要があるのは、ステートフル・セッションBeanで開いておきたいリソースがあり、そのリソースをBeanインスタンスのパッシブ化の前に閉じ、Beanインスタンスのアクティブ化中に開きなおす必要がある場合のみです。
このアノテーションは、Beanクラス内の1つのメソッドにのみ付けることができます。このアノテーションを複数のメソッドに付けた場合、そのEJBはデプロイされません。
@PostActivate
アノテーションを付けるメソッドは、以下の要件を満たす必要があります。
-
メソッドの戻り値の型が
void
でなければなりません。 -
検査済みの例外を送出してはなりません。
-
public
、protected
、package private
、またはprivate
にすることは可能です。 -
static
にすることはできません。 -
final
にすることはできません。
このアノテーションには、属性はありません。
javax.ejb.PrePassivate
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: メソッド
EJBコンテナがBeanインスタンスをパッシブ化する直前に通知を受信するライフサイクル・コールバック・メソッドを指定します。
このアノテーションは、ステートフル・セッションBeanにのみ適用されます。ステートフル・セッションBeanインスタンスがパッシブ化されたときの会話状態はEJBコンテナによって自動的に保持されるため、ほとんどのステートフル・セッションBeanではこのアノテーションを指定する必要はありません。このアノテーション(およびこれと対をなす@PostActivate
)を使用する必要があるのは、ステートフル・セッションBeanで開いておきたいリソースがあり、そのリソースをBeanインスタンスのパッシブ化の前に閉じ、Beanインスタンスのアクティブ化中に開きなおす必要がある場合のみです。
このアノテーションは、Beanクラス内の1つのメソッドにのみ付けることができます。このアノテーションを複数のメソッドに付けた場合、そのEJBはデプロイされません。
@PrePassivate
アノテーションを付けるメソッドは、以下の要件を満たす必要があります。
-
メソッドの戻り値の型が
void
でなければなりません。 -
検査済みの例外を送出してはなりません。
-
public
、protected
、package private
、またはprivate
にすることは可能です。 -
static
にすることはできません。 -
final
にすることはできません。
このアノテーションには、属性はありません。
javax.ejb.Remote
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: クラス
セッションBeanのリモート・インタフェースを指定します。リモート・インタフェースはビジネス・ロジックをリモート・クライアント(EJBとは別のアプリケーションで動作するクライアント)にエクスポーズします。リモート・クライアントから呼び出せるビジネス・メソッドを定義します。
このアノテーションは、ステートレスまたはステートフル・セッションBeanにのみ適用されます。
javax.ejb.RemoteHome
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: クラス
Beanクラスのリモート・ホーム・インタフェースを指定します。
リモート・ホーム・インタフェースは、リモート・クライアント(EJBとは別のアプリケーションで動作するクライアント)でBeanのインスタンスを作成、削除、および検索するためのメソッドを提供します。
この属性は、ステートレスおよびステートフル・セッションBeanにのみ適用されます。
通常、この属性は、EJB 3.x Beanの適合するEJB 2.1コンポーネント・ビューを提供する予定がある場合にのみ指定します。このアノテーションは、EJB 2.1 APIに記述されているBeanクラスにも使用できます。
javax.ejb.Remove
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: メソッド
@javax.ejb.Remove
アノテーションは、ステートフル・セッションBeanのremoveメソッドを指定するために使用します。
EJBコンテナは、そのメソッドが完了したときに、@javax.annotation.PreDestroy
アノテーションが付いているメソッドがあればそれを呼び出してからステートフル・セッションBeanを破棄します。
javax.ejb.Schedule
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: クラス
タイムアウト・スケジュールで自動作成されるタイマーをCRONと同様の時間表現に基づいてスケジュールします。アノテーションを付けたメソッドは、タイムアウト・コールバック・メソッドとして使用されます。
このアノテーションのすべての要素は、省略可能です。何も指定されていない場合は、毎日午前0時にコールバックが発生し、永続タイマーが作成されます。この時間は、アプリケーションが実行されているコンテナに関連付けられているデフォルト・タイムゾーンに基づきます。
スケジュールの指定は、次に示す7個の要素で構成されています。また、timezone
要素は、スケジュール指定が評価されるコンテキストのデフォルト以外のタイムゾーンを指定する場合に使用します。persistent要素は、非永続タイマーを指定する場合に使用します。info要素は、タイマー・コールバック発生時に取得されると思われる追加情報を指定する場合に使用します。
カレンダベースのスケジュールの要素
カレンダベースのスケジュールを指定する要素は次のとおりです。
-
second
- 1分のうちの秒(1つまたは複数)。許容される値: [0,59]
-
minute
- 1時間のうちの分(1つまたは複数)。許容される値: [0,59]
-
hour
- 1日のうちの時間(1つまたは複数)。許容される値: [0,23]
-
dayOfMonth
- 1か月のうちの日(1つまたは複数)。許容される値:]
-
1,31]
-
-7, -1
-
"Last"
-
{"1st", "2nd", "3rd", "4th", "5th", "Last"} {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}
"Last"は月の最終日を意味します。
-x (xの範囲は[-7, -1])は、月の最終日から数えてx日前を意味します。
週の曜日に適用される"1st"、"2nd"などは、月内でその曜日がそれぞれ出現する日を識別します。
-
-
month
- 1年のうちの月(1つまたは複数)。許容される値:]
-
[1,12]
-
{"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", Dec"}
-
-
dayOfWeek
- 1週間のうちの曜日(1つまたは複数)。許容される値:]
-
[0,7]
-
{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}
"0"および"7"はいずれも日曜日を表します。
-
-
year
- 特定の暦年。許容される値: 4桁の暦年
要素値でサポートされる形式
各要素では次のいずれかの形式で記述された値がサポートされます。
-
単一の値 - その属性で使用可能な値の中から1つのみに限定します。
Example: second = "10" Example: month = "Sep"
-
ワイルド・カード -
"*"
はその属性で有効な値のすべてを表します。Example: second = "*" Example: dayOfWeek = "*"
-
リスト - 属性を2つ以上の有効な値または範囲に限定します。文字列内の区切り文字にはコンマを使用します。リスト内の各アイテムは単一の値または範囲でなければなりません。リストのアイテムには、リスト、ワイルド・カード、増分は指定できません。重複値は無視されます。
Example: second = "10,20,30" Example: dayOfWeek = "Mon,Wed,Fri" Example: minute = "0-10,30,40"
-
範囲 - 複数の値を含む範囲に属性を限定します。範囲の両端はダッシュで区切ります。範囲の両端は単一の属性値でなければなりません。範囲のメンバーには、リスト、ワイルド・カード、範囲、増分は指定できません。範囲
"x-y"
でx
がy
よりも大きい場合、その範囲は"x-max, min-y"
と同等です。ここで示すmax
は対応する属性の最大値、min
は最小値です。範囲"x-x"
、つまり範囲の両方の値が同じ場合は、単一の値x
として評価されます。曜日の範囲"0-7"
は、"*"
と同等です。Example: second = "1-10" Example: dayOfWeek = "Fri-Mon" Example: dayOfMonth = "27-3" (Equivalent to "27-Last , 1-3"
-
増分 - 前方のスラッシュによって属性を開始点と間隔に基づいて限定します。1分、1時間、1日のうちのそれぞれ
N
秒、分、時間おきの時間を指定するために使用します。x/y
という表現では、属性は時間xで始まる有効な値の中でy番目
の値おきに限定されます。値x
は含まれます。xの位置にワイルド・カード文字(*
)を使用できます。これは0
と同等です。増分の使用は、second
、minute
およびhour
要素内のみでサポートされます。second
およびminute
要素では、x
およびy
はそれぞれ[0,59]
の範囲で指定する必要があります。hour
要素では、x
およびy
はそれぞれ[0,23]
の範囲で指定する必要があります。Example: minute = "?/5" (Every five minutes within the hour)
これは「minute = "0,5,10,15,20,25,30,35,40,45,50,55"」と同等です。
Example: second = "30/10" (Every 10 seconds within the minute, starting at second 30)
これは「second = "30,40,50"」と同等です。
増分値の一連の照合処理は、その属性の最大値を超えると停止します。限度を超えて継続されることはありません。
Example : ( minute = "?/14", hour="1,2")
これは「(minute = "0,14,28,42,56", hour = "1,2")」(午前1時から2時の間で14分おき)と同等です。
スケジュール指定の要素のその他のルール
スケジュール指定の要素に適用されるその他のルールは次のとおりです。
-
dayOfMonth
要素にワイルド・カード以外の値を指定し、dayOfWeek
要素にもワイルド・カード以外の値を指定した場合、dayOfMonth
値またはdayOfWeek
値のいずれかに一致する日はすべて適用対象と見なされます。 -
空白は無視されます(文字列定数と数値は除く)。
-
すべての文字列定数(例: "Sun"、"Jan"、"1st"など)において、大文字と小文字は区別されません。
スケジュールベースのタイマー時間は、アプリケーションが実行されているコンテナに関連付けられているデフォルト・タイムゾーンのコンテキストで評価されます。スケジュール・ベースのタイマーでは、必要に応じてこのデフォルトをオーバーライドして、特定のタイムゾーンに関連付けることができます。スケジュールベースのタイマーを特定のタイムゾーンに関連付けると、そのタイマーの時間はすべて、コンテナが実行されているデフォルト・タイムゾーンに関係なく、そのタイムゾーンのコンテキストで評価されます。
Schedule
アノテーションを適用するタイムアウト・コールバック・メソッドは、次のシグネチャのいずれかにする必要があります(<METHOD>
にはメソッド名を指定します)。
void <METHOD>() void <METHOD>(Timer timer)
タイムアウト・コールバック・メソッドには、public、private、protectedまたはpackageレベルのアクセスを指定できます。タイムアウト・コールバック・メソッドをfinalやstaticとして宣言することはできません。タイムアウト・コールバック・メソッドでアプリケーション例外をスローすることはできません。
属性
次の表で属性について簡単に説明します。
表A-16 javax.ejb.Scheduleアノテーションの属性
名前 | 説明 | データ型 | 必須? |
---|---|---|---|
dayofMonth |
1か月のうちの日(1つまたは複数)を指定します。 デフォルト値は |
String |
いいえ |
dayofWeek |
1週間のうちの曜日(1つまたは複数)を指定します。 デフォルト値は |
String |
いいえ |
hour |
1日のうちの時間(1つまたは複数)を指定します。 デフォルト値は |
String |
いいえ |
info |
タイマーに関連付けられている情報文字列を指定します。 デフォルト値は |
String |
いいえ |
minute |
1時間のうちの分(1つまたは複数)を指定します。 デフォルト値は |
String |
いいえ |
month |
1年のうちの月(1つまたは複数)を指定します。 デフォルト値は |
String |
いいえ |
persistent |
作成されるタイマーが永続タイマーかどうかを指定します。 この属性の有効な値は、 |
Boolean |
いいえ |
second |
1分のうちの秒(1つまたは複数)を指定します。 デフォルト値は |
String |
いいえ |
timezone |
スケジュールが評価されるタイムゾーンを指定します。タイムゾーンはID文字列として指定されています。必要なタイムゾーンの一連のIDは、パブリック・ドメインの デフォルト値: タイムゾーンが指定されていない場合、スケジュールは、アプリケーションが実行されているコンテナに関連付けられているデフォルト・タイムゾーンのコンテキストで評価されます。 |
String |
いいえ |
year |
暦年(1つまたは複数)を指定します。 デフォルト値は |
String |
いいえ |
javax.ejb.Schedules
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: メソッド
複数のカレンダベースのタイマーをスケジュールする1つのタイマー・コールバック・メソッドに適用されます。Schedules
アノテーションを適用するメソッドは、次のシグネチャのいずれかにする必要があります(<METHOD>
にはメソッド名を指定します)。
void <METHOD>() void <METHOD>(Timer timer)
javax.ejb.Singleton
以降の節では、このアノテーションについて詳しく説明します。
属性
次の表で属性について簡単に説明します。
表A-18 javax.ejb.Singletonアノテーションの属性
名前 | 説明 | データ型 | 必須? |
---|---|---|---|
name |
このシングルトン・セッションBeanの名前を指定します。 この属性を指定しない場合は、Beanクラスの未修飾名がデフォルト値になります。 |
String |
いいえ |
mappedName |
シングルトン・セッションBeanをマッピングする製品固有の名前を指定します。 この属性を使用して、このシングルトン・セッションBeanのJNDI名を指定することもできます。WebLogic Serverでは、BeanのグローバルJNDI名を作成する際に
たとえば、ビジネス・インタフェースの完全修飾名が ノート: この属性を指定した場合は、そのシングルトン・セッションBeanを移行できなくなる可能性があります。 |
String |
いいえ |
description |
シングルトン・セッションBeanの説明。 |
String |
省略可能 |
javax.ejb.StatefulTimeout
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: 型
ステートフル・セッションBeanのアイドル状態(クライアント呼出しを受信しない状態)が許容される時間数を指定します。この時間が経過すると、ステートフル・セッションBeanはコンテナによって削除されます。
属性
次の表で属性について簡単に説明します。
表A-19 javax.ejb.StatefulTimeoutアノテーションの属性
名前 | 説明 | データ型 | 必須? |
---|---|---|---|
value |
ステートフル・セッションBeanで許可するアイドル時間を指定します。
-1よりも小さい値は無効です。 |
Long |
いいえ |
unit |
指定した値に使用する単位を指定します。 この属性のデフォルト値は |
TimeUnit |
いいえ |
javax.ejb.Stateless
以降の節では、このアノテーションについて詳しく説明します。
属性
次の表で属性について簡単に説明します。
表A-20 javax.ejb.Statelessアノテーションの属性
名前 | 説明 | データ型 | 必須? |
---|---|---|---|
name |
このステートレス・セッションBeanの名前を指定します。 この属性を指定しない場合は、Beanクラスの未修飾名がデフォルト値になります。 |
String |
いいえ |
mappedName |
ステートレス・セッションBeanをマッピングする製品固有の名前を指定します。 この属性を使用して、このステートレス・セッションBeanのJNDI名を指定することもできます。WebLogic Serverでは、BeanのグローバルJNDI名を作成する際に
たとえば、ビジネス・インタフェースの完全修飾名が ノート: この属性を指定した場合は、そのステートレス・セッションBeanを移行できなくなる可能性があります。 |
String |
いいえ |
description |
ステートレス・セッションBeanの説明。 |
String |
省略可能 |
javax.ejb.Timeout
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: メソッド
Beanクラスのタイムアウト・メソッドを指定します。
このアノテーションは、Beanクラス内でEJBタイマー・サービスを簡単にプログラミングするためのアノテーションです。EJBタイマー・サービスはEJBコンテナによって提供されるサービスです。このサービスを使用すると、タイマー・オブジェクトが期限切れになったときに発生するコールバックをスケジューリングするタイマーを作成できます。
EJB 3.xより前のバージョンでタイマー・サービスをプログラミングするには、Beanクラスにjavax.ejb.TimedObject
オブジェクトを実装する必要がありました。また、BeanクラスにejbTimeout
という名前のメソッドを含める必要もありました。EJBのバージョン3.xでは、これらの要件が緩和されました。javax.ejb.TimedObject
インタフェースを実装する必要はなくなり、@Timeout
アノテーションを付けている限り、タイムアウト・メソッドに任意の名前を付けることができるようになりました。ただし、必要であれば、3.xより前の方法でタイマー・サービスをプログラミングすることもできます。
詳細は、「EJBタイマー・サービスのプログラミング(省略可能)」を参照してください
このアノテーションには、属性はありません。
javax.ejb.TransactionAttribute
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: クラス、メソッド
EJBコンテナがEJBビジネス・メソッドをトランザクション・コンテキスト内で呼び出すかどうかを指定します。
ノート:
このアノテーションを指定した場合は、@TransactionManagement
アノテーションを使用して、コンテナ管理によるトランザクションの境界設定を指定する必要があります。
このアノテーションは、Beanクラスに指定することも、クラスの特定のメソッド(ビジネス・インタフェースのメソッド)に指定することもできます。Beanクラスに指定した場合、アノテーションはそのクラスの該当するすべてのビジネス・インタフェース・メソッドに適用されます。特定のメソッドに指定した場合は、そのメソッドにのみ適用されます。このアノテーションをクラス・レベルとメソッド・レベルの両方で指定し、それらの値が食い違っている場合は、メソッド・レベルの値が優先されます。
Beanクラスで@TransactionAttribute
アノテーションを指定しない場合は、コンテナ管理によるトランザクションの境界設定が使用されます。トランザクション属性のセマンティクスはREQUIREDと見なされます。
属性
次の表で属性について簡単に説明します。
表A-21 javax.ejb.TransactionAttributeアノテーションの属性
名前 | 説明 | データ型 | 必須? |
---|---|---|---|
value |
ビジネス・メソッドの呼出し時に、EJBコンテナがトランザクションの境界設定を管理する方法を指定します。 これらの値の詳細は、Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発のコンテナ管理によるトランザクション要素の表のtrans-attribute要素の説明を参照してください。 この属性の有効な値は以下のとおりです。
デフォルト値は |
String |
省略可能 |
javax.ejb.TransactionManagement
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: クラス
セッションBeanまたはメッセージドリブンBeanのトランザクションの境界設定管理の種類を指定します。
トランザクションとは、ディスク上、メモリー内、またはデータベース内にあるアプリケーションの状態を変更する作業の1単位であり、一度開始されると最後まで完了するか、あるいは一切何も行われません。トランザクションは、EJBコンテナ、Beanコード、またはクライアント・コードによって境界設定(開始およびコミットまたはロールバックでの終了)することができます。このアノテーションは、トランザクションの境界設定を、EJBコンテナで管理するか、ユーザーが記述したBeanコードで管理するかを指定します。
Beanクラスにこのアノテーションを指定しない場合、そのBeanではトランザクションの境界設定をコンテナで管理するものと見なされます。
トランザクションの詳細は、Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発のトランザクションの設計と管理のオプションを参照してください。
インターセプタの構成に使用するアノテーション
この項では、次の各項で説明するアノテーションのリファレンス情報を提供します。
javax.interceptor.ExcludeDefaultInterceptors
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: クラス、メソッド
定義されているどのデフォルト・インターセプタも呼び出さないことを指定します(デフォルト・インターセプタは、EJBデプロイメント記述子でのみ指定できます。アノテーションでは指定できません)。
クラス・レベルで定義した場合、デフォルト・インターセプタはBeanのどのビジネス・メソッドに対しても呼び出されません。メソッド・レベルで定義した場合は、その特定のビジネス・メソッドに対しては呼び出されませんが、それ以外の@ExludeDefaultInterceptors
アノテーションが付いていないすべてのビジネス・メソッドに対しては呼び出されます。
このアノテーションには、属性はありません。
javax.interceptor.Interceptors
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: クラス、メソッド
Beanクラスまたはメソッドに関連付けるインターセプタ・クラスを指定します。インターセプタ・クラスは、Beanクラスとはまったく別のクラスです。インターセプタ・クラスのメソッドは、Beanのビジネス・メソッド呼び出しまたはライフサイクル・イベントに呼応する形で呼び出されます。
インターセプタ・クラスには、ビジネス・インターセプタ・メソッド(@javax.interceptor.AroundInvoke
アノテーションを付けたメソッド)と、ライフサイクル・コールバック・メソッド(@javax.annotation.PostConstruct
、@javax.annotation.PreDestroy
、@javax.ejb.PostActivate
、または@javax.ejb.PrePassivate
アノテーションを付けたメソッド)の両方を含めることができます。
Beanクラスに対して定義できるインターセプタ・クラスの数に制限はありません。複数のインターセプタ・クラスを定義した場合は、そのアノテーション内に指定した順序で呼び出されます。
アノテーションをクラス・レベルで指定した場合、インターセプタはEJBのすべてのビジネス・メソッドに適用されます。メソッド・レベルで指定した場合は、そのメソッドにのみ適用されます。同じインターセプタ・クラスを、Beanクラスの複数のメソッドに指定することもできます。メソッド・レベルのインターセプタは、デフォルトでは、適用されるすべてのインターセプタ(デフォルト・インターセプタ、クラス・レベルのインターセプタなど)の後に呼び出されます。
エンティティBeanとの対話に使用するアノテーション
この項では、次の各項で説明するアノテーションのリファレンス情報を提供します。
javax.persistence.PersistenceContext
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: クラス、メソッド、フィールド
コンテナ管理のEntityManager
永続性コンテキストへの依存性を指定します。
このアノテーションは、3.xエンティティBeanと対話するために使用します。通常はEntityManager
インスタンスへの依存関係インジェクションを実行します。
EntityManager
インタフェースには、永続性コンテキストとの対話に使用するメソッドが定義されています。永続性コンテキストとは、エンティティ・インスタンスのセットです。エンティティとは、軽量の永続ドメイン・オブジェクトです。EntityManager
APIを使用すると、永続エンティティ・インスタンスの作成や削除、主キーに基づくエンティティの検索、およびエンティティに対する問合せを実行できます。
属性
次の表で属性について簡単に説明します。
表A-24 javax.persistence.PersistenceContextAnnotationの属性
名前 | 説明 | データ型 | 必須? |
---|---|---|---|
name |
この属性は、JNDIルックアップを使用して |
String |
いいえ |
unitName |
永続性ユニットの名前を指定します。 この属性の値として ノート : 参照するスコープ内に複数の永続性ユニットがある場合は、この属性を指定する必要があります。 |
String |
いいえ |
type |
永続性コンテキストの存続期間を、1つのトランザクションのスコープに限定するか、1つのトランザクションのスコープを超えて延長させるかを指定します。 この属性の有効な値は以下のとおりです。
デフォルト値は |
|
いいえ |
javax.persistence.PersistenceUnit
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: クラス、メソッド、フィールド
EntityManagerFactory
オブジェクトへの依存性を指定します。
このアノテーションは、3.xエンティティBeanと対話するために使用します。通常はEntityManagerFactory
インスタンスへの依存関係インジェクションを実行します。このEntityManagerFactory
を使用して、1つまたは複数のEntityManager
インスタンスを作成できます。このアノテーションは@PersistenceContext
アノテーションに似ていますが、EntityManager
の作成や破棄をEJBコンテナに任せずユーザー自身が行うため、その存続期間をより細かく制御できる点が異なります。
EntityManager
インタフェースには、永続性コンテキストとの対話に使用するメソッドが定義されています。永続性コンテキストとは、エンティティ・インスタンスのセットです。エンティティとは、軽量の永続ドメイン・オブジェクトです。EntityManager
APIを使用すると、永続エンティティ・インスタンスの作成や削除、主キーに基づくエンティティの検索、およびエンティティに対する問合せを実行できます。
属性
次の表で属性について簡単に説明します。
表A-26 javax.persistence.PersistenceUnitアノテーションの属性
名前 | 説明 | データ型 | 必須? |
---|---|---|---|
name |
この属性は、依存関係インジェクションを使用する場合は指定する必要はありません。JNDIも使用して情報をルックアップする場合にのみ指定します。 |
String |
いいえ |
unitName |
この属性を設定した場合は、参照先の永続性ユニットがEJBコンテナによって自動的にデプロイされ、そのJNDI名としてその永続性ユニット名が設定されます。同様に、この属性を指定しない場合でも、永続性コンテキスト情報を注入する変数の名前を 参照するスコープ内に複数の永続性ユニットがある場合にのみ、この属性を指定する必要があります。 |
String |
いいえ |
EJB 3.xで使用する標準JDKアノテーション
この項では、次の各項で説明するアノテーションのリファレンス情報を提供します。
javax.annotation.PostConstruct
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: メソッド
依存関係インジェクションが完了した後、1番目のビジネス・メソッドを呼び出す前に、初期化を実行するためにEJBコンテナから呼び出す必要のあるライフサイクル・コールバック・メソッドを指定します。
依存関係インジェクションを含むすべてのBeanクラスには、@PostConstruct
メソッドを指定できます。
このアノテーションは、Beanクラス内の1つのメソッドにのみ付けることができます。このアノテーションを複数のメソッドに付けた場合、そのEJBはデプロイされません。
@PostConstruct
アノテーションを付けるメソッドは、以下の要件を満たす必要があります。
-
メソッドの戻り値の型が
void
でなければなりません。 -
検査済みの例外を送出してはなりません。
-
public
、protected
、package private
、またはprivate
にすることは可能です。 -
static
にすることはできません。 -
final
にすることはできません。
このアノテーションには、属性はありません。
javax.annotation.PreDestroy
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: メソッド
EJBコンテナがBeanクラス・インスタンスを破棄する直前に通知を受信するライフサイクル・コールバック・メソッドを指定します。通常、このアノテーションは、Beanクラスが保持しているリソースを解放するメソッドに適用します。
このアノテーションは、Beanクラス内の1つのメソッドにのみ付けることができます。このアノテーションを複数のメソッドに付けた場合、そのEJBはデプロイされません。
@PreDestroy
アノテーションを付けるメソッドは、以下の要件を満たす必要があります。
-
メソッドの戻り値の型が
void
でなければなりません。 -
検査済みの例外を送出してはなりません。
-
public
、protected
、package private
、またはprivate
にすることは可能です。 -
static
にすることはできません。 -
final
にすることはできません。
このアノテーションには、属性はありません。
javax.annotation.Resource
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: クラス、メソッド、フィールド
外部リソース(JDBCデータ・ソース、JMS宛先、接続ファクトリなど)への依存性を指定します。
このアノテーションをフィールドまたはメソッドに指定すると、Beanの初期化時に、要求されたリソースのインスタンスがBeanに注入されます。このアノテーションをクラスに適用すると、Beanが実行時にルックアップするリソースが宣言されます。
属性
次の表で属性について簡単に説明します。
表A-28 javax.annotation.Resourceアノテーションの属性
名前 | 説明 | データ型 | 必須? |
---|---|---|---|
name |
リソース参照の名前を指定します。
|
String |
いいえ |
type |
リソースのJavaデータ型を指定します。
|
Class |
いいえ |
authenticationType |
このリソースに使用する認証タイプを指定します。 この属性は、サポートされるタイプの接続ファクトリを表すリソースにのみ指定します。 この属性の有効な値は以下のとおりです。
デフォルト値は |
AuthenticationType |
いいえ |
shareable |
リソースを、このEJBと他のEJBとの間で共有できるかどうかを指定します。 この属性は、サポートされるタイプの接続ファクトリまたはORBオブジェクト・インスタンスを表すリソースにのみ指定します。 この属性の有効な値は、 |
boolean |
いいえ |
mappedName |
依存リソースのグローバルJNDI名を指定します。 たとえば:
この場合は、WebLogic Server JNDIツリー内にデプロイされている |
String |
いいえ |
description |
リソースの説明を指定します。 |
String |
いいえ |
EJB 3.xで使用するセキュリティ関連の標準JDKアノテーション
この項では、次の各項で説明するアノテーションのリファレンス情報を提供します。
javax.annotation.security.DeclareRoles
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: クラス
EJBで使用するセキュリティ・ロールを定義します。
通常、このアノテーションは、アノテーションを付けたクラスのメソッド内から(たとえばisUserInRole
メソッドを使用して)テストできるロールを定義するために使用します。また、クラスまたはクラスのメソッドで@RolesAllowed
アノテーションを使用している場合はロールが暗黙的に宣言されますが、このアノテーションを使用することでそれらのロールを明示的に宣言できます。
WebLogic Serverのセキュリティ・ロールは、WebLogic Server管理コンソールを使用して作成できます。『Oracle WebLogic Server管理コンソール・オンライン・ヘルプ』のセキュリティ・ロールの管理に関する項を参照してください。
javax.annotation.security.RolesAllowed
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: クラス、メソッド
EJB内のメソッドにアクセスできるセキュリティ・ロールのリストを指定します。
クラス・レベルで指定した場合は、Beanクラス内のすべてのメソッドに適用されます。メソッド・レベルで指定した場合は、そのメソッドにのみ適用されます。このアノテーションをクラス・レベルとメソッド・レベルの両方で指定した場合は、クラス・レベルの値がメソッド・レベルの値によってオーバーライドされます。
WebLogic Serverのセキュリティ・ロールは、WebLogic Server管理コンソールを使用して作成できます。『Oracle WebLogic Server管理コンソール・オンライン・ヘルプ』のセキュリティ・ロールの管理に関する項を参照してください。
javax.annotation.security.RunAs
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: クラス
EJBコンテナ内で実際にEJBを実行するセキュリティ・ロールを指定します。
セキュリティ・ロールは、WebLogic Serverセキュリティ・レルムにあり、ユーザーやグループにマップする必要があります。『Oracle WebLogic Server管理コンソール・オンライン・ヘルプ』のセキュリティ・ロールの管理に関する項を参照してください。
WebLogicアノテーション
この項では、次の各項で説明するWebLogicアノテーションのリファレンス情報を提供します。
-
weblogic.javaee.TransactionTimeoutSeconds
ノート:
この節で説明するアノテーションは、それぞれに相当する構成が
weblogic-ejb-jar.xml
デプロイメント記述子で定義されている場合はオーバーライドされます。Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発のweblogic-ejb-jar.xmlデプロイメント・ディスクリプタのリファレンスに関する項を参照してください。
weblogic.javaee.AllowRemoveDuringTransaction
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: クラス(ステートフル・セッションEJBのみ)
トランザクション中にインスタンスが削除できるかどうかを指定するフラグです。
ノート:
このアノテーションは、weblogic-ejb-jar.xml
デプロイメント記述子のallow-remove-during-transaction
要素によってオーバーライドされます。Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発のweblogic-ejb-jar.xmlデプロイメント・ディスクリプタのリファレンスに関する項を参照してください。
weblogic.javaee.CallByReference
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: クラス(ステートフルまたはステートレス・セッションEJBのみ)
EJBがリモートから呼び出されたか同じEAR内から呼び出されたかに関係なく、パラメータをコピーするかどうか(または参照によって渡すかどうか)を指定するフラグです。
ノート:
メソッドのパラメータは、EJBがリモートで呼び出されたときには常に値で渡されます。このアノテーションは、weblogic-ejb-jar.xml
デプロイメント記述子のenable-call-by-reference
要素によってオーバーライドされます。『Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発』の「weblogic-ejb-jar.xmlデプロイメント記述子のリファレンス」を参照してください。
weblogic.javaee.DisableWarnings
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: クラス
IDを指定した警告メッセージをWebLogic Serverが無効化するように指定します。
ノート:
このアノテーションは、weblogic-ejb-jar.xml
デプロイメント記述子のdisable-warning
要素によってオーバーライドされます。Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発のweblogic-ejb-jar.xmlデプロイメント・ディスクリプタのリファレンスに関する項を参照してください。
属性
次の表で属性について簡単に説明します。
表A-33 weblogic.javaee.DisableWarningsの属性
名前 | 説明 | データ型 | 必須? |
---|---|---|---|
WarningCode |
警告コードを指定します。以下の4つの値のいずれかに設定します。
|
String |
はい |
weblogic.javaee.Idempotent
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: クラス
同じメソッドを同じ引数で繰返し呼び出しても、1回の呼出しと同じ効果がもたらされるように記述されたEJBを指定します。これにより、フェイルオーバー・ハンドラは、失敗したサーバー上で実際に呼出しがコンパイルされるかどうかを知らなくても、失敗した呼出しを再試行できるようになります。あるメソッドについて多重呼出し不変を有効にした場合、EJBスタブは、EJBのホスト・サーバーに接続できるかぎり、あらゆる失敗から自動的に回復することができます。
ノート:
このアノテーションは、weblogic-ejb-jar.xml
デプロイメント記述子のidempotent-method
およびretry-methods-on-rollback
要素によってオーバーライドされます。Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発のweblogic-ejb-jar.xmlデプロイメント・ディスクリプタのリファレンスに関する項を参照してください。
weblogic.javaee.JMSClientID
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: メソッド
JMS宛先に接続するときのMDBのクライアントIDを指定します。JMSトピックに対する恒久サブスクリプションで必須です。
weblogic.javaee.MessageDestinationConfigurationでMDBが使用する接続ファクトリを指定した場合、クライアントIDはconfig.xml
内の関連付けられているJMSConnectionFactory
要素のClientID
要素で定義できます。
config.xml
のJMSConnectionFactory
でClientID
を指定しないか、デフォルト接続ファクトリを使用する(weblogic.javaee.MessageDestinationConfigurationを指定しない)場合、MDBはjms-client-id
値をそのクライアントIDとして使用します。
ノート:
このアノテーションは、weblogic-ejb-jar.xml
デプロイメント記述子のjms-client-id
要素によってオーバーライドされます。Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発のweblogic-ejb-jar.xmlデプロイメント・ディスクリプタのリファレンスに関する項を参照してください。
weblogic.javaee.JNDIName
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: クラス(ステートフルまたはステートレス・セッションEJBのみ)
特定のクライアント・ビューのBeanクラスに適用可能なカスタムJNDI名を指定します。インタフェースなしのビューのJNDI名を示すためにBeanクラスに適用する場合、className
は省略可能です。
ノート:
このアノテーションは、weblogic-ejb-jar.xml
デプロイメント記述子のjndi-binding
要素によってオーバーライドされます。Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発のweblogic-ejb-jar.xmlデプロイメント・ディスクリプタのリファレンスに関する項を参照してください。
weblogic.javaee.MessageDestinationConfiguration
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: クラス(メッセージドリブンEJBのみ)
メッセージドリブンEJBがキューとトピックを作成するためにルックアップするJMS接続ファクトリのJNDI名を指定します。
ノート:
このアノテーションは、weblogic-ejb-jar.xml
デプロイメント記述子のconnection-factory-jndi-name
要素によってオーバーライドされます。Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発のweblogic-ejb-jar.xmlデプロイメント・ディスクリプタのリファレンスに関する項を参照してください。
属性
次の表で属性について簡単に説明します。
表A-39 weblogic.javaee.MessageDestinationConfigurationの属性
名前 | 説明 | データ型 | 必須? |
---|---|---|---|
connectionFactoryJNDIName |
接続ファクトリのJNDI名。この属性のデフォルトは空文字列。 |
String |
いいえ |
initialContextFactory |
WebLogic初期コンテキスト・ファクトリ。この属性のデフォルトは |
Class |
いいえ |
providerURL |
プロバイダのURL。この属性のデフォルトは |
String |
いいえ |
weblogic.javaee.TransactionIsolation
以降の節では、このアノテーションについて詳しく説明します。
説明
ターゲット: メソッド
EJBのメソッド・レベルのトランザクション・アイソレーション設定です。
ノート:
このアノテーションは、weblogic-ejb-jar.xml
デプロイメント記述子のtrans-timeout-seconds
要素によってオーバーライドされます。Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発のweblogic-ejb-jar.xmlデプロイメント・ディスクリプタのリファレンスに関する項を参照してください。
属性
次の表で属性について簡単に説明します。
表A-40 weblogic.javaee.Idempotentの属性
名前 | 説明 | データ型 | 必須? |
---|---|---|---|
IsolationLevel |
アイソレーション・レベル。有効な値は以下のとおりです。
この属性のデフォルトはDEFAULT。 |
int |
いいえ |