ルート・スキーマ: クライアント・パラメータ
型: object
ソースの表示
- acknowledgePolicy(optional): string
デフォルト値: All
使用可能な値: [ "All", "Previous" ]
CLIENT_ACKNOWLEDGE
モードを使用する非トランザクション・セッションの確認応答ポリシー。「すべて」
は、メッセージの確認応答を呼び出すと、セッションで受信されたすべての未応答メッセージを確認応答することを示します。「前」
は、メッセージの確認応答を呼び出すと、そのメッセージを含む未応答メッセージのみを確認応答することを指定します。
このパラメータはJMS仕様の変更の問題を回避し、非トランザクション・セッションにCLIENT_ACKNOWLEDGE
確認応答モードを使用する実装に対してのみ適用されます。具体的に説明すると、この仕様では確認応答されるメッセージとその前のすべてのメッセージを確認応答できました。しかし、仕様の変更によって、任意のメッセージを確認応答すると受信済のすべてのメッセージが確認応答されるようになりました(確認応答されるメッセージの後に受信したメッセージも含む)。
ACKNOWLEDGE_PREVIOUS
は、これまでの動作を保持します(確認応答されるメッセージとその前までのすべてのメッセージの確認応答)。一方、ACKNOWLEDGE_ALL
は、新しい動作をもたらします。どのメッセージが確認応答に影響を及ぼしているかにかかわらず、特定のセッションで受信されたすべてのメッセージが確認応答されます。
この属性は動的で、いつでも変更できます。ただし、値を変更しても既存の接続には影響しません。この接続ファクトリで作成された新しい接続にのみ影響します。
- allowCloseInOnMessage(optional): boolean
デフォルト値: true
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()
を呼び出すことができます。
この値は動的であり、いつでも変更可能です。ただし、値を変更しても既存の接続には影響しません。この接続ファクトリで作成された新しい接続にのみ影響します。
- clientId(optional): string
このJMS接続ファクトリを使用するアプリケーションの任意指定のクライアントID。クライアントIDポリシーをRestricted
(デフォルト)に設定した場合、接続ファクトリでクライアントIDを構成すると、このファクトリの接続が複数のJMSクライアントで使用されないようになります。
この属性が構成されるケースは少ないので、通常はデフォルト(空白)のままにしておきます。JMSアプリケーション・プログラムで標準のJMS API javax.jms.JMSContext.setClientID()
またはjavax.jms.Connection.setClientID()
を使用してクライアントIDを動的に設定できます。JMSアプリケーション・メッセージ処理コンテナ(たとえばMDB)は、通常、クライアントIDをコンテナ構成の一部として設定できるようにします。
この属性は動的で、いつでも変更できます。ただし、値を変更しても既存の接続には影響しません。この接続ファクトリで作成された新しい接続にのみ影響します。
制約
- clientIdPolicy(optional): string
デフォルト値: Restricted
使用可能な値: [ "Restricted", "Unrestricted" ]
「クライアント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種類の独自のサブスクリプションとして扱われます。また、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)
を使用する必要があります。
この属性は動的で、いつでも変更できます。ただし、値を変更しても既存の接続には影響しません。この接続ファクトリで作成された新しい接続にのみ影響します。
- messagesMaximum(optional): integer(int32)
デフォルト値: 10
非同期セッション向けに存在でき、メッセージ・リスナーにまだ渡されていないメッセージの最大数。同期プリフェッチ・モードが有効化されている場合、この値は1回のサーバー・アクセスでメッセージをプリフェッチする、メッセージ・コンシューマでの同期セッションにも影響します。
値 -1は、メッセージ数に制限がないことを示します。ただし、この場合、残っている仮想メモリーの量に制限が設定されます。
メッセージの数が「最大メッセージ数」の値に達すると、次のようになります。
マルチキャスト・セッションの場合、接続が停止してもメッセージの配信は、「最大メッセージ数」値に達するまで続行されます。この値に達すると、メッセージは「超過時のポリシー」に従って破棄されます。
この属性は動的で、いつでも変更できます。ただし、値を変更しても既存の接続には影響しません。この接続ファクトリで作成された新しい接続にのみ影響します。
- multicastOverrunPolicy(optional): string
デフォルト値: KeepOld
使用可能な値: [ "KeepOld", "KeepNew" ]
未処理のマルチキャスト・メッセージ数が「最大メッセージ数」で指定された値に達し、一部のメッセージを破棄する必要があるときに使用するポリシー。
メッセージの新旧は、JMSTimestamp
の値ではなく受信の順序によって定義されます。
この属性は動的で、いつでも変更できます。ただし、値を変更しても既存の接続には影響しません。この接続ファクトリで作成された新しい接続にのみ影響します。
- subscriptionSharingPolicy(optional): string
デフォルト値: Exclusive
使用可能な値: [ "Exclusive", "Sharable" ]
この接続のサブスクリプション共有ポリシーを指定します。この属性は動的に変更できますが、新しい値は今後作成される接続に対してのみ有効になります。値の変更前に作成された既存の接続には影響しません。
有効な値は、次のとおりです。
Exclusive
- デフォルト。この接続ファクトリを使用して作成されるすべてのサブスクライバは、サブスクリプションを他のサブスクリプションと共有できません。
Sharable
- この接続ファクトリを使用して作成したサブスクライバは、作成時に同じ接続ファクトリを使用したか、別の接続ファクトリを使用したかに関係なく、他のサブスクライバとサブスクリプションを共有できます。コンシューマは、同一のクライアント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を持つ2つの共有可能な非恒久サブスクリプションは、異なるクライアントIDポリシーを持つ場合、2種類の独自のサブスクリプションとして扱われます。
無制限のクライアント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)
を使用する必要があります。
この属性は動的で、いつでも変更できます。ただし、値を変更しても既存の接続には影響しません。この接続ファクトリで作成された新しい接続にのみ影響します。
- synchronousPrefetchMode(optional): string
デフォルト値: disabled
同期コンシューマが1回のサーバー・アクセスでメッセージ(つまり、サーバーからクライアントに送られるメッセージ)をプリフェッチするかどうかを指定します。
Disabled - メッセージのプリフェッチが無効化されていることを示します。
Enabled - 同期コンシューマ(キュー受信側またはトピック・サブスクライバ)がメッセージをプリフェッチすることを示します。「最大メッセージ数」パラメータで定義された最大メッセージ数を超える量のメッセージをプリフェッチすることはできません。
Topic Subscriber Only - 同期トピック・サブスクライバのみがメッセージをプリフェッチすることを示します。「最大メッセージ数」パラメータで定義された最大メッセージ数を超える量のメッセージをプリフェッチすることはできません。
同期メッセージ・プリフェッチは、次の条件をサポートしておらず、これらの条件が発生するとJMS例外がスローされます。
この属性は動的で、いつでも変更できます。ただし、値を変更しても既存の接続には影響しません。この接続ファクトリで作成された新しい接続にのみ影響します。
{
"type":"object",
"properties":{
"acknowledgePolicy":{
"default":"All",
"enum":[
"All",
"Previous"
],
"type":"string",
"description":"<p>Acknowledge policy for non-transacted sessions that use the <code>CLIENT_ACKNOWLEDGE</code> mode. <code>All</code> indicates that calling acknowledge on a message acknowledges <i>all</i> unacknowledged messages received on the session. <code>Previous</code> specifies that calling acknowledge on a message acknowledges only unacknowledged messages up to, and including, the given message.</p><p>This parameter works around a change in the JMS specification and only applies to implementations that use the <code>CLIENT_ACKNOWLEDGE</code> acknowledge mode for a non-transacted session. Specifically, the specification allowed users to acknowledge all messages before and including the message being acknowledged. The specification was changed so that acknowledging any message acknowledges all messages ever received (even those received after the message being acknowledge). </p><p><code>ACKNOWLEDGE_PREVIOUS</code> retains the old behavior (acknowledge all message up to and including the message being acknowledged). Whereas, <code>ACKNOWLEDGE_ALL</code> yields the new behavior, where all messages received by the given session are acknowledged regardless of which message is being used to effect the acknowledge.</p><p>This attribute is dynamic and can be changed at any time. However, changing the value does not affect existing connections. It only affects new connections made with this connection factory.</p>"
},
"allowCloseInOnMessage":{
"default":true,
"type":"boolean",
"description":"<p>Specifies whether a connection factory creates message consumers that allow a <code>close()</code> or <code>stop()</code> method to be issued within its <code>onMessage()</code> method call.</p><ul><li><p>If selected (set to true) on a custom connection factory, an <code>onMessage()</code> method callback is allowed to issue a <code>close()</code> method on its own Session, Connection and JMSContext objects, or a <code>stop()</code> call on its own Connection and JMSContext objects. If false, these calls will throw an exception.</p></li><li><p>Default JMS Connection Factories (\"java:comp/DefaultJMSConnectionFactory\", \"weblogic.jms.ConnectionFactory\", or \"weblogic.jms.XAConnectionFactory\") set this option to false and it cannot be modified.</p></li></ul><p><i>Note:</i> The <code>onMessage()</code> method of the Message Listener is allowed to call <code>close()</code> on its own MessageConsumer and JMSConsumer even when AllowCloseInOnMessage is set to false. <br> This value is dynamic and can be changed at any time. However, changing the value does not affect existing connections. It only affects new connections made with this connection factory.</p>"
},
"clientId":{
"x-weblogic-legalNull":true,
"type":"string",
"description":"<p>An optional Client ID for applications that use this JMS connection factory. If the Client ID Policy is set to <code>Restricted </code>(the default), then configuring a Client ID on the connection factory prevents more than one JMS client from using a connection from this factory.</p><p>This attribute is rarely configured and should normally be left at the default (blank), as JMS application programs can set their Client IDs dynamically using the standard JMS APIs <code>javax.jms.JMSContext.setClientID()</code> or <code>javax.jms.Connection.setClientID()</code>. The JMS application message processing containers (such as MDBs) normally make the Client ID configurable as part of container configuration.</p><p>This attribute is dynamic and can be changed at any time. However, changing the value does not affect existing connections. It only affects new connections made with this connection factory.</p><p><h5>Constraints</h5></p><ul><li>legal null</li></ul>"
},
"clientIdPolicy":{
"default":"Restricted",
"enum":[
"Restricted",
"Unrestricted"
],
"type":"string",
"description":"<p>The Client ID Policy indicates whether more than one JMS connection can use the same Client ID.</p><p>The valid values are:</p><ul><li><p><code>CLIENT_ID_POLICY_RESTRICTED</code> - The default. Only one connection that uses this policy can exist in a cluster at any given time for a particular Client ID (if a connection already exists with a given Client ID, attempts to create new connections using this policy with the same Client ID fail with an exception).</p></li><li><p><code>CLIENT_ID_POLICY_UNRESTRICTED</code> - Connections created using this policy can specify any Client ID, even when other restricted or unrestricted connections already use the same Client ID. The Unrestricted Client ID capability was added in WebLogic 10.3.4 (11gR1PS3). </p></li></ul><p>Notes:</p><ul><li><p>WebLogic JMS applications can override the Client ID Policy specified on the connection factory configuration by casting a <code>javax.jms.JMSContext</code> instance to <code>weblogic.jms.extensions.WLJMSContext</code> or a <code>javax.jms.Connection</code> instance to <code>weblogic.jms.extension.WLConnection</code> and calling <code>setClientID(String clientID, String clientIDPolicy)</code></p></li><li><p>Two connections with the same Client ID are treated as two different independent connections if they have a different Client ID Policy. This means a cluster can host a single Restricted Client ID Policy connection, and also concurrently host multiple Unrestricted Client ID Policy connections that have the same Client ID as the Restricted connection.</p></li><li><p>Two durable subscriptions with the same Client ID and Subscription Name are treated as two different independent subscriptions if they have a different Client ID Policy. Similarly, two Sharable non-durable subscriptions with the same Client Id are treated as two different independent subscriptions if they have a different Client ID Policy.</p></li><li><p>Durable subscriptions created using an Unrestricted Client Id must be unsubscribed using the <code>weblogic.jms.extensions.WLJMSContext.unsubscribe(Topic topic, String name)</code> instead of <code>javax.jms.JMSContext.unsubscribe(String name)</code> or using the <code>weblogic.jms.extensions.WLSession.unsubscribe(Topic topic, String name)</code>, instead of <code>javax.jms.Session.unsubscribe(String name)</code></p></li></ul><p>This attribute is dynamic and can be changed at any time. However, changing the value does not affect existing connections. It only affects new connections made with this connection factory.</p>"
},
"messagesMaximum":{
"default":10,
"type":"integer",
"format":"int32",
"description":"<p>The maximum number of messages that can exist for an asynchronous session and that have not yet been passed to the message listener. When the Synchronous Prefetch Mode is enabled, this value also affects synchronous sessions with a message consumer that will prefetch messages in one server access.</p><p>A value of -1 indicates that there is no limit on the number of messages. In this case, however, the limit is set to the amount of remaining virtual memory.</p><p> When the number of messages reaches the MessagesMaximum value:</p><ul><li><p>For multicast sessions, new messages are discarded according the policy specified by the <code>OverrunPolicy</code> parameter and a DataOverrunException is thrown.</p></li><li><p>For non-multicast sessions, new messages are flow-controlled, or retained on the server until the application can accommodate the messages.</p></li></ul><p> For multicast sessions, when a connection is stopped, messages will continue to be delivered, but only until the MessagesMaximum value is reached. Once this value is reached, messages will be discarded based on the Overrun policy.</p><p>This attribute is dynamic and can be changed at any time. However, changing the value does not affect existing connections. It only affects new connections made with this connection factory.</p>"
},
"multicastOverrunPolicy":{
"default":"KeepOld",
"enum":[
"KeepOld",
"KeepNew"
],
"type":"string",
"description":"<p>The policy to use when the number of outstanding multicast messages reaches the value specified in MessagesMaximum and some messages must be discarded.</p><ul><li><p><b>Keep New</b> - Indicates that the most recent messages are given priority over the oldest messages, and the oldest messages are discarded, as needed.</p></li><li><p><b>Keep Old</b> - Indicates that the oldest messages are given priority over the most recent messages, and the most recent messages are discarded, as needed.</p></li></ul><p> Message age is defined by the order of receipt, not by the <code>JMSTimestamp</code> value.</p><p>This attribute is dynamic and can be changed at any time. However, changing the value does not affect existing connections. It only affects new connections made with this connection factory.</p>"
},
"subscriptionSharingPolicy":{
"default":"Exclusive",
"enum":[
"Exclusive",
"Sharable"
],
"type":"string",
"description":"<p>Specifies the subscription sharing policy on this connection. Although this attribute is dynamic, the new values only take effect on future connections and have no impact to existing connections created before the value was changed.</p><p>The valid values are: </p><ul><li><p><code>Exclusive</code> - The default. All subscribers created using this connection factory cannot share subscriptions with any other subscribers.</p></li><li><p><code>Sharable</code> - Subscribers created using this connection factory can share their subscriptions with other subscribers, regardless of whether those subscribers are created using the same connection factory or a different connection factory. Consumers can share a non-durable subscriptions only if they have the same Client ID and Client ID Policy; consumers can share a durable subscription only if they have the same Client ID, Client ID Policy, and Subscription Name. The Sharable Subscription Sharing capability was added in WebLogic 10.3.4 (11gR1PS3).</p></li></ul><p>Notes: </p><ul><li><p>WebLogic JMS applications can override the Subscription Sharing Policy specified on the connection factory configuration by casting a <code>javax.jms.JMSContext</code> instance to <code>weblogic.jms.extensions.WLJMSContext</code> or a <code>javax.jms.Connection</code> instance to <code>weblogic.jms.extensions.WLConnection</code> and calling <code>setSubscriptionSharingPolicy(String subscriptionSharingPolicy)</code></p></li><li><p>Most applications with a Sharable Subscription Sharing Policy will also use an Unrestricted Client ID Policy in order to ensure that multiple connections with the same client ID can exist.</p></li><li><p>Two durable subscriptions with the same Client ID and Subscription Name are treated as two different independent subscriptions if they have a different Client ID Policy. Similarly, two Sharable non-durable subscriptions with the same Client ID are treated as two different independent subscriptions if they have a different Client ID Policy.</p></li><li><p>Durable subscriptions created using an Unrestricted Client Id must be unsubscribed using <code>weblogic.jms.extensions.WLJMSContext.unsubscribe(Topic topic, String name)</code>, instead of <code>javax.jms.JMSContext.unsubscribe(String name)</code> or using <code>weblogic.jms.extensions.WLSession.unsubscribe(Topic topic, String name)</code>, instead of <code>javax.jms.Session.unsubscribe(String name)</code>, regardless of the Subscription Sharing Policy (Exclusive or Sharable).</p></li></ul><p>This attribute is dynamic and can be changed at any time. However, changing the value does not affect existing connections. It only affects new connections made with this connection factory.</p>"
},
"synchronousPrefetchMode":{
"default":"disabled",
"type":"string",
"description":"<p>Specifies whether a synchronous consumer will prefetch messages (that is, messages sent from the server to the client) in one server access.</p><ul><li><p><b>Disabled</b> - Indicates that message prefetching is disabled.</p></li><li><p><b>Enabled</b> - Indicates that a synchronous consumer (queue receiver or topic subscriber) will prefetch messages. The amount of prefetched messages cannot exceed the maximum number of messages defined by the Messages Maximum parameter.</p></li><li><p><b>Topic Subscriber Only</b> - Indicates that only a synchronous topic subscriber will prefetch messages. The amount of prefetched messages cannot exceed the maximum number of messages defined by the Messages Maximum parameter.</p></li></ul><p>Synchronous message prefetching does not support the following conditions, and will throw a JMS Exception when encountered:</p><ul><li><p>User (XA) transactions for synchronous message receives</p></li><li><p>Multiple synchronous consumers per session (regardless of queue or topic)</p></li></ul><p>This attribute is dynamic and can be changed at any time. However, changing the value does not affect existing connections. It only affects new connections made with this connection factory.</p>"
}
},
"description":""
}