Is there any transaction isolation level available in JMS queue like in JDBC ?
More specifically in transitional mode, when a client consumes a message and has not committed yet, will the next client consume the next message? If the 1st client rolls back transition, where the message placed in the queue, I think it will be placed where it was earlier.
Short answer: no.
JMS sending is either transactional or not, which means the message is “committed” (visible for the broker and MDBs) when senders transaction commits or immediately (even if client sending transaction rollbacks later).
JMS receiving has simple on/off transactions as well: message is marked as received either when it’s picked up by MDB (non-transactional) or when MDB returns without exception (transactional).