Class: com.sybase.jms.server.MessageTopic (JMS Message Topic) EAServer 6.3 Help
Description Allows configuration of JMS message topics for the Sybase JMS provider. Message topics 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 topics by name. To look up topics which have not been preconfigured, the client must use a JNDI name ending with "Topic". Or the client can use the javax.jms.Session.createTopic API to look up topics with arbitrary names, whether or not the topics have been preconfigured.

Each topic subscription is managed internally by a corresponding queue. The queue properties for each subscription queue are taken from the topic's corresponding properties. In other words, the topic's properties are used as a template for the properties of the internal subscription queues. Internal subscription queues have names that begin with "ds~" (for durable subscriptions) or "ts~" (for non-durable subscriptions). You may see these names when viewing statistics or browsing the jms_pm or jms_ts database tables. You should not attempt to explicitly configure properties for internal subscription queues. Use topic properties to indirectly configure the internal subscription queues.

To override default properties for JMS temporary topics, you can configure the topic with name "javax.jms.TemporaryTopic" (see also the temporaryTopicTemplate 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, storeTransientMessages, suspendMessageDelivery
Files Repository/Instance/com/sybase/jms/server/MessageTopic/*.properties

Property: automaticRecoveryTimeout (Automatic Recovery Timeout)
Description Each topic subscription is managed internally by a corresponding queue. The queue automaticRecoveryTimeout property for each subscription queue is taken from the topic's automaticRecoveryTimeout property.
Default Value 60
Minimum Value 1
Maximum Value 2147483647

Property: clusterPartition (Cluster Partition)
Description Required. Each topic subscription is managed internally by a corresponding queue. The queue clusterPartition property for each subscription queue is taken from the topic's clusterPartition property.
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 subscribe to receive messages from the topic must be a member of at least one of the listed roles.

Property: dataSource (Data Source)
Description Required. Each topic subscription is managed internally by a corresponding queue. The queue dataSource property for each subscription queue is taken from the topic's dataSource property.
Default Value message.db

Property: databaseTable (Database Table)
Description Each topic subscription is managed internally by a corresponding queue. The queue databaseTable property for each subscription queue is taken from the topic's databaseTable property.
Default Value jms_pm

Property: duplicateDetectionKey (Duplicate Detection Key)
Description Each topic subscription is managed internally by a corresponding queue. The queue duplicateDetectionKey property for each subscription queue is taken from the topic's duplicateDetectionKey property.
Default Value JMSMessageID

Property: duplicateDetectionProtocol (Duplicate Detection Protocol)
Description Required. Each topic subscription is managed internally by a corresponding queue. The queue duplicateDetectionProtocol property for each subscription queue is taken from the topic's duplicateDetectionProtocol property.
Default Value optimistic
Legal Values optimistic, pessimistic

Property: duplicateDetectionTable (Duplicate Detection Table)
Description Each topic subscription is managed internally by a corresponding queue. The queue duplicateDetectionTable property for each subscription queue is taken from the topic's duplicateDetectionTable property.
Default Value jms_dd

Property: duplicateDetectionTimeout (Duplicate Detection Timeout)
Description Each topic subscription is managed internally by a corresponding queue. The queue duplicateDetectionTimeout property for each subscription queue is taken from the topic's duplicateDetectionTimeout property.
Default Value 3600
Minimum Value 0
Maximum Value 2147483647

Property: idleConnectionTimeout (Idle Connection Timeout)
Description Each topic subscription is managed internally by a corresponding queue. The queue idleConnectionTimeout property for each subscription queue is taken from the topic's idleConnectionTimeout property.
Default Value 60
Minimum Value 1
Maximum Value 2147483647

Property: ignoreDuplicateMessages (Ignore Duplicate Messages)
Description Each topic subscription is managed internally by a corresponding queue. The queue ignoreDuplicateMessages property for each subscription queue is taken from the topic's ignoreDuplicateMessages property.
Default Value false
Legal Values false, true

Property: maximumMessagesInMemory (Maximum Messages In Memory)
Description Each topic subscription is managed internally by a corresponding queue. The queue maximumMessagesInMemory property for each subscription queue is taken from the topic's maximumMessagesInMemory property.
Default Value 10
Minimum Value 1
Maximum Value 2147483647

Property: maximumWaitingForAcknowledge (Maximum Received Messages
Waiting For Acknowledgement)
Description Each topic subscription is managed internally by a corresponding queue. The queue maximumWaitingForAcknowledge property for each subscription queue is taken from the topic's maximumWaitingForAcknowledge property.
Default Value 0
Minimum Value 0
Maximum Value 2147483647

Property: processMessagesInOrder (Process Messages In Order)
Description Each topic subscription is managed internally by a corresponding queue. The queue processMessagesInOrder property for each subscription queue is taken from the topic's processMessagesInOrder property.
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 publish messages to the topic 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 topic from another topic on a remote JMS provider. The syntax of this property is "topic-name@provider-name", where provider-name is the name of a configured JMS provider, and topic-name is an arbitrary remote 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 the JMS provider guarantees to provide a unique message ID for each received message.

The remote topic 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 topic 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, if the resource adapter 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 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: storeTransientMessages (Store Transient Messages)
Description Each topic subscription is managed internally by a corresponding queue. The queue storeTransientMessages property for each subscription queue is taken from the topic's storeTransientMessages property.
Default Value false
Legal Values false, true

Property: suspendMessageDelivery (Suspend Message Delivery)
Description Each topic subscription is managed internally by a corresponding queue. The queue suspendMessageDelivery property for each subscription queue is taken from the topic's suspendMessageDelivery property.
Default Value false
Legal Values false, true