# FlowControlParamsBean

Overview | Related MBeans | Attributes | Operations

## Overview

Many clients producing messages can cause the server to fall behind in processing messages. The flow control parameters can help by slowing down production of messages. Using flow control can help the overall throughput of the system.

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.FlowControlParamsBean`
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.FlowControlParams |

## Attributes

This section describes the following attributes:

FlowControlEnabled FlowInterval FlowMaximum | FlowMinimum FlowSteps

### FlowControlEnabled

Specifies whether a producer created using a connection factory allows flow control. If true, the associated message producers will be slowed down if a JMS server or a destination reaches its specified upper byte or message threshol.

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

### FlowInterval

The adjustment period of time, in seconds, when a producer adjusts its flow from the FlowMaximum number of messages to the FlowMinimum amount, or vice versa.

When a producer is flow controlled, it is slowed down from its FlowMaximum to its FlowMinimum over the specified FlowInterval amount of seconds.

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

### FlowMaximum

The maximum number of messages-per-second allowed for a producer that is experiencing a threshold condition. When a producer is flow controlled it will never be allowed to go faster than the FlowMaximum 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.

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

### FlowMinimum

The minimum number of messages-per-second allowed for a producer that is experiencing a threshold condition. This is the lower boundary of a producer's flow limit. That is, WebLogic JMS will not further slow down a producer whose message flow limit is at its FlowMinimum.

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

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

### FlowSteps

The number of steps used when a producer is adjusting its flow from the Flow Maximum amount of messages to the Flow Minimum amount, or vice versa. Specifically, the Flow Interval adjustment period is divided into the number of Flow Steps (for example, 60 seconds divided by 6 steps is 10 seconds per step).

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.

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

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