使用 Oracle AQ 请求-回复
Request-reply with Oracle AQ
我想使用 Oracle AQ 实施 request-reply 模式。基本上 "requestor" 会:
- 排队请求消息。
- 获取为请求消息生成的消息 ID。
- 将回复消息从队列中取出,在 dequeue options 中指定 correlation 属性 作为原始请求消息的消息 ID。
原来在DBMS_AQ.ENQUEUE程序中,returns原始消息ID是RAW的msgid OUT参数,而相关属性 的出列选项是 VARCHAR2(128).
实现它的正确方法是什么?
虽然我害怕简单地尝试将 RAW 转换为 VARCHAR2(毕竟,如果 API 的 return 是 RAW,对我来说,这意味着字节可以不一定对应于特定字符集中的字符串),似乎只是使用 TO_CHAR 将 RAW msgId 转换为 VARCHAR2 的问题。奇怪的是,如果您尝试使用 UTL_RAW.CAST_TO_VARCHAR.
它不起作用
我会继续使用这种方法,尽管它并不能使我 100% 有信心。
我想使用 Oracle AQ 实施 request-reply 模式。基本上 "requestor" 会:
- 排队请求消息。
- 获取为请求消息生成的消息 ID。
- 将回复消息从队列中取出,在 dequeue options 中指定 correlation 属性 作为原始请求消息的消息 ID。
原来在DBMS_AQ.ENQUEUE程序中,returns原始消息ID是RAW的msgid OUT参数,而相关属性 的出列选项是 VARCHAR2(128).
实现它的正确方法是什么?
虽然我害怕简单地尝试将 RAW 转换为 VARCHAR2(毕竟,如果 API 的 return 是 RAW,对我来说,这意味着字节可以不一定对应于特定字符集中的字符串),似乎只是使用 TO_CHAR 将 RAW msgId 转换为 VARCHAR2 的问题。奇怪的是,如果您尝试使用 UTL_RAW.CAST_TO_VARCHAR.
它不起作用我会继续使用这种方法,尽管它并不能使我 100% 有信心。