基本上,我有一个JMS队列和一个MDB来收集来自JMS队列的消息,对它们进行一些处理,然后通过JPA将消息持久化到数据库中。我标记了负责将消息持久化到数据库中的方法以在新事务中启动:
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void create(T entity)
{
try
{
getEntityManager().persist(entity);
}
catch(Exception e)
{
throw new RuntimeException("DB Exception");
}
}
如果事务被回滚,它会自动重新尝试直到事务完成吗?如果不会,如何启用该功能?