Невозможно поставить в очередь большое сообщение Oracle AQ - PullRequest
0 голосов
/ 07 февраля 2012

Я пытаюсь Enqueue отправить сообщение в очередь Oracle от клиента .NET.Если сообщение превышает определенный размер, возникает следующая ошибка:

ORA-01013: пользователь запросил отмену текущей операции

Это происходит как с XMLTYPE, так и с raw как тип сообщения таблицы очередей.Кажется, что виноват размер сообщения, но он не может точно определить причину ограниченного сообщения об ошибке Oracle.

Есть ли ограничение на размер, могу ли я увеличить размер или есть другой способустранить эту проблему?

Обновление:

  • Я могу отправить сообщение напрямую с помощью dbms_aq.enqueue(...)
  • Установка времени ожидания отКлиент .NET не имеет никакого эффекта.(Время истекает немедленно независимо от значения времени ожидания)

Ответы [ 2 ]

1 голос
/ 13 февраля 2012

В 11.2.0.3 исправлено несколько проблем, связанных с размером. Смотрите этот неавторизованный список здесь:

http://www.eygle.com/Notes/11.2.0.3.html

Некоторые примеры:

9878459  Specific length object binds over 4k may be bound as NULL
10389881 Raw buffered message payload > 8k corrupted when dequeued 
         from a buffered queue

Может быть, ваша проблема в этом списке?

1 голос
/ 07 февраля 2012

Это похоже на тайм-аут соединения с клиентом .net.Попробуйте увеличить время ожидания.Если это не сработает, проверьте, связана ли проблема с полезной нагрузкой сообщения, вставив сообщение напрямую через dbms_aq.enqueue (...).Если вы можете вставить, то само сообщение в порядке.

...