Guidance for setting MQ attributes and MFT properties associated with message size
We can change IBM MQ attributes and Managed File Transfer properties to affect the behavior of Managed File Transfer when reading or writing messages of various sizes.
If the size of messages being read from a source queue or written to a destination queue exceeds 1048576 bytes (1 MB), you must increase the value of the Managed File Transfer Agent property maxInputOutputMessageLength to a value that is greater than or equal to the maximum message size to be read or written.
If the messages on the source queue are greater than 1048576 bytes, you must set the maxInputOutputMessageLength property on the source agent. If the messages on the destination queue are greater than 1048576 bytes you must set the maxInputOutputMessageLength property on the destination agent. For more information about the maxInputOutputMessageLength property, see Advanced agent properties.-
If the queue that the agent is writing to or reading from is local to the agent queue manager, you might have to change the IBM MQ queue manager, queue, and channel MAXMSGL attributes.
Ensure that the value of the maximum message size of the source or destination queue is greater than or equal to the value of the maxInputOutputMessageLength agent property.
Ensure that the value of each of the following IBM MQ attributes, in bytes:- The maximum message size of the agent queue manager
- The maximum message size of the SYSTEM.FTE.STATE.agent_name queue
- The client channel maximum message size, if your agent connects to the queue manager in client mode
- For a file-to-message transfer (which supports a file size of up to 100 MB):
- The value of maxInputOutputMessageLength
- For a message-to-file transfer:
- The value of 3 * (maxInputOutputMessageLength) + 1048576
(This calculation is derived from the fact that three checkpoints can be stored in a state message and each checkpoint might have to buffer up to the maximum size of a message amount of data.)
-
If the queue that the agent is writing to is a remote queue, you might have to change the IBM MQ queue manager, queue, and channel MAXMSGL attributes.
Ensure that the value of each of the following IBM MQ attributes is greater than or equal to the value of the maxInputOutputMessageLength agent property:- The maximum message size of the remote queue manager transmission queue on the agent queue manager
- The maximum message size of the channel from the agent queue manager to the remote queue manager
- The maximum message size of the destination queue on the remote queue manager
- The maximum message size of the remote queue manager
- The maximum message size of the agent queue manager
- The maximum message size of the SYSTEM.FTE.STATE.agent_name queue
- The client channel maximum message size, if your agent connects to the queue manager in client mode
- For a file-to-message transfer (which supports a file size of up to 100 MB):
- The value of maxInputOutputMessageLength
- For a message-to-file transfer:
- The value of 3 * (maxInputOutputMessageLength) + 1048576
(This calculation is derived from the fact that three checkpoints can be stored in a state message and each checkpoint might have to buffer up to the maximum size of a message amount of data.)
BFGUT0002E: An internal error has occurred. Product failure data was captured in file "FFDC.FTE.20100928170828514.8172766022149157013.log". BFGSS0025E: An internal error has occurred. The exception is: cc=2 rc=2010 op=put - MQPUT to SYSTEM.FTE.STATE.agent_name BFGAG0061E: The agent ended abnormallyThe following IBM MQ reason codes might be included in this message in the agent event log:
- rc=2010 This reason code maps to MQRC_DATA_LENGTH_ERROR and indicates that the
value of the client channel maximum message size was exceeded. To resolve this problem ensure that
the client channel maximum message size of the agent queue manager is greater than or equal to the
result of the following calculation:
3 * (maxInputOutputMessageLength) + 1048576
- rc=2030 This reason code maps to MQRC_MSG_TOO_BIG_FOR_Q and indicates that the
value of the maximum message size of the SYSTEM.FTE.STATE.agent_name queue
was exceeded. To resolve this problem ensure that the maximum message size of the
SYSTEM.FTE.STATE.agent_name queue is greater than or equal to the result of
the following calculation:
3 * (maxInputOutputMessageLength) + 1048576
- rc=2031 This reason code maps to MQRC_MSG_TOO_BIG_FOR_Q_MGR and indicates that
the value of the maximum message size of the agent queue manager was exceeded. To resolve this
problem ensure that the maximum message size of the agent queue manager is greater than or equal to
the result of the following calculation:
3 * (maxInputOutputMessageLength) + 1048576
If you are transferring many small messages
If the average size of the messages that the agent is reading from or writing to a queue is less than 1310 bytes and the agent is reading or writing more than 10000 messages, you must increase the maximum number of uncommitted messages attribute on the queue manager or reduce the amount of data in a checkpoint interval.
When the agent is reading messages from or writing messages to a queue the corresponding GETs or PUTs are grouped together into transactions. The number of GETs or PUTs in a transaction is determined by the number required to process all of the data within a checkpoint interval. The approximate amount of the data in a checkpoint interval is determined from agent properties using the following calculation:Checkpoint interval data size (in bytes) = agentCheckpointInterval * agentFrameSize * agentWindowSize * agentChunkSize.The default checkpoint data size is 1 * 5 * 10 * 262144 bytes = 13107200 bytes (12.5MB). The maximum number of uncommitted messages in a transaction that a queue manager supports is controlled by the MaxUncommittedMsgs queue manager attribute. The default value of this attribute is 10000 messages. If the average message size is less than approximately 1310 bytes the default maximum number of uncommitted messages is exceeded if there are more than 10000 messages to be written. If you exceed the MaxUncommittedMsgs limit, the agent stops with the following error in the agent event log:
BFGSS0024E: The agent has received a reason code of '2024' from the message queue interface (MQI). The agent cannot continue processing and will now end. BFGAG0139I: The agent has suspended its current transfers and is now stopping.The reason code 2024 maps to: MQRC_SYNCPOINT_LIMIT_REACHED. To resolve this problem perform one of the following actions
- Increase the value of the MaxUncommittedMsgs queue manager attribute of the queue manager that the agent reading from or writing to a queue connects to. See MaxUncommittedMsgs (MQLONG).
- Reduce the amount of data in a checkpoint interval. To do this, decrease the value of one or
more of the following agent properties:
- agentCheckpointInterval
- agentFrameSize
- agentWindowSize
- agentChunkSize
If you are writing messages to a queue persistently
If you are transferring to a queue and writing the messages to the queue persistently, you might have to increase the size of the queue manager log file space to be able to log all of the data in a checkpoint interval.
If you exceed the queue manager log file space, the agent stops with the following error in the agent event log:BFGSS0024E: The agent has received a reason code of '2102' from the message queue interface (MQI). The agent cannot continue processing and will now end. BFGAG0062E: The agent has received MQI reason code '2102'. The agent cannot continue processing and will now end. BFGAG0061E: The agent ended abnormallyThe reason code '2102' maps to: MQRC_RESOURCE_PROBLEM.
To resolve this problem increase the size of the destination agent queue manager log file space.