我正在编写一个Spring批处理应用程序,以周期性地将数据从一个数据库(IBM DB2)中的表复制到另一个数据库(SQL Server)中的表。阅读Spring批处理文档会给我这些关于并发性的指针-
1)在线(在这种情况下可能很多)和离线应用程序(此处为批处理应用程序)应遵循相同的锁定策略。
2)数据库本身可能需要显式锁定才能进行读取和/或写入。此外,应用程序可以使用隐式乐观(基于上次更新时间戳记)或悲观锁定(基于表中的显式锁定列)。
目前,我没有关于写入(或读取)任何一个数据库的在线应用程序使用的锁定策略的信息,但计划进行查找。
我的问题-
1)我是否还要担心与源数据库有关的锁定/并发? -因为我只是从中读取。从源中读取时不考虑锁定会产生什么影响?
2)知道在线应用程序的锁定策略后,离线应用程序的对应策略应该是什么?例如,如果在线应用程序遵循DB2的默认Cursor Stability隔离级别,那么批处理应用程序应遵循什么策略?
3)与行相对的多行如何影响设计?
4)我应该问在线应用程序的设计者哪些问题?