# JMSConnectionFactoryMBean

Overview | Related MBeans | Attributes | Operations

## Overview

This class represents a JMS connection factory. Connection factories are objects that enable JMS clients to create JMS connections.

Deprecated. 9.0.0.0 Replaced by JmsConnectionFactoryBean

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.management.configuration.JMSConnectionFactoryMBean`
Factory Methods | No factory methods. Instances of this MBean are created automatically.
Access Points Inherited from DeploymentMBean | Because this MBean extends or implements DeploymentMBean, you can also access this MBean by retrieving DeploymentMBeans. The following attributes contain DeploymentMBeans and its subtypes:
DomainMBean.Deployments |

## Related MBeans

This section describes attributes that provide access to other MBeans. For more information about the MBean hierarchy, refer to WebLogic Server MBean Data Model.

Targets |

### Targets

You must select a target on which an MBean will be deployed from this list of the targets in the current domain on which this item can be deployed. Targets must be either servers or clusters. The deployment will only occur once if deployments overlap.

Privileges | Read/Write
Type | TargetMBean[]
Relationship type: | Reference.

## Attributes

This section describes the following attributes:

AcknowledgePolicy AllowCloseInOnMessage ClientId DefaultDeliveryMode DefaultPriority DefaultRedeliveryDelay DefaultTimeToDeliver DefaultTimeToLive DeploymentOrder FlowControlEnabled FlowInterval FlowMaximum FlowMinimum FlowSteps JNDIName | LoadBalancingEnabled MessagesMaximum Name Notes OverrunPolicy Parent SendTimeout ServerAffinityEnabled TransactionTimeout Type UserTransactionsEnabled XAConnectionFactoryEnabled XAServerEnabled

### AcknowledgePolicy

Acknowledge policy for non-transacted sessions that use the `CLIENT_ACKNOWLEDGE` mode. `All` specifies 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.

Note: This value only applies to implementations that use the `CLIENT_ACKNOWLEDGE` acknowledge mode for a non-transacted session.

Note: This value works around a change in the JMS specification. 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), as follows:

- An acknowledge policy of `ACKNOWLEDGE_PREVIOUS` retains the old behavior (acknowledge all message up to and including the message being acknowledged).

- An acknowledge policy of `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
Secure value | All

### AllowCloseInOnMessage

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 (true), 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 (false), it will cause the `stop()` and `close()` methods to hang if called from `onMessage()`.

Note: 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

### 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

### DefaultDeliveryMode

The delivery mode assigned to all messages sent by a producer using this connection factory.

Message producers can get the delivery mode explicitly by calling the `javax.jms.MessageProducer.getDeliveryMode()` method.

Note: This value is dynamic. It 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 | Persistent
Legal Values | Persistent Non-Persistent

### DefaultPriority

The default priority used for messages when a priority is not explicitly defined.

Message producers can set the priority explicitly by calling the `javax.jms.MessageProducer.setPriority()` method.

Range of Values: Between 0 and 9.

Note: This value is dynamic. It 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 | int
Default Value | 4
Minimum value | 0
Maximum value | 9

### DefaultRedeliveryDelay

The number of milliseconds before rolled back or recovered messages are redelivered. This value is dynamic. It 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.

Message consumers can get the redelivery delay explicitly by calling the `weblogic.jms.extensions.WLSession.getRedliveryDelay()` method.

Range of Values: Between `0` and a positive 64-bit integer.

Privileges | Read/Write
Type | long
Default Value | 0
Minimum value | 0
Maximum value | 9223372036854775807

### DefaultTimeToDeliver

The number of milliseconds between when a message is produced and when it is made visible on its target destination.

Message producers can get the time-to-deliver explicitly by calling the `weblogic.jms.extensions.WLMessageProducer.getTimeToDeliver()` method.

Range of Values: Between `0` and a positive 64-bit integer.

Note: This value is dynamic. It 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 | 0
Minimum value | 0
Maximum value | 9223372036854775807

### DefaultTimeToLive

The default maximum number of milliseconds that a message will exist. Used for messages for which a Time to Live was not explicitly defined.

The default value of `0` indicates that the message has an infinite amount time to live.

Message producers can get the time-to-live explicitly by calling the `javax.jms.MessageProducer.getTimeToLive()` method.

Range of Values: Between `0` and a positive 64-bit integer.

Note: This value is dynamic. It 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 | 0
Minimum value | 0
Maximum value | 9223372036854775807

### DeploymentOrder

A priority that the server uses to determine when it deploys an item. The priority is relative to other deployable items of the same type.

For example, the server prioritizes and deploys all EJBs before it prioritizes and deploys startup classes.

Items with the lowest Deployment Order value are deployed first. There is no guarantee on the order of deployments with equal Deployment Order values. There is no guarantee of ordering across clusters.

Privileges | Read/Write
Type | int
Default Value | 1000
Minimum value | 0
Maximum value | 2147483647

### FlowControlEnabled

Indicates whether flow control is enabled for a producer created using this connection factory. If true, the associated message producers will be slowed down if the JMS server reaches Bytes/MessagesThresholdHigh.

Privileges | Read/Write
Type | boolean
Default Value | true

### FlowInterval

The number of seconds (between 0 and a positive 32-bit integer) when a producer adjusts its flow from the Flow Maximum number of messages to the Flow Minimum amount, or vice versa.

Note: This value is dynamic. It can be changed at any time. However, changing the value does not affect existing connections.

Privileges | Read/Write
Type | int
Default Value | 60
Minimum value | 0
Maximum value | 2147483647

### FlowMaximum

The maximum number of messages-per-second (between 0 and a positive 32-bit integer) allowed for a producer that is experiencing a threshold condition on the JMS server or queue/topic destination. When a producer is flow controlled it will never be allowed to go faster than this number of messages per second.

If a producer is not currently limiting its flow when a threshold condition is reached, the initial flow limit for that producer is set to FlowMaximum. If a producer is already limiting its flow when a threshold condition is reached (the flow limit is less than FlowMaximum), then the producer will continue at its current flow limit until the next time the flow is evaluated.

Note: Once a threshold condition has subsided, the producer is not permitted to ignore its flow limit. If its flow limit is less than the FlowMaximum, then the producer must gradually increase its flow to the FlowMaximum each time the flow is evaluated. When the producer finally reaches the FlowMaximum, it can then ignore its flow limit and send without limiting its flow.

Note: This value is dynamic. It can be changed at any time. However, changing the value does not affect existing connections.

Privileges | Read/Write
Type | int
Default Value | 500
Minimum value | 1
Maximum value | 2147483647
Secure value | 500

### FlowMinimum

The minimum number of messages-per-second allowed for a producer that is experiencing a threshold condition. That is, WebLogic JMS will not further slow down a producer whose message flow limit is at its Flow Minimum.

Range of Values: Between 0 and a positive 32-bit integer.

Note: When a producer is flow controlled it will never be required to go slower than FlowMinimum messages per second.

Note: This value is dynamic. It can be changed at any time. However, changing the value does not affect existing connections.

Privileges | Read/Write
Type | int
Default Value | 50
Minimum value | 1
Maximum value | 2147483647

### FlowSteps

The number of steps (between 1 and a positive 32-bit integer) used when a producer is adjusting its flow from the Flow Maximum amount of messages to the Flow Minimum amount, or vice versa.

Also, the movement (i.e., the rate of adjustment) is calculated by dividing the difference between the Flow Maximum and the Flow Minimum into steps. At each Flow Step, the flow is adjusted upward or downward, as necessary, based on the current conditions, as follows:

- The downward movement (the decay) is geometric over the specified period of time (Flow Interval) and according to the specified number of Flow Steps. (For example, 100, 50, 25, 12.5)

- The movement upward is linear. The difference is simply divided by the number of steps.

Note: This value is dynamic. It can be changed at any time. However, changing the value does not affect existing connections.

Privileges | Read/Write
Type | int
Default Value | 10
Minimum value | 1
Maximum value | 2147483647

### JNDIName

The JNDI name used to look up this JMS connection factory within the JNDI namespace.

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

### LoadBalancingEnabled

Indicates whether non-anonymous producers sending to a distributed destination are load balanced on a per-send basis.

- If true, the associated message producers will be load balanced on every `send()` or `publish()`.

- If false, the associated message producers will be load balanced on the first `send()` or `publish()`.

Privileges | Read/Write
Type | boolean
Default Value | true

### MessagesMaximum

The maximum number of messages that may exist for an asynchronous session and that have not yet been passed to the message listener. A value of `-1` indicates that there is no limit on the number of messages. This value is dynamic. It 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 topic subscribers that use the multicast extension, also see the Overrun Policy field.)

When the number of messages reaches the MessagesMaximum value:

- For multicast sessions, new messages are discarded according the policy specified by the OverrunPolicy value 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.

Range of Values: Between -1 and a positive 32-bit integer.

Note: 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.

Privileges | Read/Write
Type | int
Default Value | 10
Minimum value | -1
Maximum value | 2147483647

### Name

The user-specified name of this MBean instance.

This name is included as one of the key properties in the MBean's `javax.management.ObjectName`:
`Name=user-specified-name`

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

### Notes

Optional information that you can include to describe this configuration.

WebLogic Sever saves this note in the domain's configuration file (`config.xml`) as XML PCDATA. All left angle brackets (<) are converted to the XML entity `&lt;`. Carriage returns/line feeds are preserved.

Note:

  If you create or edit a note from the Administration Console, the Administration Console does not preserve carriage returns/line feeds.

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

### OverrunPolicy

Overrun policy for topic subscribers that use the multicast extension. The policy to use when the number of outstanding multicast messages reaches the value specified in the Messages Maximum field 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.

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

- If set to `Keep New`, the most recent messages are given priority over the oldest messages, and the oldest messages are discarded, as needed.

- If set to `Keep Old`, 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.

Note: This value is dynamic. It 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 | KeepOld KeepNew

### Parent

Return the immediate parent for this MBean

Privileges | Read/Write
Type |

### SendTimeout

The maximum number of milliseconds that a sender will wait for sufficient space (quota) on a JMS server and destination to accommodate the message being sent. Also see the Blocking Send Policy field on the JMS Server > Configuration > Thresholds & Quotas tab.

Range of Values: Between `0` and a positive 64-bit integer.

The default time is `10` milliseconds. A value of `0` indicates that the sender does not want to wait for space.

Note: This value is dynamic. It can be changed at any time. However, changing the value does not affect existing connections or their producers. It only affects new connections made with this connection factory. Producers inherit the setting from the connection factory used to create their session and connection. The value can then be overridden at run time by setting the value on the producer.

Privileges | Read/Write
Type | long
Default Value | 10
Minimum value | 0
Maximum value | 9223372036854775807

### ServerAffinityEnabled

Indicates whether a server that is load balancing consumers or producers across multiple physical destinations in a distributed destination set will first attempt to load balance across any other physical destinations that are also running on the same WebLogic Server instance.

Privileges | Read/Write
Type | boolean
Default Value | true

### TransactionTimeout

The timeout seconds for all transactions on transacted sessions created with this JMS connection factory. This setting has no effect on the transaction-timeout for JTA user transactions.

Range of Values: Between 0 and a positive 32-bit integer.

Note: This value is dynamic. It 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.

Note: If a transacted session is still active after the timeout has elapsed, the transaction is rolled back. A value of 0 indicates that the default value will be used. If you have long-running transactions, you might want to adjust the value of this value to allow transactions to complete.

Privileges | Read/Write
Type | long
Default Value | 3600
Minimum value | 0
Maximum value | 2147483647

### Type

Returns the type of the MBean.

Privileges | Read only
Type | java.lang.String
Redeploy or Restart required | Changes take effect after you redeploy the module or restart the server.

### UserTransactionsEnabled

Specifies whether a connection factory creates sessions that are JTA aware. If true, the associated message producers and message consumers look into the running thread for a transaction context. Otherwise, the current JTA transaction will be ignored. This value is dynamic. It 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.

Note: This value is now deprecated. If the XAServerEnabled value is set, then this value is automatically set as well.

Note: Transacted sessions ignore the current threads transaction context in favor of their own internal transaction, regardless of the setting. This setting only affects non-transacted sessions.

Deprecated. 8.1.0.0 Replaced by JMSConnectionFactoryMBean#XAConnectionFactoryEnabled

Privileges | Read/Write
Type | boolean

### XAConnectionFactoryEnabled

Specifies whether a XA queue or XA topic connection factory is returned, instead of a queue or topic connection factory. An XA factory is required for JMS applications to use JTA user-transactions, but is not required for transacted sessions. All connections created from an XA factory, whether they are XAConnections or plain Connections, become JTA user-transaction-aware.

In addition, this value indicates whether or not a connection factory creates sessions that are JTA aware. If true, the associated message producers and message consumers look into the running thread for a transaction context. Otherwise, the current JTA transaction will be ignored.

Note: Transacted sessions ignore the current threads transaction context in favor of their own internal transaction, regardless of the setting. This setting only affects non-transacted sessions.

Privileges | Read/Write
Type | boolean

### XAServerEnabled

Indicates whether an XA connection factory will be returned instead of a standard connection factory.

Note: This value is deprecated. It is now possible to use a single XA-enabled connection factory for both XA and non-XA purposes.

Deprecated. 8.1.0.0 Replaced by JMSConnectionFactoryMBean#XAConnectionFactoryEnabled

Privileges | Read/Write
Type | boolean

## Operations

This section describes the following operations:

addTarget freezeCurrentValue isSet removeTarget | restoreDefaultValue unSet

### addTarget

You can add a target to specify additional servers on which the deployment can be deployed. The targets must be either clusters or servers.

Operation Name | `"addTarget"`
Parameters | `Object [] { target }` where: `target` is an object of type `weblogic.management.configuration.TargetMBean` that specifies: The feature to be added to the Target attribute
Signature | `String [] { "weblogic.management.configuration.TargetMBean" }`
Returns | `boolean`
Exceptions | `javax.management.InvalidAttributeValueException` `weblogic.management.DistributedManagementException`

### freezeCurrentValue

If the specified attribute has not been set explicitly, and if the attribute has a default value, this operation forces the MBean to persist the default value.

Unless you use this operation, the default value is not saved and is subject to change if you update to a newer release of WebLogic Server. Invoking this operation isolates this MBean from the effects of such changes.

Note:

  To insure that you are freezing the default value, invoke the `restoreDefaultValue` operation before you invoke this.

This operation has no effect if you invoke it on an attribute that does not provide a default value or on an attribute for which some other value has been set.

Deprecated. 9.0.0.0

Operation Name | `"freezeCurrentValue"`
Parameters | `Object [] { attributeName }` where: `attributeName` is an object of type `java.lang.String` that specifies: attributeName
Signature | `String [] { "java.lang.String" }`
Returns | `void`
Exceptions | `javax.management.AttributeNotFoundException` `javax.management.MBeanException`

### isSet

Returns true if the specified attribute has been set explicitly in this MBean instance.

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`

### removeTarget

Removes the value of the addTarget attribute.

For more information, see:

- addTarget

Operation Name | `"removeTarget"`
Parameters | `Object [] { target }` where: `target` is an object of type `weblogic.management.configuration.TargetMBean` that specifies: target
Signature | `String [] { "weblogic.management.configuration.TargetMBean" }`
Returns | `boolean`
Exceptions | `javax.management.InvalidAttributeValueException` `weblogic.management.DistributedManagementException`

### restoreDefaultValue

If the specified attribute has a default value, this operation removes any value that has been set explicitly and causes the attribute to use the default value.

Default values are subject to change if you update to a newer release of WebLogic Server. To prevent the value from changing if you update to a newer release, invoke the `freezeCurrentValue` operation.

This operation has no effect if you invoke it on an attribute that does not provide a default value or on an attribute that is already using the default.

Deprecated. 9.0.0.0

Operation Name | `"restoreDefaultValue"`
Parameters | `Object [] { attributeName }` where: `attributeName` is an object of type `java.lang.String` that specifies: attributeName
Signature | `String [] { "java.lang.String" }`
Returns | `void`
Exceptions | `javax.management.AttributeNotFoundException`

### 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`