基本的には、JMS キューと、JMS キューからメッセージを収集し、それらに対して何らかの処理を行い、JPA を介してメッセージをデータベースに永続化するための MDB があります。メッセージを DB に永続化するメソッドを、新しいトランザクションで開始するようにマークしました。
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void create(T entity)
{
try
{
getEntityManager().persist(entity);
}
catch(Exception e)
{
throw new RuntimeException("DB Exception");
}
}
トランザクションがロールバックされた場合、トランザクションが完了するまで自動的に破棄されますか? そうでない場合、それを有効にする方法は?