我正在进行一些计算并尝试将结果保存到数据库。当服务器完成其工作时, 我正在向客户端发送一条JMS消息,指示计算结果,然后用户可以查看它。但是当用户点击结果时我的问题,他/她没有看到任何内容。因为结果不在数据库中。当他按下第二次时那么结果就在那里。大约在收到JMS消息的1/2秒后,结果将保存到数据库中。
解决问题我正在创建bean A,它调用B bean的方法。 B bean的方法,进行计算并保存数据库。我在B的方法中定义了TRansactionAttributeType.REQUIRES_NEW。 在调用B的mehod结束后,我将JMS消息发送给客户端。但是当时没有提交事务。
@Stateless
public class A implements ARemote
public void methodA()
{
// call method of B
// Send JMS message
}
@Singleton
public class B implements BRemote
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void methodB()
{
}