This package provides parameters that govern JMS server behavior with regard to a client. For example, setting the client Id when using a particular connection factory.
Security roles | The following roles have read, write, and invoke permission for all non-encrypted attributes and operations in this MBean:
|
||
Fully Qualified Interface Name | If you use the getMBeanInfo operation in MBeanTypeServiceMBean, supply the following value as this MBean's fully qualified interface name:weblogic.j2ee.descriptor.wl.ClientParamsBean
|
||
Factory Methods | No factory methods. Instances of this MBean are created automatically. | ||
Access Points |
You can access this MBean from the following MBean attributes:
|
This section describes the following attributes:
Acknowledge policy for non-transacted sessions that use the
CLIENT_ACKNOWLEDGE
mode. All
indicates
that calling acknowledge on a message acknowledges all
unacknowledged messages received on the session.
Previous
specifies that calling acknowledge on a
message acknowledges only unacknowledged messages up to, and
including, the given message.
This parameter works around a change in the JMS specification
and only applies to implementations that use the
CLIENT_ACKNOWLEDGE
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).
ACKNOWLEDGE_PREVIOUS
retains the old behavior
(acknowledge all message up to and including the message being
acknowledged). Whereas, ACKNOWLEDGE_ALL
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.
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.
Privileges | Read/Write |
Type | java.lang.String |
Default Value | All |
Legal Values |
|
Specifies whether a connection factory creates message consumers
that allow a close()
or stop()
method to
be issued within its onMessage()
method call.
If selected (set to true) on a custom connection factory, an
onMessage()
method callback is allowed to issue a
close()
method on its own Session, Connection and
JMSContext objects, or a stop()
call on its own
Connection and JMSContext objects. If false, these calls will throw
an exception.
Default JMS Connection Factories ("java:comp/DefaultJMSConnectionFactory", "weblogic.jms.ConnectionFactory", or "weblogic.jms.XAConnectionFactory") set this option to false and it cannot be modified.
Note: The onMessage()
method of the Message
Listener is allowed to call close()
on its own
MessageConsumer and JMSConsumer even when AllowCloseInOnMessage is
set to false.
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.
Privileges | Read/Write |
Type | boolean |
Default Value | true |
An optional Client ID for applications that use this JMS
connection factory. If the Client ID Policy is set to
Restricted
(the default), then configuring a Client ID
on the connection factory prevents more than one JMS client from
using a connection from this factory.
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
javax.jms.JMSContext.setClientID()
or
javax.jms.Connection.setClientID()
. The JMS
application message processing containers (such as MDBs) normally
make the Client ID configurable as part of container
configuration.
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.
Privileges | Read/Write |
Type | java.lang.String |
The Client ID Policy indicates whether more than one JMS connection can use the same Client ID.
The valid values are:
CLIENT_ID_POLICY_RESTRICTED
- 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).
CLIENT_ID_POLICY_UNRESTRICTED
- 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).
Notes:
WebLogic JMS applications can override the Client ID Policy
specified on the connection factory configuration by casting a
javax.jms.JMSContext
instance to
weblogic.jms.extensions.WLJMSContext
or a
javax.jms.Connection
instance to
weblogic.jms.extension.WLConnection
and calling
setClientID(String clientID, String
clientIDPolicy)
.
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.
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.
Durable subscriptions created using an Unrestricted Client Id
must be unsubscribed using the
weblogic.jms.extensions.WLJMSContext.unsubscribe(Topic topic,
String name)
instead of
javax.jms.JMSContext.unsubscribe(String name)
or using
the weblogic.jms.extensions.WLSession.unsubscribe(Topic
topic, String name)
, instead of
javax.jms.Session.unsubscribe(String name)
.
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.
Privileges | Read/Write |
Type | java.lang.String |
Default Value | Restricted |
Legal Values |
|
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.
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.
When the number of messages reaches the MessagesMaximum value:
For multicast sessions, new messages are discarded according the
policy specified by the OverrunPolicy
parameter and a
DataOverrunException is thrown.
For non-multicast sessions, new messages are flow-controlled, or retained on the server until the application can accommodate the messages.
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.
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.
For more information, see:
Privileges | Read/Write |
Type | int |
Default Value | 10 |
The policy to use when the number of outstanding multicast messages reaches the value specified in MessagesMaximum and some messages must be discarded.
- Indicates that the most recent messages are given priority over the oldest messages, and the oldest messages are discarded, as needed.
- Indicates that the oldest messages are given priority over the most recent messages, and the most recent messages are discarded, as needed.
Message age is defined by the order of receipt, not by the
JMSTimestamp
value.
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.
Privileges | Read/Write |
Type | java.lang.String |
Default Value | KeepOld |
Legal Values |
|
The maximum length of time, in milliseconds, that any
synchronous JMS calls, such as a producer.send()
,
consumer.receive()
, or
session.createBrowser()
, will block the calling thread
before giving up on a JMS client reconnect in progress.
This attribute is effective only if the Reconnect Policy option is set to either Producers or All. A value of 0 will cause synchronous JMS calls to not wait for any reconnect in progress; a value of -1 will cause an infinite wait for a reconnect.
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.
Privileges | Read/Write |
Type | long |
Default Value | 60000 |
Specifies which types of JMS clients will be explicitly and implicitly refreshed after a lost network connection with a server or upon a server reboot. For example, selecting the Producers option will explicitly refresh JMS Producers and implicitly refresh any related Session and Connection clients.
Do not refresh any JMS clients derived from this connection factory.
Refresh all JMS Producer clients derived from this connection factory. This option does not refresh Consumers, QueueBrowsers, or Connections with a configured Client ID for a durable subscriber.
Refresh all JMS Consumer and Producer clients derived from this connection factory, including Connections with a configured Client ID for a durable subscriber. This option does not refresh QueueBrowser clients.
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.
Privileges | Read/Write |
Type | java.lang.String |
Default Value | producer |
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.
The valid values are:
Exclusive
- The default. All subscribers created using this connection factory cannot share subscriptions with any other subscribers.
Sharable
- 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).
Notes:
WebLogic JMS applications can override the Subscription Sharing
Policy specified on the connection factory configuration by casting
a javax.jms.JMSContext
instance to
weblogic.jms.extensions.WLJMSContext
or a
javax.jms.Connection
instance to
weblogic.jms.extensions.WLConnection
and calling
setSubscriptionSharingPolicy(String
subscriptionSharingPolicy)
.
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.
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.
Durable subscriptions created using an Unrestricted Client Id
must be unsubscribed using
weblogic.jms.extensions.WLJMSContext.unsubscribe(Topic topic,
String name)
, instead of
javax.jms.JMSContext.unsubscribe(String name)
or using
weblogic.jms.extensions.WLSession.unsubscribe(Topic topic,
String name)
, instead of
javax.jms.Session.unsubscribe(String name)
, regardless
of the Subscription Sharing Policy (Exclusive or Sharable).
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.
Privileges | Read/Write |
Type | java.lang.String |
Default Value | Exclusive |
Legal Values |
|
Specifies whether a synchronous consumer will prefetch messages (that is, messages sent from the server to the client) in one server access.
- Indicates that message prefetching is disabled.
- 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.
- 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.
Synchronous message prefetching does not support the following conditions, and will throw a JMS Exception when encountered:
User (XA) transactions for synchronous message receives
Multiple synchronous consumers per session (regardless of queue or topic)
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.
Privileges | Read/Write |
Type | java.lang.String |
Default Value | disabled |
The maximum length of time, in milliseconds, that JMS clients (particularly asynchronous consumers) will continue to try to reconnect to the server after either the initial network disconnect or the last synchronous call attempt, whichever occurred most recently, before giving up retrying.
This attribute is effective only if the ReconnectPolicy attribute is set to either Producers or All. The default value of -1 means that that it will keep trying to reconnect indefinitely; a value of 0 means that there would be exactly one retry attempt.
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.
Privileges | Read/Write |
Type | long |
Default Value | -1 |
This section describes the following operations:
|
Return true if the given property has been explicitly set in this bean.
Operation Name | "isSet" |
Parameters | Object [] { propertyName }
where:
|
Signature | String [] {
"java.lang.String" } |
Returns |
boolean
|
Exceptions |
|
Restore the given property to its default value.
Operation Name | "unSet" |
Parameters | Object [] { propertyName }
where:
|
Signature | String [] {
"java.lang.String" } |
Returns |
void
|
Exceptions |
|