I should have mentioned that the database is set up as READ COMMITTED. And the solution to the problem seems to be in managing transactions appropriately. The solution I found for MDB1, the one that creates an entity and sends a message, was to have it call a method to create the entity (instead of using the entity manager directly). Critically, that method is annotated to require a new transaction. Hope this helps someone out there.