Quota Resources Destination-Level Quota

14-8 Performance and Tuning for Oracle WebLogic Server topics is to assume that each current JMS message consumes 256 bytes of memory plus an additional 256 bytes of memory for each subscriber that hasnt acknowledged the message yet. For example, if there are 3 subscribers on a topic, then a single published message that hasnt been processed by any of the subscribers consumes 256 + 2563 = 1024 bytes even when the message is paged out. Although message header memory usage is typically significantly less than these rules of thumb indicate, it is a best practice to make conservative estimates on memory utilization. In prior releases, there were multiple levels of quotas: destinations had their own quotas and would also have to compete for quota within a JMS server. In this release, there is only one level of quota: destinations can have their own private quota or they can compete with other destinations using a shared quota. In addition, a destination that defines its own quota no longer also shares space in the JMS servers quota. Although JMS servers still allow the direct configuration of message and byte quotas, these options are only used to provide quota for destinations that do not refer to a quota resource.

14.7.1 Quota Resources

A quota is a named configurable JMS module resource. It defines a maximum number of messages and bytes, and is then associated with one or more destinations and is responsible for enforcing the defined maximums. Multiple destinations referring to the same quota share available quota according to the sharing policy for that quota resource. Quota resources include the following configuration parameters: For more information about quota configuration parameters, see QuotaBean in the Oracle WebLogic Server MBean Reference. For instructions on configuring a quota resource using the Administration Console, see Create a quota for destinations in the Oracle WebLogic Server Administration Console Help.

14.7.2 Destination-Level Quota

Destinations no longer define byte and messages maximums for quota, but can use a quota resource that defines these values, along with quota policies on sharing and competition. Table 14–1 Quota Parameters Attribute Description Bytes Maximum and Messages Maximum The Messages MaximumBytes Maximum parameters for a quota resource defines the maximum number of messages andor bytes allowed for that quota resource. 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 andor bytes quota. Quota Sharing The Shared parameter for a quota resource defines whether multiple destinations referring to the same quota resource compete for resources with each other. Quota Policy The Policy parameter defines how individual clients compete for quota when no quota is available. It affects the order in which send requests are unblocked when the Send Timeout feature is enabled on the connection factory, as described in Section 14.6, Tuning for Large Messages . Tuning WebLogic JMS 14-9 The Quota parameter of a destination defines which quota resource is used to enforce quota for the destination. This value is dynamic, so it can be changed at any time. However, if there are unsatisfied requests for quota when the quota resource is changed, then those requests will fail with a javax.jms.ResourceAllocationException .

14.7.3 JMS Server-Level Quota