@PreDestroy public void destroy() { System.out.println("In SingletonBean::destroy()"); try { javax.transaction.TransactionSynchronizationRegistry r = (javax.transaction.TransactionSynchronizationRegistry) new InitialContext().lookup("java:comp/TransactionSynchronizationRegistry"); if (r.getTransactionStatus() != javax.transaction.Status.STATUS_ACTIVE) { throw new IllegalStateException( "Transaction status is not STATUS_ACTIVE: " + r.getTransactionStatus()); } FooEntity fe = new FooEntity("FOO"); em.persist(fe); } catch (Exception e) { throw new EJBException(e); } }
@Asynchronous public void async() { FooEntity fe = new FooEntity("ASYNC"); em.persist(fe); }