【发布时间】:2013-10-07 20:24:54
【问题描述】:
我有一个从文件加载数据然后尝试将记录插入表中的进程。
如果文件太大,加载 XYZ 表中的所有数据需要一段时间。我正在使用批处理在表中插入记录。
与此同时,另一个进程启动并尝试根据某些条件从 XYZ 表中读取数据,因为第一个进程尚未完成将数据写入表而第二个进程尝试读取相同的数据,我得到一个 Object in use 错误。
我正在考虑两种解决此问题的方法:
除非所有的记录都是process1插入的,否则status列要保持不同,这样process2就取不到记录了
以块的形式插入数据,如果出现问题,有一种机制从最后插入的记录重试(需要一种机制)。
我正在使用 DB2 和普通 jdbc 来插入记录。
请让我知道解决此问题的最佳方法是什么
【问题讨论】:
-
另一种选择是在一个事务中执行所有插入操作,这样其他人在您的加载过程完成之前不会看到这些插入操作。顺便说一句:您使用的是哪个 DBMS?后格雷斯?甲骨文?
-
我正在使用 DB2,我正在使用普通 jdbc 在 DB 中插入记录
标签: java jdbc db2 prepared-statement ibm-midrange