我正在寻找一种方法来锁定JavaEE环境中没有事务依赖性的资源(SELECT FOR UPDATE
锁是事务性的)。我猜它会是这样的:
@LockManager
private LockManager lockManager;
public void feedCat(Cat cat, Candy candy) throws LockTimeoutException, CatIsTooFatException {
String lockName = Cat.getName() + candy.getName();
long timeout = 1000;
LockScope scope = LockScope.APPLICATION;
try {
lockManager.aquireLock(lockName, timeout, scope);
// feed the cat....
finally {
lockManager.releaseLock(lockName); // or lockManager.releaseAll()
}
}
我找不到这样的机制,对我来说这似乎是微不足道的,因为我无法像在JavaSE中那样同步我的线程(bean); JavaEE的一个主要概念是IOC(控制反转),这有点阻止我在我的bean之间同步单个对象(特别是如果我的bean在几个JVM上运行)。