无法将大型 Oracle AQ 消息排入队列
我正在尝试从 .NET 客户端将消息Enqueue
到 Oracle 队列中。如果消息超过一定大小,则会出现以下错误:
ORA-01013: 用户请求取消当前操作
XMLTYPE
和 raw
作为队列表的消息类型时,会发生这种情况。
看起来消息的大小是罪魁祸首,但不能确定是 Oracle 错误消息有限的原因。
大小有限制吗?我可以增加大小吗?或者有其他方法可以解决这个问题吗?
更新:
- 我可以使用
dbms_aq.enqueue(...)
直接发送消息, - 从.NET客户端设置超时没有任何效果。 (无论超时值如何,都会立即超时)
I am trying to Enqueue
a message onto an Oracle Queue from a .NET client. If the message exceeds a certain size, the following error occurs:
ORA-01013: user requested cancel of current operation
This happens with both XMLTYPE
and raw
as the queue table's message type.
It seems that the size of the message is to blame but cannot tell for sure be cause of the limited Oracle error message.
Is there a limit on the size, can I increase the size or is there another way to overcome this issue?
Update:
- I am able to send the message directly with
dbms_aq.enqueue(...)
- Setting the timeout from the .NET client does not have any effect. (It times out immediately regardless of the timeout value)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这听起来像是 .net 客户端的连接超时。尝试增加超时时间。如果这不起作用,请通过 dbms_aq.enqueue(...) 直接插入消息来检查问题是否与消息负载有关。如果您能够插入,那么消息本身就很好。
This sounds like a connection timeout from the .net client. Try increasing the timeout. If that doesn't work, check if the issue is with the message payload by inserting the message directly through dbms_aq.enqueue(...). If you are able insert, then the message itself is fine.
11.2.0.3 修复了一些与大小相关的问题。请在此处查看此非权威列表:
http://www.eygle.com/Notes/11.2 .0.3.html
一些示例:
也许您的问题在此列表中?
There are a couple of size-related issues being fixed for 11.2.0.3. See this non-authoritative list here:
http://www.eygle.com/Notes/11.2.0.3.html
Some examples:
Maybe, your issue is in this list?