To ensure reliability certain operations on the JMS API are blocking, e.g. session.commit, producer.send() (for persistent messages), so they involve a network round trip. Also XAResource.commit()
For performance it therefore makes sense when using the JMS API to batch up, say, many operations in a single transaction and just do a single commit at the end, thus minimising network round trips. That's why the JMS bridge batches.
This is unnecessary when using the core bridge, as it it always just pipelines sent messages one after another (no network round trip), and uses duplicate detection to guarantee once and only once.
This is discussed in more depth in the user manual.
I am satisfied . Thanks for the info.