This chapter explains the parameters that can be configured for JMS storage objects of type ‘Queue’. In general, these parameters are the most common ones used in the Point-to-Point (PTP) model of JMS and they can be configured in the default profile at the node FioranoMQ->Fiorano->mq->ptp->QueuingSubsystem through Offline configuration using Studio.
For information on how to configure the FioranoMQ Server in Offline mode, refer to Chapter 3: Offline Configuration through Profile Manager and for Online Configuration (through the Web Management Console), refer to Chapter 32: FioranoMQ Web Management Tool of FioranoMQ Handbook.
Note: From FioranoMQ 9.1.0 release onwards, a unique Destination Level Configuration support is included. For more on this, please refer to section 31.1 Support for Destination Level Configuration in the FioranoMQ Handbook.
UnAckedQueueBufferSize
UnAckedQueueBufferSize is the buffer size of the receiver queue for unAcked messages. Where the size of the message queue for unAcked messages exceeds this buffer limit, the client gets a message to commit the received messages.
Values: The default value set for this parameter is 10485760 bytes. Any positive integer can be assigned as a value for this parameter.
MaxNumberOfQueues
MaxNumberofQueues are the maximum number of queues that can be created. This includes Temporary Queues. The JMS provider allows the creation of queues upto the number of queues specified here. Attempts to create queues beyond the number of queues specified here will be.
Values: The default value set for this parameter is -1. This suggests that infinite queues may be created. Positive integers or -1 may be assigned to this parameter.
RedeliveryTriesOnListenerException
RedeliveryTriesOnListenerException parameter specifies the number of redelivery tries when RuntimeException is thrown in the Message Listener. This is used in AUTO_ACKNOWLEDGE or DUPS_OK_ACKNOWLEDGE mode only. The redelivered message is discarded once this value is reached.
Values: The default value set for this parameter is 2. Any positive integer may be assigned to this parameter. If this parameter is given a negative value, the message will not be delivered to the consumer.
Example:
Where there is a RuntimeException thrown while processing the message received by the MessageListener, it is ensured that the message gets redelivered before the number of attempts reaches this maximum limit specified. (This makes it compliant with JMS specifications.)
Dependencies:
Dependencies are occur only when the client session is either in AUTO_ACK or DUPS_OK_ACKNOWLEDGE modes.
DelayInMsgDeliveryOnListenerException
DelayinMsgDeliveryOnListenerException parameter specifies the delay in message redelivery when RuntimeException is thrown in Message Listener. This is used in AUTO_ACKNOWLEDGE or DUPS_OK_ACKNOWLEDGE mode only. The redelivered message is discarded once the maximum redelivery tries value that is specified is reached.
Values:
The default value for this parameter is -1. This indicates that there is no delay between the tries at redelivery of a message when RuntimeException occurs in the MessageListener. Any positive value can be assigned to this parameter. There will not be any delay between attempts if a negative value is assigned to this parameter.
Dependencies:
Dependencies occur only in when the client session is either in AUTO_ACK or DUPS_OK_ACKNOWLEDGE modes.CleanupDmqAtStartup
CleanupDmqAtStartup enabls the cleanup of the DeadMessageQueue at the startup of the Server. If this flag is set to true prior to the startup of the Server all messages from the SYSTEM_DEADMESSAGES_QUEUE will be purged.
Values: The default value for this parameter is false. Valid values for this parameter are true/false.
Restart of server required: TRUE
EnableSnooperOnAllQueues
EnableSnoperOnAllQueues specifies whether the snooper service is enabled on all queues. When snooping is enabled on a queue all messages that are sent to the queue are copied to a topic named SYSTEM_MESSAGESNOOPER_QUEUE. This insures that any subscribers registered on this topic can snoop the messages sent to that particular queue.
Values:
The default value for this parameter is false. The valid values for this parameter are true/false. When set to true a SnooperListener is added to each one of the queues and all the incoming messages are snooped prior to being added to the topic SYSTEM_MESSAGESNOOPER_QUEUE.
Example:
This parameter can be used when it is necessary to monitor messages being sent to the queues by the clients. To monitor messages that are being sent to queues enable this parameter and subscribe to the topic SYSTEM_MESSAGESNOOPER_QUEUE.
Restart of server required: FALSE
EnableDMQOnAllQueues
EnableDMQOnAllQueues specifies whether the DMQ service is enabled on all queues. When the DMQ service is enabled on a queue all expired messages that need to be stored are stored in the SYSTEM_DEADMESSAGES_QUEUE by default.
Values: The default value for this parameter is false. Valid values for this parameter are true/false.
Example:
This parameter can be used when it is necessary to monitor messages that have expired.
Dependencies:
The expired messages are stored only when the StoreWhenDead flag, set for FioranoMessage, is set to true. The ‘getter’ and ‘setter’ methods for this flag are getStoreWhenDead and setStoreWhenDead respectively.
Restart of server required: FALSE
PrefetchCount
PrefetchCount specifies the prefetch count for single receive calls. Prefetch count is the number of messages fetched in a single receive call. It denotes the maximum number of messages that are fetched from the Server in one single received call. The number of messages fetched also depends on the parameter MaxPrefetchSize. If the total size of the batch of messages exceeds the MaxPrefetchSize then the number of messages fetched may be less than the PrefetchCount set.
Values:
The default value of this parameter is thirty. Valid values are any positive integer values greater than or equal to the PrefetchThreshold value specified.
Dependencies:
If the message count to be delivered to the consumers approaches the PrefetchThreshold, then only the client can send a request to fetch the number of messages set by PrefetchCount value from the Server.
PrefetchThreshold
PrefetchThreshold is the message count used for a single receive call. When the number of messages in the message queue of the client approaches this limit the client sends a request to the Server to fetching more messages. The number of fetched messages depends upon the value of the PrefetchCount.
Values:
The default for this parameter is 1. Valid values for this parameter are any positive integre values less than the value of the PrefetchCount.
Dependencies:
If the message count approaches the PrefetchThreshold, only the client can send a request to fetch the number of messages set by the value of the PrefetchCount from the Server.
DefaultStorageTypeForQueues
DefaultStorageTypeForQueues string specifies the default storage type of the data related to all queues that may be used by the application.
Values:
The default value for this parameter is File. Valid values for this parameter are File/RDBMS. If this parameter is set to File all data about the queues is stored in the File Based Storage and the value of this parameter is set to RDBMS. All relating data about the queues is stored in RDBMS sbased Storage.
Dependencies:
If this value is set to RDBMS, then the parameter EnableRDBMS should be set to true. if this value is set to File, then the parameter EnableRDBMS should be set to false.
MaxPrefetchSize
MaxPrefetchSize specifies the maximum prefetched size of fetched messages in one receive call. It denotes the maximum size of the batch of messages that can be fetched from the Server.
Values:
The default value of this parameter is 264144 bytes, equivalent to 256KB. Valid values of this parameter include all positive integers.
Example:
If all the parameters are set to the default values and if the size of each message is 100KB then, at most, three messages can be fetched from the Server. This is because the total batch size exceedes the MaxPrefetchSize which is 256KB.
OverflowFromBottomEnabled
OverflowFromBottomEnabled concerns the overflow of non-persistent messages. This parameter determines whether messages are to be dropped from the bottom of the queue.
Values:
- Default value: False
- Valid values: True/False
DMQExpiryTime
Messages which are expired from a particular queue will have the ExpirationTime set based on the DMQExpiryTime value updated for that Queue/SubSystem level configurations.This is applicable only when DMQ is enabled on the queues.If this value is set to a positive integer, a timer is registered which cleans up the SYSTEM_DEADMESSAGES_QUEUE at regular intervals.
Values:
The default value for this parameter is 0 milliseconds. Valid values for this parameter include all positive integer values which falls in the Long range.
Restart of server required: TRUEEnableNotificationOnDeadMessage
EnableNotificationOnDeadMessages enables notification of DeadMessage. , When an expired message from a queue reaches the SYSTEM_DEADMESSAGES_QUEUE for storage, if this parameter is set to true an event will be raised.
Values:
The default value for this parameter is false. Valid values for this parameter are true/false.
Dependencies:
The DMQ should be enabled for the queue on which the message was originally sent. Only if the DMQ is enabled will the message be sent to the SYSTEM_DEADMESSAGES_QUEUE on expiry. Event notification will be activated only if the NotifyWhenDead flag for FioranoMessages is set to true. The ‘getter’ and ‘setter’ methods for this flag are getNotifyWhenDead and setNotifyWhenDead respectively.
Restart of server required: FALSEEnableMessageMonitoring
EnablingMessageMonitoring enables the monitoring of messages and stores this data. This parameter takes a maximum of five seconds to be enabled.
Values:
The default value for this parameter is false. Valid values that can be assigned to this parameter are true/false.
FilePath
FilePath returns the file path set to store data acquired through monitoring of Server messages.
Values:
The default value for this parameter is %FIORANO_HOME%\fmq\profiles\FioranoMQ\run\PTP\JMSX_MESSAGEMONITOR. Any valid file path can be assigned to this parameter.
Dependencies:
To store server message data, the EnableMessageMonitoring flag should be set to true.
TimeDuration
TimeDuration returns the time duration of messages received in seconds to enable monitoring message flow. The value for this parameter should be more than five seconds. This time duration is used to calculate the InBound and OutBound message rate (at the time the Server message data is being monitored).
Values:
The default value for this parameter is 3600 seconds. Valid values for this parameter include any positive integer values greater than five.
CleanupInterval
CleanupInterval specifies the interval after which the QueueCleaner utility cleans the messages from the queue. This parameter is useful only if IsDbCleanupEnabled is set to true.
Values:
- Default value: 60000
- Valid values: Any positive value in the long range.
Example:
When deleting expired messages from the queue the TimeDuration parameter is used. After the specified period of time the queue gets cleaned of all expired messages.
Restart of server required: TRUE
InMemoryBlockingInterval
InMemoryBlockingInterval is the blocking interval that pushs a message into the QueueBuffer if the queue is full.
Values:
- Default value: 10
- Valid values: Any positive value in the long range.
Example:
Blocks sender for the specified amount of time if the QueueBuffer is full.
Restart of server required: FALSE
InMemoryBufferSize
InMemoryBufferSize specifies the buffer size of the InMemory Cache. If the InMemoryBuffer is full, then reattempts to push the message will take place based on the value of the parameter MaxPushAttempts.. The wait interval is set using the parameter WaitBetweenAttempts.
Values:
- Default value: 1048576
- Valid values: Any positive value in long range
Restart of server required: FALSE
PersistentInMemoryBufferSize
PersistentInMemoryBufferSize specifies the buffer size of the InMemory Cache of persistent messages. If the PersistentInMemoryBuffer is full, then reattempts to push the message will take place based on the value of the parameter MaxPushAttempts. The wait interval is set using the parameter WaitBetweenAttempts.
Values:
- Default value: 524288
- Valid values: Any positive integer in the long range.
Restart of server required: FALSE
MaxPushAttempts
MaxPushAttempts is the maximum number of attempts for pushing InMemoryBuffer. This parameter is particularly useful when the InMemoryBuffer is full. A maximum number of attempts to push the message to InMemoryBuffer are allocated.
Values:
- Default value: 64
- Valid values: Any positive integrer value.
Restart of server required: FALSE
WaitBetweenAttempts
WaitBetweenAttempts specifies the wait time between attempts at pushing messages into a queue. This parameter is particularly useful when pushing incoming message is not successful in the first attempt. This parameter determines the amount of wait time before another attempt to push the message into InMemoryBuffer is undertaken.
Values:
- Default value: 16 (in milliseconds)
- Valid values: Any positive value in long range.
Restart of server required: FALSE
IsDbCleanupEnabled
IsDbCleanupEnabled specifies whether the queue cleaner utility is enabled or not
Values:
- Default value: False
- Valid values: True/False
Restart of server required: TRUE
UseInMemStatusCache
UseInMemStatusCache is the status Cache for messages.
Values:
- Default value: True
- Valid values: True/False
True - Uses InMemoryCache to store the status of the messages in DB (Deleted/Rolledback/Delivered and so on.)
Restart of server required: TRUE
LoadBitSetOnStartup
LoadBitSetOnStartup loads the InMemory message index status BitSet on startup.
Values:
- Default value: False
- Valid values: True/False
Restart of server required: TRUE
EnableGMSQueueExpose
EnableGMSQueueExpose is a boolean value that exposes the QueueAttributes at runtime on the GMS queue. If set to true, a runtime MBean relating to the GMS queue is exposed.
Values:
- Default value: False
- Valid values: True/False
Restart of server required: TRUE
Exclusive
Boolean indicates about the sharing of cache tables. If set to true, exclusive cache tables are created for each queue. Non-exclusive cache tables are not supported in FioranoMQ.
Values:
- Default value: True
- Valid values: True/False
JumpDeletedFiles
JumpDeletedFiles is a boolean value specifying whether the deleted table files may be jumped. If this flag is used it jumps the deleted cache table of files to the next undeleted message in the DB.
Values:
- Default value: False
- Valid values: True/False
Restart of server required: TRUE
DepthMonitoringEnabled
DepthMonitoringEnabled turns on or turns off depth (the number of pending messages) monitoring count at the Server level. If this flag is set to true, depth monitoring is enabled at the Server level. Based on the depth monitoring flag at queue level, depth monitoring is enabled or disabled for that particular queue. If this flag is set to false, depth monitoring won't work for any queue irrespective of whether this flag is set at the queue level.
Behavior at server level:
If this value is set to no at the Server level, queue depth monitoring is stopped and notifications are terminated. If this value is set to yes at Server level, queue depth monitoring is enabled or disabled based on the configuration of this property at the queue level.
Behavior at destination level:
This property will come into effect only if the queue depth monitoring is enabled at the Server level.
Values:
- Queue Subsystem level (Server level): no
- Destination level: no
Restart of server required: FALSE
DepthMonitoringLevels
Jmx notifications are fired when pending message count crosses one of the depth values specified. All thresholds should be specified as positive values with each of them separated by a comma, for example: '10,20,30'. The value specified will be used for all destinations unless explicitly stated that it is for a particular destination.
Behavior at server level:
Depth levels specified will be used only if the value for the property at queue level is null.
Behavior at destination level:
Depth levels specified here will override the value for levels specified at the Server level.
Values:
- Server level: null
- Destination level: null
Restart of server required: FALSE