Author |
Message
|
pmane |
Posted: Thu Aug 29, 2002 3:13 am Post subject: what is BATCHINT |
|
|
Acolyte
Joined: 17 Oct 2001 Posts: 50
|
Where can I get more info about this parameter ? If all my messages are non persistant then will this parameter affect any way ? |
|
Back to top |
|
 |
kolban |
Posted: Thu Aug 29, 2002 4:56 am Post subject: |
|
|
 Grand Master
Joined: 22 May 2001 Posts: 1072 Location: Fort Worth, TX, USA
|
Hopefully this will turn into an interesting discussion ...
The documentation on BATCHINT can be found in the Intercommunications Guide.
Here is the story summary ... when messages move from one queue manager to another, they are moved as part of a transaction. This means that they are not actually removed from the sender until the sender is sure that they have been received by the receiver. In order for the sender to know that they have been received correctly, the sender asks the receiver for a checkpoint, i.e. what have you received? When the checkpoint response has been received, the sender can then delete or resend messages as necessary.
Obviously, the sender asking for a checkpoint is an expensive operation. If it were done for every messages, this would be 100% overhead. So it is not done every message, it is done every BATCHSZ number of messages. So ... after sending BATCHSZ messages, the sender then asks for a checkpoint and can process the messages accordingly.
If the transmission queue on the sender drops to zero (i.e. nothing left to be sent) then the checkpoint request can be sent immediately because there is nothing for it to content with on the network. No overhead or displacement of real message transmission.
The BATCHINT parameter (at last) is an interval in milliseconds which the sender will wait AFTER the transmission queue goes to zero BEFORE sending the checkpoint request. If a message arrives in the transmission queue during this interval, the interval is ignored and the message sent as part of the batch of messages in the current transaction. The interval timer will reset if the queue goes to zero again. |
|
Back to top |
|
 |
mgrabinski |
Posted: Thu Aug 29, 2002 10:12 pm Post subject: |
|
|
Master
Joined: 16 Oct 2001 Posts: 246 Location: Katowice, Poland
|
Just to add my 2 cents to Kolban's thorough explanation.
1) If your messages are non persistent and you are using a fast channel, the messages will be sent immediately, without waiting for completion of the current batch (that means they are sent out of syncpoint - no commit/rollback processing is involved).
2) Be carefull not to set BATCHINT to high if you have a request-response type of trasmission. High BATCHINT will degrade your response times. _________________ Marcin Grabinski <>< |
|
Back to top |
|
 |
pmane |
Posted: Wed Sep 04, 2002 5:25 pm Post subject: |
|
|
Acolyte
Joined: 17 Oct 2001 Posts: 50
|
Thanks for the response. My system will only have non persistant messages . So I think this BATCHINT will not be important. What I need to know is dose message size in non persistant messages matters or not ?
I have very small messages around 1024 KB + 4000 Bytes for the MQ which makes it around 5K . I have a option to club these , but some trade off at my application side to split it again. So will my performance improve if I club it ? I will need to split it any way in my application . |
|
Back to top |
|
 |
PeterPotkay |
Posted: Mon Sep 09, 2002 5:24 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
BATCHINT is only not important for non-persistent messages if the channel speed is set to fast, because in that case the non-persistent messages will flow immediatly, regardless of the BATCHINT. If the channel speed is normal, than BATCHINT will be considered by the MCA before sending a message, persistent or not.
Quote: |
I have very small messages around 1024 KB + 4000 Bytes for the MQ which makes it around 5K
|
1024 KB + 4000 bytes = 1028 KB (1.028 megs), or did you mean 1024 bytes + 4000 bytes, which equals around 5K? Why do you say 4000 bytes for MQ? The MQMD is only about 328 (not sure of exact size) bytes, not 4000.
Anyway, MQ is optimized for messages around 4K, so I think you are okay sending the messages you are creating as is, since if you have 1024 bytes of application data, your actual message being sent is only around 1350 bytes. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
ind76 |
Posted: Mon Sep 23, 2002 11:18 am Post subject: BATCHSZ ! |
|
|
Apprentice
Joined: 10 Apr 2002 Posts: 29
|
Does the Batch Size on the sender and receiver have to be the same number ? What is the significance of the Batch Size on the receiver channel ?
The reason for my asking is we have a Sender channel from Windows NT that connects to OS/390 whose sequence number goes out of sync whenver we restart the Windows NT machine.
I checked all the attributes, nothing looks wrong except the Batch Size on the Windows NT is different from the receiver counterpart on the OS/390. Could this cause the channel sequence number go out of sync ?
Thanks for your help,
ind76 |
|
Back to top |
|
 |
mgrabinski |
Posted: Mon Sep 23, 2002 9:12 pm Post subject: |
|
|
Master
Joined: 16 Oct 2001 Posts: 246 Location: Katowice, Poland
|
When the values of BATCHSZ of channel ends don't match, the lower value is taken - so it doesn't cause any problems.
To soleve problems with messages sequence synchronization, run the RESET CHANNEL command on both ends. _________________ Marcin Grabinski <>< |
|
Back to top |
|
 |
ind76 |
Posted: Tue Sep 24, 2002 5:51 am Post subject: Thank you Marcin ! |
|
|
Apprentice
Joined: 10 Apr 2002 Posts: 29
|
Thanks Marcin. That is what we do to get the channel back to running. But what causes the channel go out of sync ? I'm just curioius, we use LU62. And it happens whenever we restart the Windows NT box. Are we missing something here ?
Thanks again for your help,
ind76 |
|
Back to top |
|
 |
pmane |
Posted: Tue Sep 24, 2002 4:31 pm Post subject: Lenght of MQ Message |
|
|
Acolyte
Joined: 17 Oct 2001 Posts: 50
|
Hi again ! I just found out that the
MAXMSGL(integer) attribute in the Local Q is
"For a transmission queue, this value includes the space required for headers. It is recommended that the value should be at least 4000 bytes larger than the maximum expected length of user data in any message that could be put on a transmission queue. "
Can some one tell me what is this 4000 bytes !
Prashant Mane. |
|
Back to top |
|
 |
PeterPotkay |
Posted: Tue Sep 24, 2002 6:01 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
Because of all the various headers that may be added. At the very least you will have the MQMD and the transmission header. In addition, you could have an IIH header, a RFH2 header, etc. I guess IBM figured out that the worst case scenario if you somehow had all these headers was that an extra 4000 bytes would get added. Realistically, its much less. (usually just the MQMD and the XMIT header) _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
mgrabinski |
Posted: Wed Sep 25, 2002 3:20 am Post subject: |
|
|
Master
Joined: 16 Oct 2001 Posts: 246 Location: Katowice, Poland
|
One possibly reason of resynchronization of a channel is deleting and recreating one of its end. Another - a net failure may cause it. _________________ Marcin Grabinski <>< |
|
Back to top |
|
 |
|