<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">
&gt; * Marshalling happens in the async thread (the same one that puts the message on the wire) rather than in the caller&#39;s thread<br>
</div></div>my understanding is that there&#39;s no such additional thread, but caller&#39;s thread goes to the network stack even for async calls. I think Bela can put some light on this.<br></blockquote><div><br></div>

<div>If you use bundling, the bundler thread writes the bytes to the socket, not the caller&#39;s thread. TCP also uses a special sender thread for each connection, if use_sender_queues=true (the default).<br><br></div><div>

 </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">&gt; * sendMessage() should accept a marshaller and unmarshaller per invocation<br>
<br>
</div>There is a org.jgroups.Buffer that we pass to the org.jgroups.Message we send across, another, less intrusive way would be to write a lazy wrapper around it.<br>
<div><div class="h5"><br></div></div></blockquote><div><br></div><div>Still, FRAG2 needs the actual bytes of the message, and that&#39;s a long time before the message gets passed to the bundler thread.<br><br></div><div>

Cheers<br></div><div>Dan<br></div><div> <br></div></div></div></div>