JMS接続ファクトリ
接続ファクトリは、JMSクライアントで接続を作成するために使用します。接続ファクトリは同時使用が可能で、複数のスレッドで同時にアクセスすることができます。1つまたは複数の接続ファクトリを構成すると、定義済みパラメータを使用して接続を作成し、その接続をJMSに戻すことができます。定義済みパラメータでは、メッセージに優先度が明示的に定義されていない場合に使用するデフォルトの優先度などが指定されます。
このページでは、このJMSモジュール用に作成されたJMS接続ファクトリの概要を示します。
列の表示
「この表のカスタマイズ」を展開して「列の表示」リストを変更すると、このページに表示されるデータ・ポイントを減らしたり増やしたりできます。それぞれのデータ・ポイントは各自の表列に表示されます。
次の表に、このページの列に表示できるすべてのデータ・ポイントを記載します。
名前 説明 名前 このJMS接続ファクトリの名前。
MBean属性:
WebLogicMBean.Name
JNDI名 クライアントID このJMS接続ファクトリを使用する恒久サブスクライバの任意指定のクライアントID。接続ファクトリでこの値を構成すると、このファクトリの接続が複数のJMSクライアントで使用されないようになります。通常、JMS恒久サブスクライバ・アプリケーションはそのクライアントIDをjavax.jms.Connection.setClientID()呼出しを使用して動的に設定します。
MBean属性:
JMSConnectionFactoryMBean.ClientId
デフォルト優先度 メッセージに優先度が明示的に定義されていない場合に使用するデフォルトの優先度。
このファクトリで作成された接続で生成され、DefaultPriorityに -1が指定されているすべてのメッセージは、この値を受け取ります。
javax.jms.MessageProducer.getPriority()
メソッドを呼び出すと、メッセージ・プロデューサは明示的に優先度を取得できます。この属性は動的です。いつでも変更できます。ただし、値を変更しても既存の接続には影響しません。この接続ファクトリで作成された新しい接続にのみ影響します。
MBean属性(アプリケーション・モジュールには適用しない):
DefaultDeliveryParamsBean.DefaultPriority
最小値:
0
最大値:
9
デフォルト存続時間 メッセージの最大存在時間を示すミリ秒数。この値は、この接続ファクトリを使用する送信側のアプリケーションで
time-to-live
が明示的に設定されない場合およびtime-to-live
が宛先のTimeToLiveOverride
属性によって明示的にオーバーライドされない場合に使用されます。値0は、メッセージが無期限に存続することを示します。メッセージ・プロデューサ・アプリケーションでは、標準のJMS
javax.jms.MessageProducer.setTimeToLive(long)
メソッドを呼び出すことにより、time-to-live
を明示的に設定できます。javax.jms.Message.setJMSExpiration()
を使用してプログラムからtime-to-live
を設定しても効果はありません。JMS仕様に従って、メッセージ・セッターはJMS送信呼出しで無視されます。この属性は動的です。いつでも変更できます。ただし、値を変更しても既存の接続には影響しません。この接続ファクトリで作成された新しい接続にのみ影響します。
MBean属性(アプリケーション・モジュールには適用しない):
DefaultDeliveryParamsBean.DefaultTimeToLive
最小値:
0
最大値:
9223372036854775807
デフォルト再配信遅延 ロールバックまたは回復されたメッセージが再配信されるまでの遅延時間(ミリ秒)。
このファクトリで作成されたコンシューマによって消費され、DefaultRedeliveryDelayに -1が指定されているすべてのメッセージは、この値を使用します。
weblogic.jms.extensions.WLSession.getRedliveryDelay()
メソッドを呼び出すと、メッセージ・コンシューマは明示的に再配信遅延時間を取得できます。この属性は動的です。いつでも変更できます。ただし、値を変更しても既存の接続には影響しません。この接続ファクトリで作成された新しい接続にのみ影響します。
MBean属性(アプリケーション・モジュールには適用しない):
DefaultDeliveryParamsBean.DefaultRedeliveryDelay
最小値:
0
最大値:
9223372036854775807
確認応答ポリシー
CLIENT_ACKNOWLEDGE
モードを使用する非トランザクション・セッションの確認応答ポリシー。「すべて」
は、メッセージの確認応答を呼び出すと、セッションで受信されたすべての未応答メッセージを確認応答することを示します。「前」
は、メッセージの確認応答を呼び出すと、そのメッセージを含む未応答メッセージのみを確認応答することを指定します。このパラメータはJMS仕様の変更の問題を回避し、非トランザクション・セッションに
CLIENT_ACKNOWLEDGE
確認応答モードを使用する実装に対してのみ適用されます。具体的に説明すると、この仕様では確認応答されるメッセージとその前のすべてのメッセージを確認応答できました。しかし、仕様の変更によって、任意のメッセージを確認応答すると受信済みのすべてのメッセージが確認応答されるようになりました(確認応答されるメッセージの後に受信したメッセージも含む)。
ACKNOWLEDGE_PREVIOUS
は、これまでの動作を保持します(確認応答されるメッセージとその前までのすべてのメッセージの確認応答)。一方、ACKNOWLEDGE_ALL
は、新しい動作をもたらします。どのメッセージが確認応答に影響を及ぼしているかにかかわらず、特定のセッションで受信されたすべてのメッセージが確認応答されます。この属性は動的で、いつでも変更できます。ただし、値を変更しても既存の接続には影響しません。この接続ファクトリで作成された新しい接続にのみ影響します。
MBean属性(アプリケーション・モジュールには適用しない):
ClientParamsBean.AcknowledgePolicy
onMessage()でのcloseを許可
close()
またはstop()
メソッドをonMessage()
メソッド呼出し内で発行できるようにするメッセージ・コンシューマを、接続ファクトリで作成するかどうかを指定します。
カスタム接続ファクトリで選択(trueに設定)されている場合、
onMessage()
メソッド呼出しは、自身のSession、ConnectionおよびJMSContexオブジェクトに対してclose()
メソッドを、または自身のConnectionおよびJMSContextオブジェクトに対してstop()
呼出しを発行できます。falseの場合、これらの呼出しは例外をスローします。デフォルトのJMS接続ファクトリ(java:comp/DefaultJMSConnectionFactory、weblogic.jms.ConnectionFactoryまたはweblogic.jms.XAConnectionFactory)では、このオプションはfalseに設定され、変更できません。
ノート: メッセージ・リスナーの
onMessage()
メソッドにより、AllowCloseInOnMessageがfalseの場合でも、固有のMessageConsumerおよびJMSConsumerのclose()
を呼び出すことができます。
この値は動的であり、いつでも変更可能です。ただし、値を変更しても既存の接続には影響しません。この接続ファクトリで作成された新しい接続にのみ影響します。MBean属性(アプリケーション・モジュールには適用しない):
ClientParamsBean.AllowCloseInOnMessage
デフォルト配信モード この接続ファクトリを使用してプロデューサから送信されるすべてのメッセージに割り当てられる配信モード。
javax.jms.MessageProducer.getDeliveryMode()メソッドを呼び出すと、メッセージ・プロデューサは明示的に配信モードを取得できます。
ノート: この値は動的です。いつでも変更できます。ただし、値を変更しても既存の接続には影響しません。この接続ファクトリで作成された新しい接続にのみ影響します。
デフォルト配信時間 メッセージが生成されてからそのターゲット宛先で表示できるようになるまでの時間を示すミリ秒数。
weblogic.jms.extensions.WLMessageProducer.getTimeToDeliver()メソッドを呼び出すと、メッセージ・プロデューサは明示的に配信時間を取得できます。
値の範囲:
0
から64ビットの正の整数までノート: この値は動的です。いつでも変更できます。ただし、値を変更しても既存の接続には影響しません。この接続ファクトリで作成された新しい接続にのみ影響します。
MBean属性:
JMSConnectionFactoryMBean.DefaultTimeToDeliver
最小値:
0
最大値:
9223372036854775807
最大メッセージ数 非同期セッション向けに存在し、メッセージ・リスナーにまだ渡されていないメッセージの最大数。値-1は、メッセージ数に制限がないことを示します。この値は動的です。いつでも変更できます。ただし、値を変更しても既存の接続には影響しません。この接続ファクトリで作成された新しい接続にのみ影響します。(マルチキャスト拡張機能を使用するトピック・サブスクライバについては、「超過時のポリシー」フィールドも参照してください。)
メッセージの数が「最大メッセージ数」の値に達すると、次のようになります。
マルチキャスト・セッションの場合、新しいメッセージは超過時のポリシーの値によって指定されたポリシーに従って破棄され、DataOverrunExceptionがスローされます。
非マルチキャスト・セッションの場合、新しいメッセージはフロー制御されるか、アプリケーションがメッセージを受け入れることができるまでサーバー上に保持されます。
値の範囲: -1から32ビットの正の整数まで
ノート: マルチキャスト・セッションの場合、接続が停止しても、メッセージの配信は「最大メッセージ数」値に達するまで続行されます。この値に達すると、メッセージは「超過時のポリシー」に従って破棄されます。
MBean属性:
JMSConnectionFactoryMBean.MessagesMaximum
最小値:
-1
最大値:
2147483647
超過時のポリシー マルチキャスト拡張機能を使用するトピック・サブスクライバの超過時のポリシー。未処理のマルチキャスト・メッセージ数が「最大メッセージ数」フィールドで指定された値に達し、一部のメッセージを破棄する必要があるときに使用するポリシー。「新しいメッセージの保持」は、最新のメッセージが最も古いメッセージよりも優先され、必要に応じて、古いメッセージが破棄されることを示します。「古いメッセージの保持」は、最も古いメッセージが最新のメッセージよりも優先され、必要に応じて、最新のメッセージが破棄されることを示します。メッセージの新旧は、JMSTimestampの値ではなく受信の順序によって定義されます。
未処理のマルチキャスト・メッセージ数が「最大メッセージ数」で指定された値に達し、一部のメッセージを破棄する必要があるときに使用するポリシー。
「
新しいメッセージの保持
」に設定すると、最新のメッセージが最も古いメッセージに対して優先され、必要に応じて、古いメッセージが破棄されます。「
古いメッセージの保持
」に設定すると、最も古いメッセージが最新のメッセージに対して優先され、必要に応じて、最新のメッセージが破棄されます。メッセージの新旧は、JMSTimestampの値ではなく受信の順序によって定義されます。
ノート: この値は動的です。いつでも変更できます。ただし、値を変更しても既存の接続には影響しません。この接続ファクトリで作成された新しい接続にのみ影響します。
トランザクション・タイムアウト XA接続ファクトリの有効化