ibm-messaging / mq-golang

Calling IBM MQ from Go applications
Apache License 2.0
167 stars 60 forks source link

MQRC_SYNCPOINT_LIMIT_REACHED #179

Closed 2020testuser closed 2 years ago

2020testuser commented 3 years ago

Hi, While getting the messages continuously , I'm getting the below error. Could anyone please let me know whether there is any better way to resolve the error other than modifying the mq setting in the mq server side?

[ERROR]: Error : "MQGET: MQCC = MQCC_FAILED [2] MQRC = MQRC_SYNCPOINT_LIMIT_REACHED [2024]"

Thanks in advance!

ibmmqmet commented 3 years ago

Why are you doing so many operations inside syncpoint? If you really need that number of puts/gets in a single transaction, then changing the MAXUMSGS attribute is the right solution. But more likely, you need to revisit your application code/design to either not use transactions, or commit the transaction after some reasonable batching. This article is using the JMS API, but the principles still hold regardless of API.

2020testuser commented 3 years ago

@ibmmqmet - Thanks! I have reduced the waitinterval and the number of threads . Now, I don't get MQRC_SYNCPOINT_LIMIT_REACHED [2024] error. But, I get the below error.

MQGET: MQCC = MQCC_FAILED [2] MQRC = MQRC_BACKED_OUT [2003]

Could you please let me know how I can resolve this error?

Regarding MAXUMSGS attribute, yes, I came across when I was reading more on this issue. However, MQ admin don't want to make any changes to the MAXUMSGS attribute.

Anyway to avoid this error? Also, the application exits when it gets this msg, and so, I need to restart the app. I will have to reread your article to get all details.