0

我正在尝试Enqueue从 .NET 客户端向 Oracle 队列发送消息。如果消息超过一定大小,则会出现以下错误:

ORA-01013: 用户请求取消当前操作

这发生在XMLTYPEraw作为队列表的消息类型。

似乎应该归咎于消息的大小,但不能确定是有限的 Oracle 错误消息的原因。

尺寸是否有限制,我可以增加尺寸还是有其他方法可以解决这个问题?

更新:

  • 我可以直接发送消息dbms_aq.enqueue(...)
  • 从 .NET 客户端设置超时没有任何效果。(无论超时值如何,它都会立即超时)
4

2 回答 2

1

这听起来像是来自 .net 客户端的连接超时。尝试增加超时。如果这不起作用,请通过直接通过 dbms_aq.enqueue(...) 插入消息来检查问题是否与消息有效负载有关。如果您能够插入,那么消息本身就可以了。

于 2012-02-07T19:21:36.220 回答
1

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

也许,您的问题在此列表中?

于 2012-02-13T11:12:27.467 回答