Class: com.sybase.jms.server.MessageQueue (JMS Message Queue) EAServer 6.3 Help
Description Allows configuration of JMS message queues for the Sybase JMS provider. Message queues do not need to be preconfigured unless their properties require non-default values. A JMS client using the Sybase JMS initial context factory (com.sybase.jms.client.InitialContectFactory) can look up preconfigured queues by name. To look up queues which have not been preconfigured, the client must use a JNDI name ending with "Queue". Or the client can use the javax.jms.Session.createQueue API to look up queues with arbitrary names, whether or not the queues have been preconfigured.

To override default properties for JMS temporary queues, you can configure the queue with name "javax.jms.TemporaryQueue" (see also the temporaryQueueTemplate connection factory property).

Configuration See Set Properties Task.
Properties automaticRecoveryTimeout, clusterPartition, compressStoredMessages, consumerRoles, dataSource, databaseTable, duplicateDetectionKey, duplicateDetectionProtocol, duplicateDetectionTable, duplicateDetectionTimeout, idleConnectionTimeout, ignoreDuplicateMessages, maximumMessagesInMemory, maximumWaitingForAcknowledge, processMessagesInOrder, producerRoles, pullMessagesFrom, pushMessagesTo, queueID, storeTransientMessages, suspendMessageDelivery
Files Repository/Instance/com/sybase/jms/server/MessageQueue/*.properties

Property: automaticRecoveryTimeout (Automatic Recovery Timeout)
Description When a message is received from a queue by a client but not acknowledged, the message will be automatically recovered so that it can be received again. It is assumed that if the recovery timeout is exceeded, the client has failed. The automatic recovery timeout (specified in seconds) determines how quickly unacknowledged messages will be recovered. If the messages for a particular queue may take a long time for the client to process, the automatic recovery timeout should be increased accordingly.
Default Value 300
Minimum Value 1
Maximum Value 2147483647

Property: clusterPartition (Cluster Partition)
Description Required. When running in a cluster, each message queue is assigned to a single cluster partition, meaning that any one of the servers in that partition can manage the queue at any point in time. The "default" partition contains all servers in the cluster. When a server fails, another server in the same partition takes over management of the queue. This property is ignored for non-clustered servers.
Default Value default

Property: compressStoredMessages (Compress Stored Messages)
Description Indicates whether messages should be compressed before storage in the message store (database table). This will increase CPU utilization of the application server while reducing the CPU and disk utilization of the database server. It is recommended that you carry out performance tests to see whether enabling message compression is beneficial in your environment.
Default Value false
Legal Values false, true

Property: consumerRoles (Consumer Roles)
Description A comma-separated list of security roles. If this list is not empty, any client wishing to browse or receive messages from the queue must be a member of at least one of the listed roles.

Property: dataSource (Data Source)
Description Required. The name of a data source indicating the database in which persistent and transient overflow messages will be stored. If a queue uses a different data source from other resources involved in a transaction (such as direct JDBC access or EJB entity beans), achieving atomicity between message queue operations and other resource access will require the data sources to be configured for XA two phase commit. Unless you have a particular reason to store JMS messages outside the "default" data source, you should not change this property.
Default Value message.db

Property: databaseTable (Database Table)
Description The name of a database table in which persistent and transient overflow messages for this queue will be stored.
Default Value jms_pm

Property: duplicateDetectionKey (Duplicate Detection Key)
Description The name of a JMS message property (or JMS message header, "JMSMessageID" or "JMSCorrelationID") whose value is used as a key for the detection of duplicate messages. It is assumed that all messages have a distinct value for the specified key, and any repeat occurrence of the key in a subsequent message is an indication of a duplicate message that should be ignored.
Default Value JMSMessageID

Property: duplicateDetectionProtocol (Duplicate Detection Protocol)
Description Required. A setting of "optimistic" will optimize the detection of duplicates by using deferred inserts and checking for duplicate key exceptions (from the duplicate detection table). As a result, when duplicates are detected, transaction rollbacks will occur, and automatic transaction retry adds non-deferred duplicate checking. A setting of "pessimistic" will always use non-deferred duplicate checking. When there are few duplicates, "optimistic" will be more efficient. When there are many duplicates, "pessimistic" may be more efficient.
Default Value optimistic
Legal Values optimistic, pessimistic

Property: duplicateDetectionTable (Duplicate Detection Table)
Description A database table that is used to detect duplicate messages. The database table must be in the database indicated by dataSource.
Default Value jms_dd

Property: duplicateDetectionTimeout (Duplicate Detection Timeout)
Description The number of seconds that an entry may exist in duplicateDetectionTable before automatic removal. Duplicates cannot be reliably detected if they arrive after the timeout period has expired (since delivery of the first copy of a message).
Default Value 3600
Minimum Value 0
Maximum Value 2147483647

Property: idleConnectionTimeout (Idle Connection Timeout)
Description Determines how many seconds a queue will be retained in memory when it is idle, that is when the queue is not being actively accessed by clients or server components.
Default Value 60
Minimum Value 1
Maximum Value 2147483647

Property: ignoreDuplicateMessages (Ignore Duplicate Messages)
Description Enables checking for for duplicate messages on 'send'. Any duplicate messages are ignored.

See also: duplicateDetectionKey.

Default Value false
Legal Values false, true

Property: maximumMessagesInMemory (Maximum Messages In Memory)
Description Specifies the maximum number of messages that will be held in memory for this queue. Keeping more messages in memory generally improves performance. Persistent messages are always stored in the database, and some will be held in memory to improve performance. Non-persistent messages are stored in the database only if maximumMessagesInMemory is exceeded, and the storeTransientMessages property is true. Non-persistent messages will be discarded if maximumMessagesInMemory is exceeded, and the storeTransientMessages property is false.
Default Value 1000
Minimum Value 1
Maximum Value 2147483647

Property: maximumWaitingForAcknowledge (Maximum Received Messages
Waiting For Acknowledgement)
Description Specifies the maximum number of messages that can be received from this queue without being acknowledged. If this is greater than the maximumMessagesInMemory property, then the value of maximumMessagesInMemory will be applied instead. No additional messages will be received by clients until the outstanding messages have been acknowledged. A value of zero indicates no limit, other than the limit implied by the maximumMessagesInMemory property.
Default Value 0
Minimum Value 0
Maximum Value 2147483647

Property: processMessagesInOrder (Process Messages In Order)
Description Messages are always received in order, however when multiple receivers process the same queue, or messages are received and not acknowledged (and then subsequently recovered), there is a possibility of processing messages out of order. Setting processMessagesInOrder to true is equivalent to setting maximumWaitingForAcknowledge to 1, and has the effect of ensuring that messages are processed strictly in sequence, one at a time.
Default Value false
Legal Values false, true

Property: producerRoles (Producer Roles)
Description A comma-separated list of security roles. If this list is not empty, any client wishing to send messages to the queue must be a member of at least one of the listed roles.

Property: pullMessagesFrom (Pull Messages From)
Description Specifies that messages should be pulled into this queue from another queue on a remote JMS provider. The syntax of this property is "queue-name@provider-name", where provider-name is the name of a configured JMS provider, and queue-name is an arbitrary remote queue name.

For propagation of persistent messages, you can assume "exactly-once" propagation if using a JMS provider configured with a JNDI Initial Context Factory of "com.sybase.jms.client.InitialContextFactory", or if using a JMS provider configured to use a resource adapter where the resource adapter is configured to support two phase commit and the dataSource property of this (local) queue is configured to support two phase commit. Otherwise, you can assume "at-least once" propagation of messages.

The remote queue name may contain one or more substitution expressions of the form "${var}", where var is the name of a local Java system property.

Property: pushMessagesTo (Push Messages To)
Description Specifies that messages should be pushed from this queue into one or more queues or topics on a remote JMS provider. The syntax of this property is "remote-dest@provider-name", where provider-name is the name of a configured JMS provider, and remote-dest specifies one or more remote destinations (queues or topics). The syntax of remote-dest is a single destination or a comma-separated list of destinations. Each destination is one of:
  • queue-name
  • queue:queue-name
  • topic:topic-name

For propagation of persistent messages, you can assume "exactly-once" propagation if using a JMS provider configured with a JNDI Initial Context Factory of "com.sybase.jms.client.InitialContextFactory", or if using a JMS provider configured to use a resource adapter where the resource adapter is configured to support two phase commit and the dataSource property of this (local) queue is configured to support two phase commit. Otherwise, you can assume "at-least once" propagation of messages.

A destination name may contain one or more substitution expressions of the form "${var}", where var is the name of a local Java system property or JMS message header property. If a property referenced by a substitution expression exists both as a message header property and a system property, the message header property takes precedence. Note that using message header properties in determining the destination queue or topic name allows you to achieve a limited form of content-based routing.

Property: queueID (Queue ID (Short Name))
Description An alternate, usually shorter, name for this queue, intended to be used to optimize the storage of persistent messages for this queue. By default, the full queue name is used for storage of persistent messages.

Property: storeTransientMessages (Store Transient Messages)
Description Indicates whether transient (non-persistent) messages in this queue will be saved in the message store when the queue overflows (see maximumMessagesInMemory) or when the queue times out due to client inactivity. Messages not saved in the message store in one of these situations will be discarded.
Default Value true
Legal Values false, true

Property: suspendMessageDelivery (Suspend Message Delivery)
Description Indicates whether message delivery for this queue should be suspended.
Default Value false
Legal Values false, true