2008-10-15 71 views
3

每天早上我們都有一個過程,在過去的2個月裏,AS400/iSeries/i6(無論IBM現在稱之爲什麼)向DB2發出大量查詢(〜10000) ,操作員一直在抱怨我們的查詢鎖定了一些阻止他們完成夜間處理的文件。該查詢非常simplisitic,e.g從SQL Server 2000導致鎖的OpenQuery到DB2/AS400導致鎖

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

我不是房子的i系列側的專家,想知道是否有人對從AS400/DB2的角度來看鎖升級任何見解。導致鎖定的ID已被確認爲我們註冊了我們的鏈接服務器的ID,並且我們知道它最可能是我們,因爲[Library]和[FileName]與我們發佈的查詢一致。

這最近剛剛開始發生。是否有可能導致AS400升級鎖的選擇語句?問題在於,沒有人工干預,他們不會被釋放。

回答

3

嘗試在查詢中添加「FOR READ ONLY」,然後在您檢索記錄時不會鎖定記錄。

0

從RPG/COBOL/JPL作業程序寫入AS/400端的文件將導致文件鎖定(默認情況下我認爲)。閱讀時,作業將無法獲得此鎖。我們使用的解決方案是......在作業運行時不要讀取文件。我們在excel中創建了一個大的日程表,並將所有sql服務器和/ 400作業放在時間槽中,重要程度和服務器顏色編碼。這樣沒有衝突或過時的提取文件。

+0

只讀讀取不會鎖定文件。如果另一項工作正在更新該文件,那麼試圖讀取該文件的作業應該存在鎖定問題。但是,無論如何應該安排兩個工作在不同的時間,以防止這樣的問題。 – 2008-10-16 14:09:45

0

您可能有承諾控制導致可重複讀取鎖定。檢查與<linkedServerName>關聯的SQL Server ODBC連接以更改承諾控制。