I’m sure everyone is aware that the TCP/IP will break a message into packets sometimes as it crosses the network. Some systems think they can get the whole message in one read, this is not the case, they need to keep reading data until they see the end-of-message character.
Having said that, Cloverleaf will sometimes write a message in chunks for performance reasons, especially if the message has been translated, each field stored will be a “chunk”. One way to reform the message object into a single chunk is to do the following in a pre-write or outbound TPS:
msgset [msgget $mh]
This will reform the message object into a single chunk before it goes to the protocol driver.
Most of you mentioned packets of ~1500 bytes so I doubt that this is going on and it’s TCP that’s breaking up the message into packets, but it’s worth a try.
You can also crank up PDL EO to see what packets are being written by the driver.
Hope this information helps.
PS. If you’re interested in looking at how message objects are broken up, play with the msgstats command:
tcl>set mh [msgcreate abc]
tcl>msgstats $mh
{NUMBUFS 1} {NUMCHUNKS 1} {TOTALSPACE 236} {WASTESPACE 64}
tcl>msgappend $mh def
tcl>msgstats $mh
{NUMBUFS 1} {NUMCHUNKS 1} {TOTALSPACE 236} {WASTESPACE 68}
tcl>msginsert $mh 123 3
tcl>msgstats $mh
{NUMBUFS 1} {NUMCHUNKS 3} {TOTALSPACE 236} {WASTESPACE 120}
The above message would be written out in 3 packets (NUMCHUNKS = 3)
Rob Abbott
Cloverleaf Emeritus