11 MDBのデプロイメント要素とアノテーション

MDBの動作に影響を及ぼすデプロイメント要素と構成プロパティを調べます。

表11-1の各行は、デプロイメント要素(EJBデプロイメント記述子で使用)およびそれに関連する構成プロパティ(アノテーションで指定)を記載しています。すべての要素が関連プロパティを持つとは限りません。

デプロイメント記述子の使用とMDBのアノテーションの詳細は、「EJB 3.2準拠MDBのプログラミング」を参照してください。

ノート:

関連構成プロパティを持つ要素の場合、要素のかわりに該当するプロパティを使用することをお薦めします。

表11-1は、次のように構成されています。

  • 要素列の各要素の後には、カッコの中に要素が使用されるデプロイメント記述子名が続きます。weblogic-ejb-jar.xml記述子の要素は、『Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発』「weblogic-ejb-jar.xmlデプロイメント記述子のリファレンス」に記載されている要素の詳細説明にリンクしています。ejb-jar.xmlの要素については、http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/ejb-jar_3_2.xsdでスキーマを参照してください。

  • 特に断りのないかぎり、構成プロパティ列にリスト表示されているすべてのプロパティは、アクティブ化構成プロパティです。つまり、ejb-jar.xml記述子のmessage-drivenスタンザにある@ActivationConfigPropertyアノテーションまたはactivation-config-property要素を使用して定義されたプロパティです。@ActivationConfigPropertyの使用に関する詳細は、EJB 3.2準拠MDBのプログラミングに関する項を参照してください

    ノート:

    Enterprise JavaBean仕様に基づき、javax.ejb.ActivationConfigPropertyアノテーションはMDBでのみ使用されます。このアノテーションは、セッションまたはエンティティBeanでは使用されません。

  • また、構成プロパティ列は、アノテーションや@ActivationConfigPropertyプロパティ以外のプロパティもリストしています。これらの場合、プロパティの後にはアノテーション名および当該アノテーションの使用に必要なimport文が続きます。

表11-1 MDBのデプロイメント要素とアノテーション

要素 構成プロパティ 説明 有効な値 デフォルト値

activation-config-property

(ejb-jar.xml)

acknowledgeMode

メッセージが受信および処理されたことをJMSプロバイダに通知します。コンテナ管理トランザクションを使用する場合は、確認応答モードは無視されます。(確認応答はトランザクションのコンテキストで実行されます。)

  • AUTO_ACKNOWLEDGE: メッセージはただちに確認されます

  • DUPS_OK_ACKNOWLEDGE: 確認応答は遅延し、重複メッセージが受信される可能性があります

AUTO_ACKNOWLEDGE

connection-factory-jndi-name

(weblogic-ejb-jar.xml)

connectionFactoryLookup

JMSメッセージドリブンBeanのメッセージの受信元であるJMSプロバイダに接続するために使用するJMS接続ファクトリのルックアップ名。

有効なルックアップ名

weblogic.jms.MessageDrivenBeanConnectionFactory

connection-factory-jndi-name

(weblogic-ejb-jar.xml)

connectionFactoryJndiName

キューおよびトピックを作成するためにMDBがルックアップするJMS ConnectionFactoryのJNDI名。「connection-factory-jndi-nameの設定方法」を参照してください

有効なJNDI名

weblogic.jms.MessageDrivenBeanConnectionFactory

connection-factory-resource-link

(weblogic-ejb-jar.xml)

connectionFactoryResourceLink

ejb-jar.xmlに定義されているJMSモジュール内のリソースをOracle WebLogic Serverの実際のJMSモジュール参照にマップします。ほとんど使用されません。

JMSモジュール内の有効なリソース

なし

destination-jndi-name

(weblogic-ejb-jar.xml)

destinationLookup

JMSメッセージドリブンBeanのメッセージの受信元であるJMSキューまたはトピックのルックアップ名。

有効なルックアップ名

なし

destination-jndi-name

(weblogic-ejb-jar.xml)

destinationJndiName

Oracle WebLogic Server JNDIツリーにデプロイされている実際のJMSキューまたはトピックにMDBを関連付けるために使用するJNDI名。「destination-jndi-nameの設定方法」を参照してください

有効なJNDI名

なし

destination-resource-link

(weblogic-ejb-jar.xml)

destinationResourceLink

ejb-jar.xmlに定義されているJMSモジュール内のリソースをOracle WebLogic Serverの実際のJMSモジュール参照にマップします。ほとんど使用されません。

JMSモジュール内の有効なリソース

なし

dispatch-policy

(weblogic-ejb-jar.xml)

なし

このオプション要素を使用すると、Beanに特定のWorkManagerを指定できるようになります。『Oracle WebLogic Serverのパフォーマンスのチューニング』メッセージドリブンBeanのチューニングに関する項 を参照してください。

有効な実行キューの名前

なし

distributed-destination-connection

(weblogic-ejb-jar.xml)

distributedDestinationConnection

同一クラスタ内のWebLogic JMS分散宛先(トピックまたはキュー)にアクセスするMDBが、すべての分散宛先メンバーから消費するか、または現在のOracle WebLogic Serverインスタンスに対してローカルの分散宛先メンバーのみから消費するかを指定します。すべてのユース・ケースに適用することはできません。JMS分散宛先およびJMSトピックを使用したMDBの構成とデプロイを参照してください。

  • LocalOnly

  • EveryMember

LocalOnly

durable-subscription-deletion

(weblogic-ejb-jar.xml)

durableSubscriptionDeletion

MDBがアンデプロイまたは削除されるときに恒久トピック・サブスクリプションが自動的に削除されるようにするかどうかを指定します。

  • True

  • False

False

generate-unique-jms-client-id

(weblogic-ejb-jar.xml)

weblogic.javaee.JMSClientIDアノテーションのgenerateUniqueClientID属性を参照してください。

EJBコンテナが一意のclient-idをMDBのすべてのインスタンスに対して生成するかどうかを示します。この設定は、topicMessagesDistributionMode互換性(デフォルト)に設定されているときにのみ使用する必要があります。JMSトピックを使用したMDBの構成とデプロイを参照してください。

  • True

  • False

False

initial-beans-in-free-pool

(weblogic-ejb-jar.xml)

なし

フリー・プールの初期サイズを設定します。Oracle WebLogic Serverは起動時に、Beanクラスごとに指定された数のBeanインスタンスをフリー・プールに格納します。この方法でBeanインスタンスをフリー・プールに格納しておくと、要求が来てから新しいインスタンスを生成せずにBeanに対する初期リクエストが可能になるため、MDBの初期レスポンス時間が短縮されます。

0からmaxBeansまで

0

initial-context-factory

(weblogic-ejb-jar.xml)

initialContextFactory

接続ファクトリの作成にEJBコンテナが使用する初期コンテキスト・ファクトリ。「initial-context-factoryの設定方法」を参照してください

初期コンテキスト・ファクトリの有効な名前

weblogic.jndi.WLInitialContextFactory

init-suspend-seconds

(weblogic-ejb-jar.xml)

initSuspendSeconds

EJBコンテナがJMSリソースの停止を検出したときにMDBのJMS接続を中断する初期秒数。「JMSリソース停止中のメッセージ配信の中断の構成」を参照してください

任意の整数

5

jms-client-id

(weblogic-ejb-jar.xml)

clientID

JMSメッセージドリブンBeanのメッセージの受信元であるJMSプロバイダに接続する際に使用するクライアントID。

なし

topicMessagesDistributionModeアクティブ化構成プロパティに依存し、generate-unique-client-idにも依存する可能性があります。トピック・サブスクリプション識別子を参照してください

jms-client-id

(weblogic-ejb-jar.xml)

jmsClientId

JMS宛先に接続時のMDBのクライアントID。オプションです。JMSトピックへの恒久サブスクリプションに使用されます。詳細は、トピック・サブスクリプション識別子を参照してください。

なし

topicMessagesDistributionModeアクティブ化構成プロパティに依存し、generate-unique-client-idにも依存する可能性があります。トピック・サブスクリプション識別子を参照してください

jms-polling-interval-seconds

(weblogic-ejb-jar.xml)

jmsPollingIntervalSeconds

アクセスできなくなっているJMS宛先にEJBコンテナが再接続しようとする試みの秒間隔。「クラスタ化MDBの移行とリカバリ」を参照してください

任意の整数

10

max-beans-in-free-pool

(weblogic-ejb-jar.xml)

なし

MDBフリー・プール内のBeanインスタンスの最大数。また、インスタンスの実際の数は、スレッド・プール・サイズおよびその他の要因によっても制限されます。『Oracle WebLogic Serverのパフォーマンスのチューニング』メッセージドリブンBeanのチューニングに関する項 を参照してください。

0からmaxBeansまで

1000

max-messages-in-transaction

(weblogic-ejb-jar.xml)

maxMessagesInTransaction

MDBのトランザクションに入れることができるメッセージの最大数を指定します。

すべての正の整数

なし

max-suspend-seconds

(weblogic-ejb-jar.xml)

maxSuspendSeconds

EJBコンテナがJMSリソースの停止を検出したときにMDBのJMS接続を中断する最大秒数。「JMSリソース停止中のメッセージ配信の中断の構成」を参照してください

任意の整数

60

message-destination-type

(ejb-jar.xml)

destinationType

JMS宛先のタイプ(宛先で実装されるJavaインタフェース)を指定します。

  • javax.jms.Queue

  • javax.jms.Topic

なし

messages-maximum

(weblogic-ejb-jar.xml)

messagesMaximum

非同期セッション向けに存在でき、メッセージ・リスナーにまだ渡されていないメッセージの最大数。値-1は、メッセージ数に制限がないことを示します。ただし、この場合、残っている仮想メモリーの量に制限が設定されます。

メッセージ数が特定の値に到達すると、次の対応が行われます。

  • マルチキャスト・セッションでは、指定された超過時のポリシーに従って新しいメッセージが破棄され、DataOverrunExceptionがスローされます。

  • 非マルチキャスト・セッションでは、新しいメッセージはフロー制御されるか、アプリケーションがメッセージに対応できるようになるまでサーバーに保持されます。

マルチキャスト・セッションでは、接続が停止された場合、メッセージは蓄積され続けますが、指定された最大値に到達するまでの間にかぎられます。一度最大値に達すると、メッセージは超過時のポリシーに基づいて破棄されます。

-11–263-1

10

message-selector

(ejb-jar.xml)

messageSelector

ヘッダー・フィールド参照およびプロパティ参照ごとに、関連のあるメッセージを指定するためにクライアントによって使用される文字列。ヘッダーとプロパティ値がセレクタに一致するメッセージのみが送信されます。

メッセージ・プロパティまたはメッセージ・ヘッダーを使用する条件式

NULL

messaging-type

(ejb-jar.xml)

なし

ほとんど使用されません。

javax.jms.MessageListener

なし

provider-url

(weblogic-ejb-jar.xml)

providerURL

InitialContextで使用されるURLプロバイダ。通常はhost:portです。「provider-urlの設定方法」を参照してください

有効なURL

NULL

resource-adapter-jndi-name

(weblogic-ejb-jar.xml)

resourceAdapterJndiName

JCAドリブンMDBの場合、このMDBがメッセージを受信する元のリソース・アダプタを識別します。

なし

なし

security-role-assignment

(weblogic-ejb-jar.xml)

なし

ejb-jar.xmlファイルのアプリケーション・ロールをOracle WebLogic Serverのセキュリティ・プリンシパルの名前にマップします。

なし

なし

start-mdbs-with-application

(weblogic-application.xml)

なし

MDBがいつメッセージの処理を開始するのかを制御します。trueに設定すると、Oracle WebLogic Serverが完全に起動していなくても、MDBはそのデプロイメントと同時にメッセージの処理を開始します。このため、MDBアプリケーションは起動の途中で初期化されていないサービスやアプリケーションにアクセスし、失敗することがあります。

falseに設定すると、Oracle WebLogic Serverがそのリスニング・ポートを開くまでメッセージの処理が延期されます。

  • True

  • False

False

subscription-durability

(ejb-jar.xml)

subscriptionDurability

JMSトピック・サブスクリプションがDurableまたはNonDurableかを指定します。詳細は、「サブスクリプション永続性の設定」を参照してください

  • Durable

  • NonDurable

NonDurable

activation-config-property

(ejb-jar.xml)

subscriptionName

トピックにパブリッシュされたメッセージを受信するように想定されている場合のサブスクリプション名。恒久または非恒久トピック・サブスクライバにこのプロパティを設定できます。

なし

なし

なし

topicMessagesDistributionMode

トピック・メッセージの配信モードを設定します。JMSトピックを使用したMDBの構成とデプロイを参照してください。

  • One-Copy-Per-Application

  • One-Copy-Per-Server

  • Compatibility

Compatibility

transaction-type

(ejb-jar.xml)

「trans-attribute」を参照してください

エンタープライズBeanのトランザクション管理タイプを指定します。詳細は、「MDBのトランザクション管理戦略の構成」を参照してください

  • Bean

  • Container

Container

trans-attribute

(ejb-jar.xml)

@TransactionAttributeTransactionAttributeTypeプロパティです。たとえば:

import javax.ejb.TransactionAttribute @TransactionAttribute(TransactionAttributeType.REQUIRED)

メソッドの呼出しをエンタープライズBeanのビジネス・メソッドに委託するときにコンテナがトランザクションの境界をどのように管理するのかを指定します。

ノート: Beanがコンテナ管理トランザクションの境界設定を使用すると指定されている場合、REQUIREDまたはNOT_SUPPORTEDトランザクション属性をメッセージ・リスナー・メソッドに使用し、REQUIREDREQUIRES_NEW、またはNOT_SUPPORTEDトランザクション属性をタイムアウト・コールバック・メソッドに使用する必要があります。詳細は、「MDBのトランザクション管理戦略の構成」を参照してください

  • Required

  • NotSupported

  • Supports

  • RequiresNew

  • Mandatory

  • Never

Required

trans-timeout-seconds

(weblogic-ejb-jar.xml)

@TransactionTimeoutSeconds

import weblogic.javaee.TransactionTimeoutSeconds

EJBのコンテナで初期化されたトランザクションの最長継続時間(秒単位)。この時間を過ぎると、トランザクションはロールバックされます。「MDBのトランザクション管理戦略の構成」を参照してください

0からmaxまで

トランザクション・タイムアウトが指定されていない、または0に設定されている場合、ドメインに構成されているトランザクション・タイムアウトが使用されます。ドメインにタイムアウトが構成されていない場合、デフォルトは30です。

use81-style-polling

(weblogic-ejb-jar.xml)

use81StylePolling

Oracle WebLogic Serverバージョン8.1方式のポーリングの後方互換性を有効にします。

  • True

  • False

False

activation-config-property

(ejb-jar.xml)

aqMDBReceiveNoWait

AQ JMSがMDBのJMSプロバイダで、このプロパティがtrueに設定されている場合、同期ポーリングはMessageConsumer.receiveNoWait()メソッドを使用して、QA JMSデキュー・パフォーマンスを最適化します。

  • True

  • False

False

activation-config-property

(ejb-jar.xml)

mdbDestinationPollIntervalMillis

JMS宛先にメッセージがなく、MDBに対して同期ポーリングが使用されている場合、このプロパティはメッセージ・ポーリング間隔をミリ秒で設定します。MDBがAQ JMSと相互運用し、minimizeAQSessionsがtrueに設定されている場合、このプロパティを5000より大きい値に設定することでデータベース接続使用のバーストを回避できます。この構成では、複数のMDBが開始されると、ランダムにメッセージ・ポーリングを開始します。

0以上(整数)

0

activation-config-property

(ejb-jar.xml)

minimizeAQSessions

このプロパティは、MDBがAQ JMSと相互作用する場合にのみ使用されます。このプロパティがtrueに設定されると、動的にAQ JMSセッションを終了することでデータベース・リソースの使用を減らします。

  • True

  • False

False