购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

20.采用提交和重启策略

每一个DB2 SQL批量程序开发人员都应该在需要修改数据的程序中加入一种提交策略。还可以更好,IT工作室应该有一个要求所有开发人员都遵守的提交策略。如果未能成功提交,这可能导致锁定、并发和性能问题。如果一个程序正在修改数据,而另外某个程序或进程试图读取或修改同样的数据,这个程序或进程就可能被锁定。除了提交策略,在异常终止的情况下还必须有重启策略,使得程序能够知道重启时从哪里继续。

SQL提交(commit)会应用已发生的所有SQL修改(截至最后一次提交),并使这些数据修改永久保留。提交时还会释放所持有的锁。如果另一个程序试图处理某些相同的数据,但这些数据已锁定,DB2会把这个程序置于一个等待队列中,直到锁释放,或者已经过去一定的时间。一般工作室会要求DB2将请求在队列中保留30到45秒,超过这个时间就会向请求者发回一个-911 SQL码。DB2就是通过这种方式告诉程序或进程:它已经努力尝试得到所请求的数据,但是发现另一个进程在指定的等待时间内持有这个数据的锁。另外还有一个zParm IRLMRWT,可以用来控制线程到期之前等待的秒数,默认为60秒。工作室通常会把它降低为某个更合适的值。

建议维护一个DB2重启表,其中包括包名、最后提交的键值和提交频率。每次提交之后程序会更新这个表,并检查提交频率。开发人员无需改变代码就能够直接修改这个表中的程序提交频率,甚至在程序运行期间也可以修改。 a2zAez+CNFhhxeTr0EqzsFpbgjAUPtlC/9L1WjHFtMVWQpOOQ+6eg/SGur2SGZ9+

点击中间区域
呼出菜单
上一章
目录
下一章
×