Oracle Fusion Middleware
Java API Reference for Oracle WebLogic Server
12c (12.1.3)

Part Number E41849-02

weblogic.j2ee.descriptor.wl
Interface FlowControlParamsBean

All Superinterfaces:
SettableBean

public interface FlowControlParamsBean
extends SettableBean

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.

Access limited to the following security roles:
Deployer

Method Summary
 int getFlowInterval()
           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.
 int getFlowMaximum()
           The maximum number of messages-per-second allowed for a producer that is experiencing a threshold condition.
 int getFlowMinimum()
           The minimum number of messages-per-second allowed for a producer that is experiencing a threshold condition.
 int getFlowSteps()
           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.
 String getOneWaySendMode()
          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.
 int getOneWaySendWindowSize()
           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.
 boolean isFlowControlEnabled()
           Specifies whether a producer created using a connection factory allows flow control.
 void setFlowControlEnabled(boolean flowControlEnabled)
          Sets the value of the FlowControlEnabled attribute.
 void setFlowInterval(int flowInterval)
          Sets the value of the FlowInterval attribute.
 void setFlowMaximum(int flowMaximum)
          Sets the value of the FlowMaximum attribute.
 void setFlowMinimum(int flowMinimum)
          Sets the value of the FlowMinimum attribute.
 void setFlowSteps(int flowSteps)
          Sets the value of the FlowSteps attribute.
 void setOneWaySendMode(String oneWaySendMode)
          Sets the value of the OneWaySendMode attribute.
 void setOneWaySendWindowSize(int oneWaySendWindowSize)
          Sets the value of the OneWaySendWindowSize attribute.
 
Methods inherited from interface weblogic.descriptor.SettableBean
isSet, unSet
 

Method Detail

getFlowMinimum

int getFlowMinimum()

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.

Returns:
The lower bound flow-control threshold for new connections
Changes take effect after you redeploy the module or restart the server.
Default Value:
50

setFlowMinimum

void setFlowMinimum(int flowMinimum)
                    throws IllegalArgumentException

Sets the value of the FlowMinimum attribute.

Parameters:
flowMinimum - The lower bound flow-control parameter for all new connections
Throws:
IllegalArgumentException
See Also:
FlowControlParamsBean.getFlowMinimum()
Changes take effect after you redeploy the module or restart the server.
Maximum Value:
java.lang.Integer.MAX_VALUE
Minimum Value:
1

getFlowMaximum

int getFlowMaximum()

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.

Returns:
The upper bound flow-control threshold for new connections
Changes take effect after you redeploy the module or restart the server.
Default Value:
500

setFlowMaximum

void setFlowMaximum(int flowMaximum)
                    throws IllegalArgumentException

Sets the value of the FlowMaximum attribute.

Parameters:
flowMaximum - The upper bound flow-control threshold for new connections
Throws:
IllegalArgumentException
See Also:
FlowControlParamsBean.getFlowMaximum()
Changes take effect after you redeploy the module or restart the server.
Maximum Value:
java.lang.Integer.MAX_VALUE
Minimum Value:
1

getFlowInterval

int getFlowInterval()

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.

Returns:
The interval for a producer to adjust its flow in seconds
Changes take effect after you redeploy the module or restart the server.
Default Value:
60

setFlowInterval

void setFlowInterval(int flowInterval)
                     throws IllegalArgumentException

Sets the value of the FlowInterval attribute.

Parameters:
flowInterval - The interval for a producer to adjust its flow in seconds
Throws:
IllegalArgumentException
See Also:
FlowControlParamsBean.getFlowInterval()
Changes take effect after you redeploy the module or restart the server.
Maximum Value:
java.lang.Integer.MAX_VALUE
Minimum Value:
0

getFlowSteps

int getFlowSteps()

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:

Returns:
The number of units the flow will be adjusted
Changes take effect after you redeploy the module or restart the server.
Default Value:
10

setFlowSteps

void setFlowSteps(int flowSteps)
                  throws IllegalArgumentException

Sets the value of the FlowSteps attribute.

Parameters:
flowSteps - The number of units the flow will be adjusted
Throws:
IllegalArgumentException
See Also:
FlowControlParamsBean.getFlowSteps()
Changes take effect after you redeploy the module or restart the server.
Maximum Value:
java.lang.Integer.MAX_VALUE
Minimum Value:
1

isFlowControlEnabled

boolean isFlowControlEnabled()

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.

Returns:
true if the producer will throttle its output during peak traffic; false otherwise
Changes take effect after you redeploy the module or restart the server.
Default Value:
true

setFlowControlEnabled

void setFlowControlEnabled(boolean flowControlEnabled)
                           throws IllegalArgumentException

Sets the value of the FlowControlEnabled attribute.

Parameters:
flowControlEnabled - true if the producer should throttle its output during peak traffic; false otherwise
Throws:
IllegalArgumentException
See Also:
FlowControlParamsBean.isFlowControlEnabled()
Changes take effect after you redeploy the module or restart the server.

getOneWaySendMode

String getOneWaySendMode()

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.

Notes:

Returns:
weblogic.j2ee.descriptor.wl.constants.JMSConstants.DISABLED, weblogic.j2ee.descriptor.wl.constants.JMSConstants.ENABLED, or weblogic.j2ee.descriptor.wl.constants.JMSConstants.TOPIC_ONLY
Changes take effect after you redeploy the module or restart the server.
Default Value:
weblogic.j2ee.descriptor.wl.constants.JMSConstants.DISABLED

setOneWaySendMode

void setOneWaySendMode(String oneWaySendMode)
                       throws IllegalArgumentException

Sets the value of the OneWaySendMode attribute.

Parameters:
oneWaySendMode -
Throws:
IllegalArgumentException
See Also:
FlowControlParamsBean.getOneWaySendMode()
Changes take effect after you redeploy the module or restart the server.

getOneWaySendWindowSize

int getOneWaySendWindowSize()

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.

Returns:
maximum number of one way message send before throttling with a two way message send
See Also:
FlowControlParamsBean.getOneWaySendMode()
Changes take effect after you redeploy the module or restart the server.
Default Value:
1

setOneWaySendWindowSize

void setOneWaySendWindowSize(int oneWaySendWindowSize)
                             throws IllegalArgumentException

Sets the value of the OneWaySendWindowSize attribute.

Parameters:
oneWaySendWindowSize - maximum number of one way message send before throttling with a two way message send
Throws:
IllegalArgumentException
See Also:
FlowControlParamsBean.getOneWaySendWindowSize()
Changes take effect after you redeploy the module or restart the server.
Maximum Value:
java.lang.Integer.MAX_VALUE
Minimum Value:
1

Copyright 1996, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

Oracle Fusion Middleware
Java API Reference for Oracle WebLogic Server
12c (12.1.3)

Part Number E41849-02