我有几个在同一行上执行的调度进程。其实这一行是需要发送的短信。第一个过程是@Asynchronious过程,当我按下发送按钮时调用,第二个过程是@调度过程,每分钟调用一次。在我写了一个SMS到数据库之后,它的状态为0.在我成功或失败地发送它之后,它将相应地具有状态2或3。问题是,当我从DB2读取SMS时,但在实际发送之前,第二个进程可以读取并发送它。所以,我的问题如何防止呢?我可以锁定特定的行来阅读吗?另一种方法是在读取特定行时添加额外状态“处理”并更改此状态,但我怀疑是否可以同时读取和写入?我虽然也关于全球旗帜,这将表明这个过程不能运行,但我不仅寻找解决方案,我还寻找最正确的解决方案。非常感谢你!我可以锁定一排DB2以供阅读吗?
很遗憾,我的英语家伙,如果有人将编辑它,我会很感激。
请注意,只有您有一台服务器才能使用该功能。找到一个数据库解决方案可能是最好的。请注意,通过正确的隔离级别,如果您执行了对该行的读取,那么将在事务处理期间将其锁定以供读取,并且可以稍后进行更新。或者,您可以选择更新以使用写入意图进行读取。 – 2014-10-27 15:42:29
感谢您的警告我会尽力实施这个解决方案。 – Anatoly 2014-10-28 05:36:12