Krishna
Krishna

Reputation: 473

IBM MQ activity log issue

We are using IBM MQ8.0. Activitiy logs are getting logged for outgoing messages which we are sending to external system. But there is no log available for the messages which are from external system to our MQ Manager. Is it problem with client channel configuration ? Or MQ logging configuration issue ?

Upvotes: 1

Views: 1261

Answers (1)

JoshMc
JoshMc

Reputation: 10652

IBM describes these "activity logs" as recover logs in the Knowledge center page "Making sure that messages are not lost (logging)"

IBM MQ records all significant changes to the persistent data controlled by the queue manager in a recovery log.

This includes creating and deleting objects, persistent message updates, transaction states, changes to object attributes, and channel activities. The log contains the information you need to recover all updates to message queues by:

  • Keeping records of queue manager changes
  • Keeping records of queue updates for use by the restart process
  • Enabling you to restore data after a hardware or software failure

Please note that non-persistent messages are not logged to the recover log.

Based on your question it is likely that the messages you are sending to the external system are persistent messages and the messages you are receiving from the external system are non-persistent messages, this would explain why they are not logged to the recover log files.

Persistence is determined at the time the message is first PUT.

IBM has a good Technote "Message persistence FAQs" about this subject.

Q3. What is the best way to be certain that messages are persistent?

A3. Set MQMD message persistence to persistent (MQPER_PERSISTENT), or nonpersistent (MQPER_NOT_PERSISTENT) and your message will always retain that value.

Note: MQPER_PERSISTENCE_AS_Q_DEF is the default setting for the persistence value in the MQMD. See the persistence values listed below.

...

Additional information

MQPER_PERSISTENCE_AS_Q_DEF can lead to unexpected results. If there is more than one definition in the queue-name resolution path, the default persistence attribute is taken from first queue definition in the path at the time of the MQPUT or MQPUT1 call. This queue could be an:

  • alias queue
  • local queue
  • local definition of a remote queue
  • queue-manager alias
  • transmission queue
  • cluster queue

The external system will need to make sure the messages they send you are set as persistent messages if you want them to be logged.

Upvotes: 3

Related Questions