3

每天早上,我们都有一个进程在 AS400/iSeries/i6(无论 IBM 现在如何称呼它)上向 DB2 发出大量查询(约 10000 个),在过去的 2 个月中,操作员一直在抱怨我们的查询锁定了几个文件阻止他们完成夜间处理。查询非常简单,例如

Select [FieldName] from OpenQuery('<LinkedServerName>', 'Select [FieldName] from [LibraryName].[FieldName] where [SomeField]=[SomeParameter]')

我不是 iSeries 方面的专家,我想知道是否有人从 AS400/Db2 的角度对锁升级有任何见解。导致锁定的 ID 已确认是我们注册链接服务器的 ID,我们知道它最有可能是我们,因为 [Library] 和 [FileName] 与我们发出的查询一致。

这种情况最近才开始发生。是否有可能是我们的选择语句导致 AS400 升级锁?问题是它们在没有人工干预的情况下不会被释放。

4

3 回答 3

3

尝试在查询中添加“FOR READ ONLY”,然后它不会在您检索记录时锁定记录。

于 2008-10-15T21:20:15.963 回答
0

从 RPG/COBOL/JPL 作业程序写入 AS/400 端的文件将导致文件锁定(我认为默认情况下)。阅读时作业将无法获得此锁。我们使用的解决方案是......在作业运行时不要读取文件。我们在 excel 中创建了一个大的日程表,并将所有 sql 服务器和 as/400 的作业放在时间槽中,其中包含重要性和服务器的颜色编码。这样就没有冲突或过时的提取文件。

于 2008-10-16T04:18:41.453 回答
0

您可能有承诺控制导致可重复读取的锁定。检查关联的 SQL Server ODBC 连接<linkedServerName>以更改承诺控制。

于 2008-10-23T22:34:04.810 回答