您是正确的,跨进程的同步将无法使用Java同步结构进行。幸运的是,您的问题确实不是代码同步之一,而是同步与数据库的交互。
解决此问题的正确方法是使用数据库级锁定。大概您有一个包含数据库模式版本的表,因此您应确保在启动/升级过程中锁定该表。
如果您指定数据库类型(DB2?)和访问方法(原始sql,jpa等),则涉及的精确sql / db调用可能会更加清楚。
更新(8/4/2009 2:39 PM)
:我建议在一些保存模式版本的表上使用LOCK
TABLE语句。这将序列化对该表的访问,从而防止两个实例一次通过升级代码运行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)