Превышен лимит ответа базы данных Teradata 3130?


[Teradata Database] [3130] Response limit exceeded

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

Что на самом деле означает эта ошибка? Какие типы условий могут вызвать это?

Edit: я обнаружил, что проблема исчезает, когда я создаю свой ASP.NET приложение (vs2012). Это похоже на что-то связанные с подключениями кэшируются где-то на моей машине. После того, как я повторно использую пул приложений с перестроением, он сбрасывает все. В следующий раз, когда это произойдет, я попытаюсь сохранить сеть.конфигурационный файл, который автоматически перезапускает пул приложений без восстановления библиотеки DLL.

2 2

2 ответа:

Это вырезка и вставка из руководства по сообщениям:

Превышен предел отклика 3130.

Пояснение: существует предел СУБД в 16 неурегулированных ответов для один сеанс. Если приложению разрешено накапливать ответы, эта ошибка произойдет. Ответ-это набор ответов из выборки. заявление. Ответ хранится в СУБД до тех пор, пока мы не узнаем, что пользователь сделано с ним, и в этот момент он отменяется. Существует два сценария:

  1. Если KeepResp выключен, ответ автоматически отменяется, когда все строки были возвращены приложению и хост был удален. уведомлен об окончании ответа.

  2. Если KeepResp включен, ответ удерживается до тех пор, пока пользователь явно не отменит его. В каждом случае ответ может быть явно отменен тот самый application.as как только в этом отпадет необходимость.

Сгенерировано: Диспетчер.

Для кого: конечный пользователь.

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

Как вы уже заметили, это обычно вызвано неправильным поведением приложения, слишком большим количеством открытых результирующих наборов на стороне сервера. Это ответственность клиента, чтобы закрыть их : -)

В моем случае ошибка cam, когда я пытался создать более 15 операторов / Preparedstatements на одном экземпляре соединения и затем исполнил запрос на них.

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

Результирующий набор, как правило, не соответствует действительности, если речь идет о превышении предела ответа 313, поскольку оператор автоматически закрывает существующий результирующий набор в случае его повторного использования.