在集群之间共享 Java 同步块,还是使用全局锁?
我有一些代码,我只想允许一个线程访问。我知道如何使用块或方法完成此操作,但这在群集环境中是否有效?synchronized
目标环境是 WebSphere 6.0,群集中有 2 个节点。
我有一种不起作用的感觉,因为每个节点上的应用程序的每个实例都有自己的JVM,对吧?synchronized
我在这里尝试做的是在引导系统时对数据库记录执行一些更新。它将查找早于代码版本的任何数据库记录,并执行特定任务来更新它们。我只想要一个节点来执行这些升级,因为我想确保每个工作项只升级一次,并且这些升级的性能不是一个大问题,因为它只发生在应用程序启动时,并且只有在代码自上次启动以来已更改时才真正执行任何操作。
数据库是 DB2v9,我直接通过 JNDI(没有 ORM 层)访问它。
有人建议,全局锁定可能是要走这条路,但我不确定该怎么做。
在这个领域,有人有任何指点吗?
谢谢!