Одновременная пользовательская проблема сеанса временной таблицы DB2 - PullRequest
0 голосов
/ 11 мая 2018

Мы работаем с приложением в .net с DB2 в качестве базы данных.Я использую временную таблицу в моей хранимой процедуре.Иногда выдает ошибку «таблица используется».

Declare Global Temporary Table TRNDETAILS (USERID INT ,
Name VARCHAR ( 25 )) WITH REPLACE;

Согласно приведенному ниже документу, временные таблицы относятся к сеансу.Тогда почему показывается "таблица используется".Как можно решить?

https://www.ibm.com/support/knowledgecenter/en/SS6NHC/com.ibm.swg.im.dashdb.sql.ref.doc/doc/r0003272.html

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

QTEMP уникален для каждого задания / соединения ...

Я предполагаю, что ваше приложение создает временную таблицу только в одном месте, и создание временной таблицы - это одно из первых действий, которые оно выполняет.

Я также подозреваю, что вы используете пул соединений в .NET.

Таким образом, соединение фактически не закрывается, оно остается открытым в пуле соединений.

Где-то в вашем приложении вы неправильно утилизируете набор результатов и / или не вносите изменения в временную таблицу.Таким образом, оставляя строки внутри него заблокированными, когда соединение возвращается в пул.

Вы, вероятно, должны удалить временную таблицу, прежде чем ваше приложение закроет соединение и вернет соединение в пул.

Это должно предотвратить ошибку, но было бы неплохо отследить ошибку, из-за которой строки были заблокированы.

0 голосов
/ 11 мая 2018

SQL0913N является тайм-аутом блокировки или тупиком.

Это может отсутствовать в вашей сеансовой таблице. Если ваше приложение .net не использует многопоточность SQL для одного соединения.

Проверьте DSPRCDLCK, WRKOBJLCK связанные инструменты. Вам необходимо отследить конфликтующие операторы SQL и принять меры в зависимости от причины. Иногда это включает изменение уровня изоляции в вашем приложении.

Изучите диагностику Db2 для i, чтобы получить больше информации, то есть, является ли тайм-аут блокировки или взаимоблокировка, какие соединения задействованы и какие объекты задействованы.

...