you use the same DB for both DS right?
In that case I suppose that the DB is aware that both Tx are the same.
An XA-datasource will not help, it is just a protocol to enlist more than one resource in one transaction.
You might try a no-tx datasource, see config datasources.
Also you might rethink the design maybe you can use another isolation level, SERIALIZABLE will be very restrictive and might slow down your application.