# QuotaBean

Overview | Related MBeans | Attributes | Operations

## Overview

Quota beans control the allotment of system resources available to destinations. For example, the number of bytes a destination is allowed to store can be configured with a QuotaBean.

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.QuotaBean`
Factory Methods | Factory methods in JMSBean
Additional Access Points | In addition to accessing this MBean by invoking a factory method, you can also access this MBean from the following MBean attributes:
DestinationBean.Quota JMSBean.Quotas QueueBean.Quota TemplateBean.Quota TopicBean.Quota | UniformDistributedDestinationBean.Quota UniformDistributedQueueBean.Quota UniformDistributedTopicBean.Quota

## Attributes

This section describes the following attributes:

BytesMaximum MessagesMaximum Name Notes | Policy Shared

### BytesMaximum

The total number of bytes that can be stored in a destination that uses this quota.

A value of zero means that no messages can be placed on a destination without exceeding the quota. A value of -1 prevents WebLogic Server from imposing a limit.

Because excessive bytes volume can cause memory saturation, BEA recommends that the maximum corresponds to the amount of system memory that is available after accounting for the rest of your application load.

No consideration is given to messages that are pending; that is, messages that are in-flight, delayed, or otherwise inhibited from delivery still count against the message and/or bytes quota.This attribute is dynamic and can be changed at any time. If the quota is lowered and the quota object is now over quota, then subsequent requests for quota will be denied until quota is available. If the quota is raised, then this may allow the quota object to satisfy existing requests for quota.

Note: If a JMS template is used for distributed destination members, then this maximum applies only to those specific members and not the distributed destination set as a whole.

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

### MessagesMaximum

The total number of messages that can be stored in a destination that uses this quota.

A value of zero means that no messages can be placed on a destination without exceeding the quota. A value of -1 prevents WebLogic Server from imposing a limit.

Because excessive bytes volume can cause memory saturation, BEA recommends that the maximum corresponds to the amount of system memory that is available after accounting for the rest of your application load.

No consideration is given to messages that are pending; that is, messages that are in-flight, delayed, or otherwise inhibited from delivery still count against the message and/or bytes quota.This attribute is dynamic and can be changed at any time. If the quota is lowered and the quota object is now over quota, then subsequent requests for quota will be denied until quota is available. If the quota is raised, then this may allow the quota object to satisfy existing requests for quota.

Note: If a JMS template is used for distributed destination members, then this maximum applies only to those specific members and not the distributed destination set as a whole.

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

### Name

The name of this entity, represented in XML as a attribute

Many of the elements within the JMS module are named entities. All of the named entities encased by a type in the XML file must be unique. This is the identifier used to delineate a particular entity within the JMS module.

This attribute cannot be modified externally from the module (for example with a deployment plan) because it may be used inside the module referentially.

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

### Notes

Optional information that you can include to describe this named JMS descriptor bean.

JMS module saves this note in the JMS descriptor file 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

### Policy

For destinations that use this quota, this policy determines whether to deliver smaller messages before larger ones when a destination has exceeded its message quota.

`FIFO` (first-in, first-out) indicates that requests for quota are submitted in the order they are received. If a given request for quota cannot be satisfied, and the client requesting the quota is willing to wait, then that request will block all other requests for quota until the request is satisfied or times out. This prevents smaller messages from being delivered when larger requests are already waiting for space.

`Preemptive` indicates that subsequent requests can preempt previously unsatisfied requests. That is, if there is sufficient quota for the current request, then that space is used even if there are other requests waiting for quota. When quota is limited, the Preemptive policy can result in the starvation of larger requests.

Privileges | Read/Write
Type | java.lang.String
Default Value | FIFO
Legal Values | FIFO Preemptive

### Shared

Indicates whether this quota is shared by multiple destinations that refer to it.

If `Shared` is enabled (the default), all destinations referring to the quota object compete for resources the resources defined by that object. If one destination consumes a large number of messages or bytes, then this will prevent other destinations from obtaining quota.

If `Shared` is disabled, the quota object behaves as a template. Each destination referring to the quota object gets its own internal instance of the object for tracking quota.

Destinations within the same JMS module may share quotas in any way they want. However, quota sharing only takes place for destinations within the same JMS server. In other words, if destinations X and Y both share the same quota Q, and the quota Q has `Shared` enabled, then X and Y will only share quota if both are deployed to the same JMS server.

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

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