OpenQuery для DB2 / AS400 из SQL Server 2000 вызывает блокировки - PullRequest
3 голосов
/ 16 октября 2008

Каждое утро у нас есть процесс, который выдает многочисленные запросы (~ 10000) к DB2 на AS400 / iSeries / i6 (как бы IBM их ни называл в настоящее время), за последние 2 месяца операторы жаловались, что наш запрос блокирует пара файлов, не позволяющих им завершить свою ночную обработку. Запросы очень просты, например

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

Я не эксперт в области iSeries, и мне было интересно, есть ли у кого-нибудь представление об увеличении блокировки с точки зрения AS400 / Db2. Идентификатор, который вызывает блокировку, был подтвержден как идентификатор, которым мы зарегистрировали наш связанный сервер, и мы знаем, что он наиболее вероятен, поскольку [Library] и [FileName] соответствуют запросу, который мы выдаем.

Это только недавно началось. Возможно ли, что наши операторы select, которые вызывают AS400, обостряют блокировки? Проблема в том, что они не выпускаются без ручного вмешательства.

Ответы [ 3 ]

3 голосов
/ 16 октября 2008

Попробуйте добавить в запрос «ТОЛЬКО ДЛЯ ЧТЕНИЯ», тогда он не будет блокировать записи при их получении.

0 голосов
/ 24 октября 2008

Возможно, у вас есть управление фиксацией, вызывающее блокировку повторяемого чтения. Проверьте соединение ODBC с SQL Server, связанное с <linkedServerName>, чтобы изменить контроль фиксации.

0 голосов
/ 16 октября 2008

Запись в файлы на стороне AS / 400 из рабочей программы RPG / COBOL / JPL приведет к блокировке файла (я думаю, по умолчанию). Задание не сможет получить эту блокировку, когда вы читаете. Решение, которое мы использовали, было ... не читать файлы, когда выполняются задания. Мы создали большую таблицу расписаний в Excel и разместили на ней все серверы sql и as / 400 в виде временных интервалов с цветовым кодированием для важности и сервера. Таким образом, никакие конфликты или устаревшие файлы также не извлекаются.

...