接続ファクトリ: 構成: 全般
このページでは、このJMS接続ファクトリの全般的な構成パラメータを定義します。これには、様々なクライアント接続、デフォルト配信、ロード・バランシング、およびセキュリティのパラメータが含まれます。
構成オプション
名前 説明 名前 このJMS接続ファクトリの名前。
MBean属性:
WebLogicMBean.Name
スコープ この接続ファクトリが作成されたこのスコープ。
JNDI名 クライアント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
ターゲット設定ポリシー このJMSリソースが、デフォルトの親モジュールのターゲット指定を行うのか、サブデプロイメントのターゲット指定メカニズムを使用するのかを指定します。
Trueに設定すると、このリソースは暗黙的に、親モジュールのターゲット指定を継承します。Falseに設定すると、このリソースはサブデプロイメントのターゲット(指定されている場合)に基づいてターゲット指定されます。
MBean属性(アプリケーション・モジュールには適用しない):
TargetableBean.DefaultTargetingEnabled
サブデプロイメント このエンティティをターゲットにする場合に使用するサブデプロイメントの名前を取得します。
この名前を持つサブデプロイメントを使用してエンティティをターゲットにします。サブデプロイメントのターゲットは、このエンティティのターゲットになります。
MBean属性(アプリケーション・モジュールには適用しない):
TargetableBean.SubDeploymentName