Sun GlassFish Message Queue 4.4 Administration Guide

Routing and Delivery Properties

Table 17–2 lists the broker properties related to routing and delivery services. Properties that configure the automatic creation of destinations are listed in Table 17–3.

Table 17–2 Broker Routing and Delivery Properties

Property 

Type 

Default Value 

Description 

imq.system.max_count [Can be used with imqcmd update bkr command]

Integer 

-1

Maximum number of messages held by broker 

A value of -1 denotes an unlimited message count.

imq.system.max_size

String 

-1

Maximum total size of messages held by broker 

The value may be expressed in bytes, kilobytes, or megabytes, using the following suffixes:  

    b: Bytes


    k: Kilobytes (1024 bytes)


    m: Megabytes (1024 × 1024 = 1,048,576 bytes)


     

An unsuffixed value is expressed in bytes; a value of -1 denotes an unlimited message capacity.

     

Examples:

    1600: 1600 bytes


    1600b: 1600 bytes


    16k: 16 kilobytes (= 16,384 bytes)


    16m: 16 megabytes (= 16,777,216 bytes)


    -1: No limit


imq.message.max_size

String 

70m

Maximum size of a single message body 

The syntax is the same as for imq.system.max_size (see above).

imq.message.expiration.interval

Integer 

60

Interval, in seconds, at which expired messages are reclaimed 

imq.resourceState.threshold

Integer 

green: 0yellow: 80orange: 90red: 98

Percent utilization at which memory resource state is triggered (where resourceState is green, yellow, orange, or red)

imq.resourceState.count

Integer 

green: 5000yellow: 500orange: 50red: 0

Maximum number of incoming messages allowed in a batch before checking whether memory resource state threshold has been reached (where resourceState is green, yellow, orange , or red)

This limit throttles back message producers as system memory becomes increasingly scarce.  

imq.destination.DMQ.truncateBody

Boolean 

false

Remove message body before storing in dead message queue?  

If true, only the message header and property data will be saved.

imq.transaction.autorollback

Boolean 

false

Automatically roll back distributed transactions left in prepared state at broker startup?  

If false, transactions must be manually committed or rolled back using the Command utility (imqcmd).

imq.transaction.producer.maxNumMsgs

Integer 

1000

The maximum number of messages that a producer can process in a single transaction. It is recommended that the value be less than 5000 to prevent the exhausting of resources. 

imq.transaction.consumer.maxNumMsgs

Integer 

100

The maximum number of messages that a consumer can process in a single transaction. It is recommended that the value be less than 1000 to prevent the exhausting of resources. 

Table 17–3 Broker Properties for Auto-Created Destinations

Property 

Type 

Default Value 

Description 

imq.autocreate.queue [Can be used with imqcmd update bkr command] , [Queue destinations only]

Boolean 

true

Allow auto-creation of queue destinations?  

imq.autocreate.topic [Topic destinations only]

Boolean 

true

Allow auto-creation of topic destinations? 

imq.autocreate.reaptime

Integer 

120 seconds 

The delay, in seconds. before which auto-created destinations are removed from the system when they no longer have consumers nor contain messages, . A smaller value means that memory reclamation takes place more often. 

imq.autocreate.destination.maxNumMsgs

Integer 

100000

Maximum number of unconsumed messages 

A value of -1 denotes an unlimited number of messages.


Note –

When flow control is in effect (imq.autocreate.destination.limitBehavior = FLOW_CONTROL), it is possible for the specified message limit to be exceeded because the broker cannot react quickly enough to stop the flow of incoming messages. In such cases, the value specified for imq.autocreate.destination.maxNumMsgs serves as merely a hint for the broker rather than a strictly enforced limit. However, if the number of unconsumed messages would exceed imq.system.max_count, the broker generates a ResourceAllocationException indicating that the destination is full and rejecting new messages.


imq.autocreate.destination.maxBytesPerMsg

String 

10k

Maximum size, in bytes, of any single message 

The value may be expressed in bytes, kilobytes, or megabytes, using the following suffixes:  

    b: Bytes


    k: Kilobytes (1024 bytes)


    m: Megabytes (1024 × 1024 = 1,048,576 bytes)


     

An unsuffixed value is expressed in bytes; a value of -1 denotes an unlimited message size.

     

Examples:

    1600: 1600 bytes


    1600b: 1600 bytes


    16k: 16 kilobytes (= 16,384 bytes)


    16m: 16 megabytes (= 16,777,216 bytes)


    -1: No limit


imq.autocreate.destination.maxTotalMsgBytes

String 

10m

Maximum total memory, in bytes, for unconsumed messages

The syntax is the same as for imq.autocreate.destination.maxBytesPerMsg (see above).

imq.autocreate.destination.limitBehavior

String 

REJECT_NEWEST

Broker behavior when memory-limit threshold reached:  

    FLOW_CONTROL: Slow down producers


    REMOVE_OLDEST: Throw out oldest messages


    REMOVE_LOW_PRIORITY: Throw out lowest-priority messages according to age; no notification to producing client


    REJECT_NEWEST: Reject newest messages; notify producing client with an exception only if message is persistent


When FLOW_CONTROL is specified, it is still possible for the number of messages to exceed imq.system.max_count. In this situation, the broker generates a ResourceAllocationException indicating that the destination is full and rejecting new messages.

     

If the value is REMOVE_OLDEST or REMOVE_LOW_PRIORITY and the imq.autocreate.destination.useDMQ property is true, excess messages are moved to the dead message queue.

imq.autocreate.destination.maxNumProducers

Integer 

100

Maximum number of message producers for destination

When this limit is reached, no new producers can be created. A value of -1 denotes an unlimited number of producers.

imq.autocreate.queue.maxNumActiveConsumers

Integer 

-1

Maximum number of active message consumers in load-balanced delivery from queue destination

A value of -1 denotes an unlimited number of consumers.

imq.autocreate.queue.maxNumBackupConsumers

Integer 

0

Maximum number of backup message consumers in load-balanced delivery from queue destination

A value of -1 denotes an unlimited number of consumers.

imq.autocreate.queue.consumerFlowLimit

Integer 

1000

Maximum number of messages delivered to queue consumer in a single batch

In load-balanced queue delivery, this is the initial number of queued messages routed to active consumers before load balancing begins. A destination consumer can override this limit by specifying a lower value on a connection.  

A value of -1 denotes an unlimited number of messages.

imq.autocreate.topic.consumerFlowLimit

Integer 

1000

Maximum number of messages delivered to topic consumer in a single batch

A value of -1 denotes an unlimited number of consumers.

imq.autocreate.destination.isLocalOnly

Boolean 

false

Local delivery only?  

This property applies only to destinations in broker clusters, and cannot be changed once the destination has been created. If true, the destination is not replicated on other brokers and is limited to delivering messages only to local consumers (those connected to the broker on which the destination is created).

imq.autocreate.queue.localDeliveryPreferred

Boolean 

false

Local delivery preferred?  

This property applies only to load-balanced queue delivery in broker clusters. If true, messages will be delivered to remote consumers only if there are no consumers on the local broker; the destination must not be restricted to local-only delivery (imq.autocreate.destination.isLocalOnly must be false).

imq.autocreate.destination.useDMQ

Boolean 

true

Send dead messages to dead message queue?  

If false, dead messages will simply be discarded.

validateXMLSchemaEnabled

Boolean 

false

XML schema validation is enabled? 

If set to false or not set, then XML schema validation is not enabled for the destination.

XMLSchemaURIList

String 

null 

Space separated list of XML schema document (XSD) URI strings  

The URIs point to the location of one or more XSDs to use for XML schema validation, if enabled.  

Use double quotes around this value if multiple URIs are specified. 

Example: 

http://foo/flap.xsd http://test.com/test.xsd

If this property is not set or null and XML validation is enabled, XML validation is performed using a DTD specified in the XML document. 

reloadXMLSchemaOnFailure

Boolean 

false

Reload XML schema on failure enabled? 

If set to false or not set, then the schema is not reloaded if validation fails.