Deploying and Managing Apama Applications > Correlator-Integrated Messaging for JMS > Logging correlator-integrated messaging for JMS status
Logging correlator-integrated messaging for JMS status
The correlator writes status information to its log file every five seconds or at an interval that you set with the --logQueueSizePeriod option. In addition to the standard correlator status information described in Logging correlator status, correlators that are configured for integrated messaging log JMS status information. This information is logged in the following form:

INFO [20032] - Correlator Status: sm=2 nctx=1 ls=4 rq=0 eq=0 iq=0 oq=0 rx=8
tx=6 rt=0 nc=1 vm=251384 runq=0
INFO [20032:Status] - JMS Status: s=1 tx=6 sRate=1,200 sOutst=9,005 r=2
rx=4 rRate=1,180 rWindow=-1 rRedel=3 rMaxDeliverySecs=2.1
rDupsDet=2 rDupIds=2,005,023 connErr=2 jvmMB=49
Status information logged by correlators that are configured for integrated messaging is described in the following sections.
Correlator status log fields related to JMS
Field
Full name
Description
s
Number of senders
The current number of JMS senders (both static and dynamic) on all JMS connections.
tx
Sent events
The total number of events emitted to a sender that have been fully processed (either sent to JMS or exhausted the maximum failure retry limit). Includes events sent to dynamic senders that have since been removed, but does not include events sent before the correlator was restarted.
sRate
Send throughput rate
The total number of events sent per second across all senders, calculated over the interval since the last status line (typically 5 seconds).
sOutst
Outstanding sent events
The total number of events that have been emitted by EPL but are still queued waiting to be sent to JMS.
r
Number of receivers
The current number of JMS receivers (both static and dynamic) on all JMS connections.
rx
Received messages
The total number of messages received from JMS, including messages received but not yet mapped to Apama events and added to the input queue of each public context. Includes events received by dynamic receivers that have now been removed, but does not include events received before the correlator was restarted, nor does it include any JMSReceiverFlowControlMarker events enqueued when the receiverFlowControl is enabled.
rRate
Received throughput rate
The total number of JMS messages received per second across all receivers, calculated over the interval since the last status line (typically 5 seconds).
rWindow
Receiver flow control window size
If receiverFlowControl is disabled for all receivers, this has the special value "-1". If any receivers have flow control enabled, rWindow gives a measure of the number of events that can be received before all flow controlled receivers will block, calculated as the sum of all the non-negative receiver window sizes. Note that even if this value is greater than 0 there could still be one or more receivers which have exhausted their own windows and are blocked, so consider enabled logDetailedStatus if per-receiver flow control diagnostics are required.
rRedel
Redelivered messages
The total number of JMS messages received with the JMSRedelivered flag set to true, indicating they are in-doubt and may have already been delivered in the past. For many JMS providers this flag is not always set reliably/consistently, but it does at least provide an indication of whether redeliveries may be taking place.
rMaxDeliverySecs
Maximum delivery time
The highest time taken by the JMS broker to deliver a message, based on the difference between the time when each message is received and the value of the JMSTimestamp message header field which indicates the time when it was sent. This is likely to be a low number during normal operation, but will rise during failure modes such as loss of network connectivity or machine crashes as the JMS broker attempts to redeliver messages.
This value is useful for understanding the redelivery behavior of the JMS provider in use and for choosing a sensible time expiry window if EXACTLY_ONCE duplicate detection is being used (see dupDetectionExpiryTimeSecs property). A high rMaxDeliverySecs value during testing may indicate that messages remaining on a JMS queue or durable topic from a previous test run may be interfering with the current test run. Note that any difference in the system time on the sending and receiving hosts will add an error to this value, which can result in negative values.
rDupsDet
Duplicate messages detected
The total number of duplicate messages detected by EXACTLY_ONCE receivers and suppressed because their uniqueMessageId was already present in the duplicate detector. Does not include dynamic receivers that have now been removed.
rDupIds
Duplicate ids in memory
The total number of uniqueMessageIds being kept in memory for duplicate detection purposes by EXACTLY_ONCE reliable receivers. This is the total of the size of all per-message-source fixed-size expiry queues plus the unbounded time-based expiry queue. If this becomes too large it is possible the correlator could run out of memory.
connErr
Connection errors
The total number of times a valid JMS connection has gone down. Note that this tracks errors in existing connections and does not include repeated failures to establish a connection.
jvmUsedMB
JVM used memory
The amount of memory used by the JVM in Megabytes (heap plus non-heap), which can be compared with the maximum memory size provided for the JVM to check how much spare memory there is and ensure that the correlator is not close to running out of memory. This is particularly useful for checking peak memory consumption, such as testing when any EXACTLY_ONCE duplicate detectors are fully populated with the maximum likely number of uniqueMessageIds and any JMON applications are running in the same correlator are also near the maximum memory they are likely to use. Note that the memory usage figure reported by the JVM includes both live objects and objects waiting to be garbage collected, so inevitably this will go up and down a certain amount as garbage collections occur.
...
onApplication Initializedindicator
The suffix <waiting for onApplicationInitialized> will be added to the status lines if the EPL application has not yet called jms.onApplicationInitialized() as a reminder that status or JMS message events cannot be passed into the correlator until this action is invoked.
Detailed JMS status lines
If the logDetailedStatus property in an Apama application that uses correlator-integrated messaging for JMS is set to true in the JmsSenderSettings or JmsReceiverSettings configuration object, then additional lines will also be logged for each sender and receiver and their parent connections, for example.

INFO [19276] - Correlator Status: sm=2 nctx=1 ls=4 rq=0 eq=0 iq=0 oq=0
rx=8 tx=6 rt=0 nc=1 vm=252372 runq=0
INFO [19276:Status] - JMS Status: s=1 tx=6 sRate=0 sOutst=0 r=2 rx=4
rRate=0 rWindow=1500 rRedel=0
rMaxDeliverySecs=0.0 rDupsDet=1 rDupIds=3
connErr=0 jvmMB=67
INFO [19276:Status] - JMSConnection myConnection: s=1 r=2 connErr=0
sessionsCreated=3
INFO [19276:Status] - JMSSender myConnection-default-sender: tx=6
sRate=0 sOutst=0 msgErrors=2
INFO [19276:Status] - JMSReceiver myConnection-receiver-SampleQ2:
rx=4 rRate=0 rWindow=1500 rRedel=0
rMaxDeliverySecs=0.0 msgErrors=1 rDupsDet=1
perSourceDupIds=3 timeExpiryDupIds=0
INFO [19276:Status] - JMSReceiver myConnection-receiver-SampleT2:
rx=0 rRate=0 rWindow=-1 rRedel=0
rMaxDeliverySecs=0.0 msgErrors=0 rDupsDet=0
perSourceDupIds=0 timeExpiryDupIds=0
The JMS connector-specific status lines contain:
JMS connector status log fields
Field
Full name
Description
s
Number of senders
The current number of JMS senders (both static and dynamic) on all JMS connections.
r
Number of receivers
The current number of JMS receivers (both static and dynamic) on all JMS connections
connErr
Connection errors
The total number of times this JMS connection has gone down, Note that this tracks errors in existing connections and does not include repeated failures to establish a connection.
sessionsCreated
Send/receive sessions created
The total number of JMS Sessions that have been created during the lifetime of this JMS connection. In normal operation a single session is created for each sender or receiver, but if a connection failure or serious sender/receiver error occurs, a new session will be created, causing this counter to be incremented. Note, this counter is not decremented when the previous session is closed.
The JMS sender-specific status lines contain:
JMS sender status log fields
Field
Full name
Description
tx
Sent events
The number of events that were emitted to this sender and have been fully processed (either sent to JMS, or exhausted the maximum failure retry limit).
sRate
Send throughput rate
The number of events sent per second to this sender, calculated over the interval since the last status line (typically 5 seconds).
sOutst
Outstanding sent events
The number of events that have been emitted by EPL but are still queued waiting to be passed to JMS by this sender.
sMsgErrors
Per-message error count
The number of Apama events that could not be sent to JMS due to some error, typically a mapping failure or destination not found error. See the log file for WARN and ERROR messages that will provide more details.
The JMS receiver-specific status lines contain:
JMS receiver status log fields
Field
Full name
Description
rx
Received messages
The number of messages received from JMS, including messages received but not yet mapped to Apama events and added to the input queue of each public context.
rRate
Receive throughput rate
The number of JMS messages received per second by this receiver, calculated over the interval since the last status line (typically 5 seconds).
rWindow
Flow control window size
If receiverFlowControl is disabled this has the special value "-1". If it is enabled, this gives the current flow control window size, that is the number of successfully mapped events that can still be received before the receiver will block. A zero value indicates that the flow control window has been exhausted and the application should call JMSReceiverFlowControlMarker.updateFlowControlWindow() to unblock the receiver. A negative value indicates that the window has been updated to a negative value, which has the same effect as a window of 0.
rRedel
Redelivered messages
The number of JMS messages received with the JMSRedelivered flag set to true.
rMaxDeliverySecs
Maximum delivery time
The highest time taken by the JMS broker to deliver a message to this receiver, based on the difference between the time when each message is received and the value of the JMSTimestamp message header field which indicates the time when it was sent.
rMsgErrors
Per-message error count
The number of received JMS messages that could not be passed to the Apama application due to some error, typically a mapping failure. See the log file for WARN and ERROR messages that will provide more details.
rDupsDet
Duplicate messages detected
The number of duplicate messages detected by this EXACTLY_ONCE receiver and suppressed because their uniqueMessageId was already present in this receiver's duplicate detector. Only displayed for EXACTLY_ONCE receivers.
perSourceDupIds
Per-source duplicate ids in memory
The total number of uniqueMessageIds being kept in memory for duplicate detection purposes by all per-message-source fixed-size expiry queues. Only displayed for EXACTLY_ONCE receivers.
timExpiryDupIds
Time-based duplicate ids in memory
The total number of uniqueMessageIds being kept in memory for duplicate detection purposes by the unbounded time-based expiry uniqueMessageId queue.
Copyright © Software AG, Darmstadt, Germany and/or Software AG USA Inc., Reston, VA, USA, and/or its Subsidiaries and or/its Affiliates and/or their licensors.
Use, reproduction, transfer, publication or disclosure is prohibited except as specifically provided for in your License Agreement with Software AG.