MQSeries::Message::ConfigEvent -- Class to decode mainframe WMQ Config Event messages
use MQSeries::Message::ConfigEvent; # # Get a message from a CONFIG.EVENT queue # my $qmgr_obj = MQSeries::QueueManager->new(QueueManager => 'TEST.QM'); my $queue = MQSeries::Queue-> new(QueueManager => $qmgr_obj, Queue => 'SYSTEM.ADMIN.CONFIG.EVENT', Mode => 'input'); my $msg = MQSeries::Message::ConfigEvent->new(); $queue->Get(Message => $msg, 'Convert' => 0); my $data = $msg->Data(); # Hash-reference
With WebSphere MQ 5.3 for z/OS, IBM added a new feature called "configuration events". If enabled, each object change, create, delete or refresh in the z/OS queue manager causes an event to be generated that describes the object. (A change generates two events - before and after.) This is extremely useful, as it leaves an audit trail of all changes.
However, in all their wisdom, IBM decided not to support this message type on distributed queue managers (Unix, NT, AS/400). If you configure a mainframe queue manager to forward this event to a distributed queue manager, then try to get the message using the MQGMO_CONVERT option, a failure occurs and an FDC is generated on the queue manager. IBM does not intend to fix this - it is broken as designed.
Since we do want to keep an audit trail of all changes on a Unix host, it is necessary to write custom decoding logic, which is provided in this class.
This methods is not called by the users application, but is used internally by MQSeries::Queue::Get().
GetConvert() decodes a configuration event into a hash-reference that described the event in detail.
When you configure the z/OS queue manager to forward the messages on the SYSTEM.ADMIN.CONFIG.EVENT queue to a Unix or Windows queue managers, make sure that the channel used has DataConversion set to off.
MQSeries(3), MQSeries::QueueManager(3), MQSeries::Queue(3), MQSeries::Message(3), Convert::EBCDIC(3)
The "Event Monitoring" manual for WMQ 5.3 (Document Number SC34-6069-00).