Hi Muhammad
Exits will always be most the most fully flexible option of course, but (aside from the potential overhead of taking on custom code to maintain) there are increasingly environments where they aren't really viable because of the administration or security practicalities - the signed firmware requirement in the case of an appliance, and the shared platform in hosted environments - especially SAAS offerings like MQ on Cloud.
To meet these needs we definitely want to provide comprehensive basic function in this area (and if there are complex custom requirements beyond that requiring native exits, it may of course mean those platforms aren't the most appropriate choice for some applications).
I wasn't sure I fully understood your three points, would you mind expanding on them? The message body can of course be any data so 'readable' in the general case would be tricky - and although we concatenate many trace messages together into one logged message, the individual MQMDs (with MsgID) are available inside the PCF wrapper - is there a reason this is not sufficient?
On the 'window of missed messages' I afraid I don't think I understand the issue properly at all, would you mind clarifying the concern?
If you prefer of course, there is always the option of raising an RFE for anything you see missing or in need of improvement in the product - we appreciate the feedback by whichever route.
Kind Regards
Anthony
------------------------------
Anthony Beardsmore
IBM MQ Appliance Architect
IBM
------------------------------
Original Message:
Sent: 08-16-2018 14:25
From: Muhammad Haider Raza
Subject: audit log of every message going thru MQ
Hi,
If we want to log the message contents as well, I see some cons in Application Activity trace approach like:
1. Message Data is in Hex & Bytes and how we can convert it to readable format, i am not sure may be possibly using: MH06: WebSphere MQ - Trace Tools
2. Msg Id is also not maintained in new queue: system.admin.trace.activity.queue.
3.You will have a window of missed messages, between when you try and see them, and when they have been consumed
Isn't it better to use MQ API trace exits. May be custom or this one - MA0W: WebSphere MQ API Trace
Thanks.
------------------------------
Muhammad Haider Raza
Royal Cyber Inc.
Original Message:
Sent: 08-07-2018 05:16
From: Anthony Beardsmore
Subject: audit log of every message going thru MQ
Hi Bernard
The MQ Appliance (from day one in V8) made some changes to MQAT - moving to an arguably more natural pub/sub model - which only became available in software MQ with V9. So I'm afraid at V8 the exact configuration of activity trace will look a little different between the appliance and Windows (where you have to process the messages from the SYSTEM.ADMIN.TRACE.ACTIVITY.QUEUE), though you can do the same kinds of things.
Note that even at V9 you wouldn't be using the same 'file' since on the appliance you'd configure through setmqini - but the settings could then take effect identically.
Regards
------------------------------
Anthony Beardsmore
IBM MQ Appliance Architect
IBM
Original Message:
Sent: 08-06-2018 04:58
From: Bernard Pittens
Subject: audit log of every message going thru MQ
Hi,
Thanks all for your info.
I think the mqat (Activity Trace) is the solution that fits our needs.
One question left:
We have in our DTAP environment Windows MQ v8(Dev, Test) and MQ Appliance v8 (in AC and PRD).
Is the behaviour of the MQ Windows system and the MQ Appiance regarding mqat the same ?
Can I use the same mqat.ini file in all environments ?
Kind Regards
------------------------------
Bernard Pittens
Integration Engeneer
Sligro Foodgroup B.V.
Veghel
Original Message:
Sent: 07-31-2018 08:21
From: Dermot Flaherty
Subject: audit log of every message going thru MQ
Thanks Glenn.
I accidentally replied privately to Bernard a day or so ago and what I basically said was that COD (and COA) will give you a data volume/retention problem to add to the point about performance that you made.
So if today you have a system with a producer at one end and a consumer at the other and 200 msgs/sec are being sent and consumed, adding COD to each msg sent will cause 200 msgs/sec to now be sent to the designated ReplyToQ.
Clearly, these need to be archived somewhere (an RDBMS) to not only prevent Qfull, but to be able to support searches (perhaps hours or even days later) which may require a match on some field in the actual data (Order number for example).
So whether COD with some amount of data is used or - as you suggest - doing it in the application - there is a data volume/retention issue to be addressed.
Bernard responded and he said that he had found an interesting CapitalWare blog on the subject and the usual good advice from Roger LaCroix but that in his case, he would only want "tracking/auditing" capablity for some important flows which while being fairly large messages, only flow at the rate on 1 per sec.
I now think I have added the missing bits of discussion.
------------------------------
Dermot Flaherty
MQ Solutions Architect
Contractor
Original Message:
Sent: 07-30-2018 02:27
From: Glenn Baddeley
Subject: audit log of every message going thru MQ
Hi Hirschel,
In practice, COA and COD report messages are not often used. They add extra complexity to the producer app to handle the messages and it adds overhead in MQ. Apps should be able to trust MQ's assured delivery. Messages are never 'lost'. There is always a rational explanation for why a message ended up in a certain queue or was expired or discarded due to its QOS. This paradigm has never failed me.
If apps are concerned about traceability of MQ messages, audit logging should be done in the app code. eg. The apps log MQPUT returned reason code and message data, and log MQGET returned reason code and message data. The onus is on the app instances to be able to prove that they processed MQ messages. It can be a very enlightening experience for them.
If the failure can be reproduced or happens often, MQ trace features can be very useful, as it shows app MQI calls and results.
Cheers, Glenn.
------------------------------
Glenn Baddeley
Senior Middleware Software Engineer
Coles Supermarkets Australia Pty Ltd
Hawthorn East
+61 3 9829 4473
Original Message:
Sent: 07-25-2018 19:26
From: hirschel wasserman
Subject: audit log of every message going thru MQ
I have a client who has 'lost' an MQ message, and is asking if we can prove that they received (MQGET) from the MQ queue? We have IB logs that show that the message was MQPUT onto the queue. The message is question is not on a DLQ or stuck in a XMIT queue. This is just a single instance problem, and in general this a working scenario.
BUT In more general terms, is there a way (an exit perhaps) to create an audit log of every message that moves thru a queue manager?
------------------------------
hirschel wasserman
------------------------------