VJDBC Support wrote: > Hi, > > first of all, I wanted to thank the MINA team for giving us a > framework of such great quality and elegance. MINA enabled me to > convince management to go the 3-tier route using MINA in the middle > tier. Stunning performance and stability, our test server now runs for > months without any problems. > > Now my question: I understood that the data that is written back via > session.write(...) can arrive at the client in multiple packages, > depending on how TCP manages the output buffer. But is it ensured by > MINA that the data of several session.write(...)-Calls is delivered in > sequence ? Let's say I have a big Response-A (100k) and a small > Response-B (1k) object that I write into the session. First I write > Response-A into the session, then Response-B. Can I expect that > Response-A is delivered completely (probably in multiple packages) > before Response-B comes in ? > Yes, MINA will write Respone-A completely to the underlying socket before Response-B is written. After that TCP will of course take care of delivering it in the same order on the other side.
TCP may chop your data up into smaller pieces or combine it into larger chunks as it sees fit. Because of this you must make sure your code works even if, e.g., the last 1k of Response-A and the first 100 bytes of Response-B is delivered in a single ByteBuffer on the receiving side. HTH -- Niklas Therning www.spamdrain.net