java - Camel 向 OracleAQ 发送消息问题

标签 java oracle jms apache-camel activemq

我们有一个要求,尝试使用 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/

相关文章:

java - 如何存储具有相同名称但不同条目的多组数据 firestore

c# - 我在以下割让中遇到错误。 (System.Data.OleDb.OleDbException : ORA-00933: SQL command not properly ended)

sql - 防止删除不存在的序列、创建现有用户时出现错误

java - Jboss HornetQ 多个消费者

java - Apache Camel - 仅当队列大小大于时才使用消息

java - 在更新程序中引用文件(Java)

java - 为什么 US-ASCII 编码接受非 US-ASCII 字符?

java - m2eclipse 如何通过 maven-glassfish-plugin 创建新域?

oracle - PL/SQL : How to handle timeout for DBMS_AQ. 出列

java - 在 Spring Boot 上动态修改 @JMSListener 目标