Author |
Message
|
varunraot |
Posted: Thu Feb 22, 2018 2:31 am Post subject: 0 byte file generation in Message to File Transfer |
|
|
Acolyte
Joined: 01 Jun 2011 Posts: 63
|
I had an incident where message to file generation resulted in 0 byte file generation with 2094 messages of load with MQ 8.0.0.5. I came across the link http://www-01.ibm.com/support/docview.wss?uid=swg1IT18213 Can someone explain in detail - how is it going to fix this 0 byte file issue?
Last edited by varunraot on Thu Feb 22, 2018 8:58 pm; edited 1 time in total |
|
Back to top |
|
 |
RogerLacroix |
Posted: Thu Feb 22, 2018 9:34 am Post subject: Re: 0 byte file generation in Message to File Transfer |
|
|
 Jedi Knight
Joined: 15 May 2001 Posts: 3264 Location: London, ON Canada
|
varunraot wrote: |
Can someone explain in detail - how is it going to fix this 0 byte file issue? |
Read the "Problem Conclusion" section of the link you posted. Also, edit your post and remove the trailing "." (period) from the link.
Regards,
Roger Lacroix
Capitalware Inc. _________________ Capitalware: Transforming tomorrow into today.
Connected to MQ!
Twitter |
|
Back to top |
|
 |
varunraot |
Posted: Thu Feb 22, 2018 11:50 am Post subject: |
|
|
Acolyte
Joined: 01 Jun 2011 Posts: 63
|
Thanks. I had read the whole topic before posting it here.
What if the group id is same as the message id?
The explanation given is high level and does not get into the ground level. |
|
Back to top |
|
 |
varunraot |
Posted: Thu Feb 22, 2018 9:52 pm Post subject: |
|
|
Acolyte
Joined: 01 Jun 2011 Posts: 63
|
To make my question more precise,
Assume IIB message flow would transfer the message to a queue which would be monitored by MQ MFT resource monitor to create a file in a directory with message to file transfer type.
Assume MQ MFT monitor has below setting for group id.
<source disposition="leave" recursive="false" type="queue">
<queue groupId="${GROUPID}" useGroups="true">${QueueName}@<Queue Manager Name></queue>
</source>
I understand from the link that if group id matches the id of the transfer request, zero byte issue occurs and this is prevented in the fix by making the source agent to use the message id of the source message as match
option (as opposed to a group identifier match option) for the
first MQGET attempt that is made on the input queue for the
message-to-file transfer.
Questions:
1. How does transfer happens when group id "does not match" the transfer id of transfer request? How does message gets pulled from the queue?
2. When message gets transferred to a queue, group id would be the message id of the source message. How does MQRC 2033 occurs when transfer id matches the group id?
I would like to understand with a clear cut example for each case. |
|
Back to top |
|
 |
varunraot |
Posted: Tue Apr 10, 2018 8:48 am Post subject: |
|
|
Acolyte
Joined: 01 Jun 2011 Posts: 63
|
The main reason for the generation of bad files (0 byte file) is due to the agent getting crashed due to out of memory error with the 2500 messages on the monitored queue.
The process controller associated with the agent detects that it has stopped unexpectedly, and restarts it.The agent brings the managed transfer out of recovery and starts processing it. The source agent for the managed transfer begins processing the transfer item which went to recovery and fails with MQ reason code 2033 (MQRC_NO_MSG_AVAILABLE) resulting in the destination agent for the managed transfer writing zero byte file for the recovered transfer item.
To avoid this problem
1.Have different agents in resource monitor for source and destination
2.Have monitorMaxResourcesInPoll in agent property file and value can be set equal to the batch size of the resource monitor.
This would ensure sequential transfer rather than multiple transfers there by preventing the agent to crash due to out of memory. |
|
Back to top |
|
 |
|