# ClientParamsBean

Overview | Related MBeans | Attributes | Operations

## Overview

Several parameters concerning how the JMS server should behave with regard to their clients can be configured with the client parameters bean. For example, the "client-id" a client should have when using this connection factory can be configured with a client parameter bean.

Security roles | The following roles have read, write, and invoke permission for all non-encrypted attributes and operations in this MBean: Deployer
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:
JMSConnectionFactoryBean.ClientParams |

## Attributes

This section describes the following attributes:

AcknowledgePolicy AllowCloseInOnMessage ClientId MessagesMaximum | MulticastOverrunPolicy SynchronousPrefetchMode

### AcknowledgePolicy

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.

Privileges | Read/Write
Type | java.lang.String
Default Value | All
Legal Values | All Previous

### AllowCloseInOnMessage

Specifies whether the connection factory creates message consumers that allow a `close()` method to be issued within its `onMessage()` method call.

- If selected, a `close()` method call from within an `onMessage()` method call will succeed instead of blocking forever. If the acknowledge mode of the session is set to `AUTO_ACKNOWLEDGE`, the current message will still be acknowledged automatically when the `onMessage()` call completes.

- If not selected, it will cause the `stop()` and `close()` methods to hang if called from `onMessage()` .

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 | boolean
Default Value | true

### ClientId

An optional client ID for a durable subscriber that uses this JMS connection factory. Configuring this value on the connection factory prevents more than one JMS client from using a connection from the factory.

Generally, JMS durable subscriber applications set their client IDs dynamically using the `javax.jms.Connection.setClientID()` call.

Privileges | Read/Write
Type | java.lang.String

### MessagesMaximum

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.

For more information, see:

- getSynchronousPrefetchMode

Privileges | Read/Write
Type | int
Default Value | 10

### MulticastOverrunPolicy

The policy to use when the number of outstanding multicast messages reaches the value specified in MessagesMaximum and some messages must be discarded.

- `Keep New`

  indicates that the most recent messages are given priority over the oldest messages, and the oldest messages are discarded, as needed.

- `Keep Old`

  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.

Privileges | Read/Write
Type | java.lang.String
Default Value | KeepOld
Legal Values | KeepOld KeepNew

### SynchronousPrefetchMode

Specifies whether a synchronous consumer will prefetch messages (that is, messages sent from the server to the client) in one server access.

- Disabled

  indicates that message prefetching is disabled.

- Enabled

  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.

- Topic Subscriber Only

  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

## Operations

This section describes the following operations:

isSet unSet |

### isSet

Return true if the given property has been explicitly set in this bean.

Operation Name | `"isSet"`
Parameters | `Object [] { propertyName }` where: `propertyName` is an object of type `java.lang.String` that specifies: property to check
Signature | `String [] { "java.lang.String" }`
Returns | `boolean`
Exceptions | `java.lang.IllegalArgumentException` IllegalArgumentException if propertyName is not a recognized property

### unSet

Restore the given property to its default value.

Operation Name | `"unSet"`
Parameters | `Object [] { propertyName }` where: `propertyName` is an object of type `java.lang.String` that specifies: property to restore
Signature | `String [] { "java.lang.String" }`
Returns | `void`
Exceptions | `java.lang.IllegalArgumentException` UnsupportedOperationException if called on a runtime implementation.