コネクション・ファクトリの作成: プロパティ
このページでは、この接続ファクトリのプロパティを定義します。
構成オプション
名前 説明 リソース・タイプ JMSシステム・リソースのタイプ。
名前 この接続ファクトリの名前。
JNDI名 JNDIネームスペース内で宛先の検索に使用されるグローバルJNDI名。
クラスタ環境では、この名前はクラスタ全体に伝播されます。JNDI名をローカル・サーバーにのみバインドし、クラスタの他のサーバーに伝播しないようにするには、「
ローカルJNDI名
」パラメータを使用します。この属性を指定しない場合、宛先名はグローバルJNDIネームスペース内に通知されません。
MBean属性(アプリケーション・モジュールには適用しない):
DestinationBean.JNDIName
ノート この接続ファクトリの構成の説明として入力可能なオプションの情報。
クライアントIDポリシー 「クライアントIDポリシー」は、複数のJMS接続が同じクライアントIDを使用できるかどうかを示します。
有効な値は次のとおりです。
CLIENT_ID_POLICY_RESTRICTED
- デフォルト。このポリシーを使用する、特定のクライアントIDを持つ接続は、クラスタ内に同時に1つのみ存在できます(特定のクライアントIDの接続がすでに存在する場合、同じクライアントIDでこのポリシーを使用する新しい接続を作成しようとすると、操作は失敗し、例外が発生します)。
CLIENT_ID_POLICY_UNRESTRICTED
- このポリシーを使用して作成された接続の場合、他の制限付きまたは制限なしの接続ですでに同じクライアントIDが使用されていても、任意のクライアントIDを指定できます。制限なしのクライアントIDの機能はWebLogic 10.3.4 (11gR1PS3)で追加されました。
ノート:
WebLogic JMSアプリケーションは、接続ファクトリの構成で指定されたクライアントIDポリシーをオーバーライドできます。それには、
javax.jms.JMSContext
インスタンスをweblogic.jms.extensions.WLJMSContext
に、またはjavax.jms.Connection
インスタンスをweblogic.jms.extension.WLConnection
にキャストして、setClientID(String clientID, String clientIDPolicy)
を呼び出します。同じクライアントIDを使用した2つの接続のクライアントIDポリシーが異なる場合、それぞれ独立した別の接続として扱われます。そのため、クラスタは1つの制限付きクライアントIDポリシーの接続と、同じクライアントIDを制限付き接続として使用する複数の制限なしクライアントIDポリシーの接続を同時にホストできます。
同じクライアントIDとサブスクリプション名を使用した2つの恒久サブスクリプションは、クライアントIDポリシーが異なる場合、それぞれ独立した別のサブスクリプションとして扱われます。また、2つの共有可能な非恒久サブスクリプションが同じクライアントIDを使用している場合も、クライアントIDポリシーが異なる場合はそれぞれ独立した別のサブスクリプションとして扱われます。
無制限のクライアントIDを使用して作成された恒久サブスクリプションをサブスクライブ解除するには、
javax.jms.JMSContext.unsubscribe(String name)
ではなくweblogic.jms.extensions.WLJMSContext.unsubscribe(Topic topic, String name)
を使用するか、javax.jms.Session.unsubscribe(String name)
ではなくweblogic.jms.extensions.WLSession.unsubscribe(Topic topic, String name)
を使用する必要があります。この属性は動的で、いつでも変更できます。ただし、値を変更しても既存の接続には影響しません。この接続ファクトリで作成された新しい接続にのみ影響します。
MBean属性(アプリケーション・モジュールには適用しない):
ClientParamsBean.ClientIdPolicy
サブスクリプション共有ポリシー この接続のサブスクリプション共有ポリシーを指定します。この属性は動的に変更できますが、新しい値は今後作成される接続に対してのみ有効になります。値の変更前に作成された既存の接続には影響しません。
有効な値は次のとおりです。
排他
- デフォルト。この接続ファクトリを使用して作成したサブスクライバがすべて、他のサブスクライバとサブスクリプションを共有できないようにします。
共有可能
- この接続ファクトリを使用して作成したサブスクライバは、作成時に同じ接続ファクトリを使用したか、別の接続ファクトリを使用したかに関係なく、他のサブスクライバとサブスクリプションを共有できます。クライアントIDとクライアントIDポリシーが同じ場合にのみ、コンシューマは非恒久サブスクリプションを共有できます。クライアントID、クライアントIDポリシー、サブスクリプション名が同じ場合にのみ、コンシューマは恒久サブスクリプションを共有できます。共有可能サブスクリプションの共有機能はWebLogic 10.3.4 (11gR1PS3)で追加されました。
ノート:
WebLogic JMSアプリケーションは、接続ファクトリの構成で指定されたサブスクリプション共有ポリシーをオーバーライドできます。それには、
javax.jms.JMSContext
インスタンスをweblogic.jms.extensions.WLJMSContext
に、またはjavax.jms.Connection
インスタンスをweblogic.jms.extensions.WLConnection
にキャストして、setSubscriptionSharingPolicy(String subscriptionSharingPolicy)
を呼び出します。通常、共有可能なサブスクリプション共有ポリシーを使用するアプリケーションでは、複数の接続が同じクライアントIDを使用できるようにするために制限なしクライアントIDポリシーも使用します。
同じクライアントIDとサブスクリプション名を使用した2つの恒久サブスクリプションは、クライアントIDポリシーが異なる場合、それぞれ独立した別のサブスクリプションとして扱われます。また、2つの共有可能な非恒久サブスクリプションが同じクライアントIDを使用している場合も、クライアントIDポリシーが異なる場合はそれぞれ独立した別のサブスクリプションとして扱われます。
無制限のクライアントIDを使用して作成された恒久サブスクリプションをサブスクライブ解除するには、サブスクリプション共有ポリシー(排他または共有可能)に関係なく、
javax.jms.JMSContext.unsubscribe(String name)
ではなくweblogic.jms.extensions.WLJMSContext.unsubscribe(Topic topic, String name)
を使用するか、javax.jms.Session.unsubscribe(String name)
ではなくweblogic.jms.extensions.WLSession.unsubscribe(Topic topic, String name)
を使用する必要があります。この属性は動的で、いつでも変更できます。ただし、値を変更しても既存の接続には影響しません。この接続ファクトリで作成された新しい接続にのみ影響します。
MBean属性(アプリケーション・モジュールには適用しない):
ClientParamsBean.SubscriptionSharingPolicy
同期コンシューマのプリフェッチ・モード 同期コンシューマが1回のサーバー・アクセスでメッセージ(つまり、サーバーからクライアントに送られるメッセージ)をプリフェッチするかどうかを指定します。
- 無効
- メッセージのプリフェッチが無効化されていることを示します。
- 有効
- 同期コンシューマ(キュー受信側またはトピック・サブスクライバ)がメッセージをプリフェッチすることを示します。「最大メッセージ数」パラメータで定義された最大メッセージ数を超える量のメッセージをプリフェッチすることはできません。
- トピック・サブスクライバのみ
- 同期トピック・サブスクライバのみがメッセージをプリフェッチすることを示します。「最大メッセージ数」パラメータで定義された最大メッセージ数を超える量のメッセージをプリフェッチすることはできません。
同期メッセージ・プリフェッチは、次の条件をサポートしておらず、これらの条件が発生するとJMS例外がスローされます。
同期メッセージ受信に対するユーザー(XA)トランザクション
(キューであるかトピックであるかに関係なく)セッションごとに複数の同期コンシューマ
この属性は動的で、いつでも変更できます。ただし、値を変更しても既存の接続には影響しません。この接続ファクトリで作成された新しい接続にのみ影響します。
MBean属性(アプリケーション・モジュールには適用しない):
ClientParamsBean.SynchronousPrefetchMode
セッション当たりの最大メッセージ数 非同期セッション向けに存在でき、メッセージ・リスナーにまだ渡されていないメッセージの最大数。同期プリフェッチ・モードが有効化されている場合、この値は1回のサーバー・アクセスでメッセージをプリフェッチする、メッセージ・コンシューマでの同期セッションにも影響します。
値 -1は、メッセージ数に制限がないことを示します。ただし、この場合、制限は残っている仮想メモリーの容量に設定されます。
メッセージの数が「最大メッセージ数」の値に達すると、次のようになります。
マルチキャスト・セッションの場合、新しいメッセージは
OverrunPolicy
パラメータによって指定されたポリシーに従って破棄され、DataOverrunExceptionがスローされます。非マルチキャスト・セッションの場合、新しいメッセージはフロー制御されるか、アプリケーションがメッセージを受け入れることができるまでサーバー上に保持されます。
マルチキャスト・セッションの場合、接続が停止してもメッセージの配信は、「最大メッセージ数」値に達するまで続行されます。この値に達すると、メッセージは「超過時のポリシー」に従って破棄されます。
この属性は動的で、いつでも変更できます。ただし、値を変更しても既存の接続には影響しません。この接続ファクトリで作成された新しい接続にのみ影響します。
MBean属性(アプリケーション・モジュールには適用しない):
ClientParamsBean.MessagesMaximum
ロード・バランシングの有効化 接続ファクトリを介して作成された非匿名プロデューサが、分散宛先内で呼出し単位でロード・バランシングされるようにするかどうかを指定します。
有効化すると、関連付けられているメッセージ・プロデューサは
send()
またはpublish()
が発行されるたびにロード・バランシングされます。無効化すると、関連付けられているメッセージ・プロデューサは最初の
send()
またはpublish()
でロード・バランシングされます。MBean属性(アプリケーション・モジュールには適用しない):
LoadBalancingParamsBean.LoadBalancingEnabled
サーバー・アフィニティの有効化 サーバー・インスタンスで、分散宛先の複数のメンバー宛先にまたがってコンシューマまたはプロデューサのロード・バランシングを実行するときに、同じサーバー・インスタンス内で動作する他の物理宛先にまたがるロード・バランシングを最初に試行するかどうかを指定します。
MBean属性(アプリケーション・モジュールには適用しない):
LoadBalancingParamsBean.ServerAffinityEnabled
XA接続ファクトリの有効化 キューまたはトピックの接続ファクトリのかわりに、XAキューまたはXAトピックの接続ファクトリが戻されるかどうかを指定します。XA接続ファクトリを使用すると
XAConnection
を作成できます。このXAConnectionはXASession
の作成に使用でき、このXASessionを使用すると、トランザクション・マネージャの内部で使用するためのXAResource
を取得できます。さらに、この属性はJTA対応のセッションを接続ファクトリで作成するかどうかを指定します。trueを指定すると、関連付けられているメッセージ・プロデューサおよびメッセージ・コンシューマは、トランザクション・コンテキストの実行スレッドを調査します。trueに設定しない場合、現在のJTAトランザクションは無視されます。
ノート: トランザクション・セッションは、設定にかかわらず独自の内部トランザクションのために現在のスレッド・トランザクション・コンテキストを無視します。この設定は、非トランザクション・セッションのみに適用されます。
MBean属性(アプリケーション・モジュールには適用しない):
TransactionParamsBean.XAConnectionFactoryEnabled
トランザクション・タイムアウト この接続ファクトリで作成された接続上のすべてのトランザクションのタイムアウト値(秒)。
タイムアウト時間がすぎてもトランザクション・セッションがアクティブな場合、トランザクションはロールバックされます。値0は、デフォルト値が使用されることを示します。存在時間の長いトランザクションがある場合、この属性の値を調整してトランザクションを完了させることができます。
MBean属性(アプリケーション・モジュールには適用しない):
TransactionParamsBean.TransactionTimeout
最小値:
0
最大値:
2147483647