一对关系数据库表由驻留在进程中的单个对象高速缓存管理。当提交缓存时,表被更新。 DB关系表通过常规SQL查询进行更新,而不像休眠那样更有趣。最后,其他进程进入了修改这个对象而不相互通信的业务,即,每个进程都会初始化这个对象(从DB读取)并更新它(提交给DB),其他进程不会知道它坚持一个陈旧的缓存。用java中的多个进程更新单个对象
我必须解决这个工作流程。我想到了几种方法。 一个是让这个对象成为mBean。所以,对象将驻留在一个进程上,每个进程最终都会通过mBean方法调用修改该进程中的对象。
但是,这种方法存在一些问题。 1)这个缓存返回的每个对象都是一个mBean,这可能会使方法调用相当健谈。 2)此外还要求每个进程都应该看到数据库的一致数据模型(缓存),并且如果可能的话,它应该将其内容合并到数据库中。 (如交易)。如果数据库被其他某个进程显着更新,则合并失败即可。
Java中的哪些技术有助于解决此问题?
让我问你这个。记忆足迹是什么?兵马俑是否会在多个JVM中维护对象的多个副本?并同步更新它们?还是会保留一个副本,并让他们拥有自己的副本的不同流程产生幻想? – 2010-03-16 19:59:17
@Random Dude:我当然不知道答案。我与Terracotta的经历仅限于在圣地亚哥Java用户组的一位兵马俑看到一个2小时的演讲。我怀疑Terracotta可能会将整个对象图保存在集群中每个JVM的内存中,并将更改代理到其他JVM。但是,我不能100%确定这一点。也许直接与兵马俑的人在一起。 – Asaph 2010-03-17 02:52:48