tomcat集群两个项目发送数据的问题
有个项目有个功能就是将数据库某表某字段为0的数据查出来发送出去,如果TOMCAT做两个项目的集群后,那么A项目可能去扫描状态为0的那条数据,然后将数据发送出去,置状态为1,B项目可能也去扫描到同样的数据,这样就做了两次重复发送的操作了,如何避免这种情况。请高手指点 tomcat 集群数据并发 --------------------编程问答-------------------- 搞个XML或数据库变量之类的标志,A和B扫描前先将标志设为运行状态,标志为停止状态才扫描0 --------------------编程问答-------------------- 能不能不在代码控制,这两个项目的代码都是一样的,只有数据库是同一库 --------------------编程问答-------------------- 据我的项目经验告诉我,所有表的全检索遍历,都有一张 特殊表记录如T001表里有学生编号,T002也有学生编号,如果你的检索设计学生编号,就得有个Z001表进行排他处理,也就是在Z001里面登录一条数据,
每次检索或者更新之类的都要去Z001先检索是否有这么一条数据,如果有,提示信息当前表是被检索/更新状态,稍后处理 --------------------编程问答-------------------- 举个例子
T001有 s1学生编号,姓名,性别。。。。。
s2.。。。。。。。。。。。。。。
集群一检索出来sN,需要对sN的性别修改,需要先去z001检索如果没有sn这条记录,才能进行处理,
为了防止集群二也对sN修改,此时在Z001表登记一条信息,
集群这个时候也许检索到了sn这条记录,但是修改之前必须去Z001表检索,发现有了这条记录,只能进行下一条处理。 --------------------编程问答-------------------- 这个就复杂了,能不能有简单的处理办法,而且这个速度会慢的,相当于同步处理了 --------------------编程问答-------------------- 楼主的问题我以前搞过一个监控项目.就是查询数据库内容然后显示在页面上.不过是在websphere集群下运行的.
我查询数据用的是quartz作业集群.
大概的说下quartz集群,里面有job作业线程.不管你有几个集群几点,那么在集群环境下,quartz框架只会运行一个job作业线程.也就是查询数据库只有一次.而不会出现多余的查询.向你上面说的那样A查询了B可能在查询一遍.
楼主感兴趣的话可以看看quartz集群的实现以及运行的结果.
目前我认为这样是最简单的.
另外我想问下你在集群环境下你是怎么将数据发送出去的?怎么保证数据每一次都能够成功的发送出去?
期待和你讨论.
补充:Java , Web 开发