【发布时间】:2014-08-25 14:59:13
【问题描述】:
我在 glassfish 中部署了一个战争文件。我们有一个 Singleton bean,其中有 1 个同步方法。
@TransactionAttribute (TransactionAttributeType.REQUIRED)
public synchronized void do()
{
...
}
但是,我注意到事务是在调用方法之前启动的。调用者获取 bean 类的监视器锁后如何启动事务?
谢谢。
更新:我们只是想拥有一个一次只能由一个线程调用的 bean 方法。在前一个线程完全完成之前,我们不希望任何其他线程调用此方法。我创建了另一个线程,在那里我有了使用单例 bean 的想法:synchronized method in stateless session bean not working as expected in glassfish
更新:在做了一些阅读之后,似乎我可以创建自己的事务 UserTransaction。会支持吗?没关系。我收到此错误消息:
Only session beans with bean-managed transactions can obtain UserTransaction
【问题讨论】:
-
这是一个很好的问题。据我所知,由于代理的工作方式,这是不可能的。你能解释一下你想要达到的目标吗?
标签: java jakarta-ee glassfish stateless-session-bean session-bean