使用Oracle AQ进行请求 - 回复

时间:2016-03-02 00:29:26

标签: oracle-aq

我想使用Oracle AQ实现request-reply模式。基本上“请求者”会:

  1. 将请求消息排入队列。
  2. 获取为请求消息生成的消息ID。
  3. 将回复消息出列,在dequeue options 关联属性中指定为原始请求消息的消息ID。
  4. 事实证明,在DBMS_AQ.ENQUEUE过程中,返回原始消息ID的msgid OUT参数是 RAW ,而dequeue选项的相关属性是 VARCHAR2 (128)

    实施该方法的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

虽然我害怕只是尝试将RAW转换为VARCHAR2(毕竟,如果API的返回是RAW,对我来说,这意味着字节不一定对应于特定字符集中的字符串),似乎只是使用TO_CHAR将RAW msgId转换为VARCHAR2。奇怪的是,如果您尝试使用UTL_RAW.CAST_TO_VARCHAR,它将无效。

我将继续采用这种方法,虽然它并没有让我100%自信。