ibm-messaging / mq-golang-jms20

JMS style messaging interface for Golang applications connecting to IBM MQ
Eclipse Public License 2.0
35 stars 19 forks source link

JMS_IBM_Feedback, JMS_IBM_Report_COA and JMS_IBM_Report_COD int properties #70

Closed lucasmfarias1 closed 2 months ago

lucasmfarias1 commented 2 months ago

Can we not set/get the JMS_IBM_Feedback, JMS_IBM_Report_COA and JMS_IBM_Report_COD int properties? I'm rebuilding and old application that used JMS and I cannot seem to be able to trigger COA and COD anymore.

matrober-uk commented 2 months ago

Hi @lucasmfarias1 - thanks for your question; those fields aren't currently handled by the Golang JMS client (see Special header properties supported for details of those that are) - but I should be able to add them.

Is it just those three specifically that you need, or are there any other related fields that you need as well? For example others could include:

JMS_IBM_REPORT_PASS_MSG_ID
JMS_IBM_REPORT_PASS_CORREL_ID
JMS_IBM_REPORT_EXCEPTION
JMS_IBM_REPORT_EXPIRATION
JMS_IBM_REPORT_NAN
JMS_IBM_REPORT_PAN
JMS_IBM_REPORT_DISCARD_MSG
lucasmfarias1 commented 2 months ago

Hi, @matrober-uk. Thanks for the swift reply.

Right now, it really is only those three that I need.

matrober-uk commented 2 months ago

ok, thanks - I'll take a look and aim to share back an update by the end of the week.

matrober-uk commented 2 months ago

Hi @lucasmfarias1 - turned out to be quicker to implement than I expected (I started looking at it yesterday), I've merged a commit to add in support for those three properties here: https://github.com/matrober-uk/mq-golang-jms20/commit/ed6afe3812ba96254609dd3fc217c20e04363081

If you're able to pull down that specific commit to test it out that would be great please, after which I can generate a release release to make it easier to consume.

Please let me know how you get on!

lucasmfarias1 commented 2 months ago

Hi @matrober-uk

I've just tried it out and it seems to work perfectly. All the .SetIntProperty and .GetIntProperty ceased returning errors and the COA and COD were triggered successfully. Thank you very much!

matrober-uk commented 2 months ago

Hi @matrober-uk

I've just tried it out and it seems to work perfectly. All the .SetIntProperty and .GetIntProperty ceased returning errors and the COA and COD were triggered successfully. Thank you very much!

Great - my pleasure to be able to get this turned around in a couple of days!

I've created a new release v1.12.0 to package this change for easier consumption.

Regards, Matt.

matrober-uk commented 2 months ago

Notes from implementation, for reference if needed in future

Feedback field:
https://www.ibm.com/docs/en/ibm-mq/9.4?topic=descriptor-feedback-mqlong-mqmd

Report field structure:
https://www.ibm.com/docs/en/ibm-mq/9.4?topic=flags-structure-report-field

Mapping JMS fields:
https://www.ibm.com/docs/en/was-nd/8.5.5?topic=piwm-mapping-mqmd-report-fields-jms-provider-specific-properties

https://github.com/ibm-messaging/mq-golang/blob/2a31ece25fbfa7a78a1bb49ce4968a6eda35e68d/ibmmq/cmqc_aix.go#L4271

00000100000000    256   MQRO_COA
00001100000000    768   MQRO_COA_WITH_DATA   
00011100000000   1792   MQRO_COA_WITH_FULL_DATA 

00100000000000   2048   MQRO_COD
01100000000000   6144   MQRO_COD_WITH_DATA
11100000000000  14366   MQRO_COD_WITH_FULL_DATA
matrober-uk commented 2 months ago

Implemented in v1.12.0