If we update the isolation level using SQL instead of JDBC and then join/resume a global transaction, on ending the transaction, the isolation level of the local connection is not restored. The problem seems to be in EmbedXAResource. So it happens with both embedded and client driver. Client driver internally uses SQL to set the transaction isolation. So the problem is more likely to be hit with the client. I will attach a repro and a draft patch with more details.