【问题标题】:Cannot enqueue large Oracle AQ message无法将大型 Oracle AQ 消息排入队列
【发布时间】:2012-02-07 12:03:00
【问题描述】:

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

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

XMLTYPEraw 作为队列表的消息类型时会发生这种情况。

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

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

更新:

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

【问题讨论】:

    标签: oracle11g odp.net oracle-aq


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回复。我已根据调查结果更新了我的问题。
    • 所以消息大小不是问题。您能否包括队列有效负载类型的定义,并且可能是您尝试插入队列的代码 sn-p ?
    【解决方案2】:

    在 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
    

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

    【讨论】:

      猜你喜欢
      • 2014-05-22
      • 1970-01-01
      • 2012-03-30
      • 2013-12-28
      • 1970-01-01
      • 2021-01-28
      • 1970-01-01
      • 2018-05-14
      • 1970-01-01
      相关资源
      最近更新 更多