我正在使用 JBoss AS 6 编写 Java EE 应用程序,并且我有一个资源需要对给定参数的方法进行独占访问(第三方软件的某些接口)。目前我很顽皮(因为规范禁止它)并java.util.concurrent.ReentrantLock
用于处理锁定。
现在我将多个 JBoss 应用程序服务器集群在一起,所以我需要一个可以跨集群中不同节点工作的解决方案。我想我至少有以下选择。
理想情况下,我正在寻找一个高级 API,这样我就可以编写这样的 EJB 方法
public class MyEJBBean {
private SharedLock lock;
public void doSomethingWithSharedResource(String s) {
lock.lock(); // blocks until shared resource is not used by anyone else
try {
// Use shared resource
}
finally {
lock.unlock();
}
}
我错过了任何选择吗?有没有人可以分享这种锁定机制的经验?