public void OnMessage(Message message) { bool exposeResource = container.ExposeListenerSession; if (exposeResource) { TransactionSynchronizationManager.BindResource( container.ConnectionFactory, new LocallyExposedEmsResourceHolder(session)); } try { container.ExecuteListener(session, message); } finally { if (exposeResource) { TransactionSynchronizationManager.UnbindResource(container.ConnectionFactory); } } }