Administration Console Online Help

Previous Next Open TOC in new window
Content starts here

JMS Connection Factory: Configuration: Flow Control

Configuration Options     Related Tasks     Related Topics

Flow control allows you to enable a JMS server or destination to slow down message producers when it determines that it is becoming overloaded. Specifically, when a JMS server/destination exceeds its specified bytes or messages thresholds, it instructs producers to limit their message flow (messages per second).

Use this page allows to define the flow control configuration for this JMS connection factory.

Configuration Options

Name Description
Flow Maximum

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.

MBean Attribute (Does not apply to application modules) :
FlowControlParamsBean.FlowMaximum

Minimum value: 1

Maximum value: 2147483647

Flow Minimum

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.

MBean Attribute (Does not apply to application modules) :
FlowControlParamsBean.FlowMinimum

Minimum value: 1

Maximum value: 2147483647

Flow Interval

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.

MBean Attribute (Does not apply to application modules) :
FlowControlParamsBean.FlowInterval

Minimum value: 0

Maximum value: 2147483647

Flow Steps

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.

MBean Attribute (Does not apply to application modules) :
FlowControlParamsBean.FlowSteps

Minimum value: 1

Maximum value: 2147483647

Flow Control Enabled

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

MBean Attribute (Does not apply to application modules) :
FlowControlParamsBean.FlowControlEnabled

One-Way Send Mode

Specifies whether message producers created using this connection factory are allowed to do one-way message sends to improve typical non-persistent, non-transactional messaging performance. When enabled, the associated queue senders and/or topic publishers can send messages without internally waiting for a response from the target destination's host JMS server.

One-way sends are supported only when the connection factory hosting the producer and the JMS server hosting the target destination are targeted to the same WebLogic Server instance. In addition, one-way sends are not supported for higher quality-of-service (QOS) features, such as XA, transacted sessions, persistent messaging, unit-of-order, unit-of-work, distributed destinations, and client-side store-and-forward. If the producer and target destination are in separate domains, or if any of these higher QOS features are detected, then the one-way mode setting will be ignored and standard two-way sends will be used instead.

  • Disabled

    One-way send is disabled.

  • Enabled

    One-way send is permitted for queue senders or topic publishers.

  • Topic Only

    Only topic publishers are permitted to do one-way sends.

Notes:

  • One-way message sends are disabled if your connection factory is configured with XA Connection Factory Enabled. This setting disables one-way sends whether or not the sender actually uses transactions.

  • To benefit from one-way performance, the default One-Way Send Window Size value must also be configured higher. After every OneWaySendWindowSize - 1 number of messages, a two-way is used instead of a one-way, so all messages are actually two-way when the OneWaySendWindowSize = 1.

MBean Attribute (Does not apply to application modules) :
FlowControlParamsBean.OneWaySendMode

One-Way Send Window Size

Specifies the maximum number of sent messages per window when One-Way Send Mode is set to allow queue senders and/or topic publishers to make one-way sends. The window size determines when a two-way message is required to regulate the producer before it can continue making additional one-way sends.

To benefit from one-way performance, the default One-Way Send Window Size value must be configured higher in addition to enabling one-way sends. After every OneWaySendWindowSize - 1 number of messages, a two-way is used instead of a one-way, so all messages are actually two-way when the OneWaySendWindowSize = 1.

MBean Attribute (Does not apply to application modules) :
FlowControlParamsBean.OneWaySendWindowSize

Minimum value: 1

Maximum value: 2147483647

Related Tasks

Related Topics


Back to Top