我们有一个要求,尝试使用 Camel 将巨大的 xml 负载从 activemq 队列发送到 oracle aq 队列。
有效负载超过 4000 字节。因此,Camel 无法发送此消息,因为 Oracleaq 尝试将此消息转换为限制为 4000 个字符的 VARCHAR。
那么,我们如何将这些巨大的有效负载传递给 Oracle。我是否必须在 Camel 中设置一些内容,以便将消息作为“CLOB”而不是“VARCHAR”传递给 Oracle?或者是甲骨文方面需要做的事情?
最佳答案
Apache Camel在camel-jms组件中使用Spring JMS,因此它支持JMS可以做的事情。因此,如果 Oracle AMQ 有 4000 字节左右的限制,您需要在 Oracle 端处理它。
Camel 基本上使用 JMS,您需要深入研究 Oracle AMQ 文档来弄清楚它的 JMS 互操作。
JMS 有不同的消息类型:文本、字节、映射、对象等。对于 XML,您可能需要使用字节或文本。您可以在 Camel 中的 JMS 端点上配置 jmsMessageType 以强制使用特定类型。如果没有,那么 Camel 将根据消息正文类型选择最合适的。例如字符串 => 文本等
还有其他 Apache Camel 用户已与 Oracle AMQ 集成,因此应该是可能的。
关于java - Camel 向 OracleAQ 发送消息问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22717249/