问题标签 [camel-jdbc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1316 浏览

apache-camel - 骆驼 jdbc 和 outputClass 选项

我想从数据库中读取并创建一个 CSV 文件。为了做到这一点,我正在使用camel-jdbccamel-bindy

首先,我使用 SELECT 语句设置正文。

然后我调用 jdbc 组件

这将返回一个模型列表。模型类是

我收到以下错误:

据我了解,问题在于模型属性的命名。我尝试并工作的一种解决方案是重命名模型itemId => itemid。这会起作用,但我没有使用 Java 命名约定。

你知道如何在不重命名属性的情况下克服这个问题吗?

我也尝试了以下方法,但没有奏效。

0 投票
0 回答
295 浏览

apache-camel - Camel Split/RecipientList 线程和事务边界

在 Apache Camel 2.20.2 中,我创建了一个带有 split() 和 recipientlist() 的路由。我希望每个 Exchange 的整个路由和收件人都发生在同一个事务中。我对 Camel 何时使用单独的线程和事务边界感到困惑。我已经阅读了 Camel 文档并梳理了网络上的各种文章/论坛。我正在寻找一个确定的答案。

在骆驼我有这条路线:

在 Spring 上下文中,我定义了事务管理:

当我运行该路线时,似乎对 Datasource1 和 Datasource2 的更新发生在单独的事务中。此外,Datasource1 的 SelForUpdate.sql 和 UpdateDateProcessed.sql 似乎发生在单独的事务中。

我的问题是,这段代码中创建的新线程在哪里,事务边界在哪里?我将如何在一个事务上下文中发生这种情况?

在阅读 Apache Camel Developer's Cookbook 时,我了解 Split 和 RecipientList 模式都使用相同的线程进行所有处理(除非使用并行处理)。使用我创建的 SpringTransactionPolicy bean,似乎所有工作都在此路由中,并且接收者路由应该发生在相同的事务上下文中。我对么?

0 投票
1 回答
835 浏览

java - 如何等待 Apache Camel JDBC 作业完成

我的代码中有一个循环,可以生成 apache 骆驼流。但是,这些作业中的每一个都需要从 Oracle 数据库进行轮询,这会导致每个用户的最大会话数错误。原因是这些作业是异步的,因此会导致应用程序达到其对数据库连接数的限制。因此,我需要一种等待流程完成然后触发下一个流程的方法。我想知道是否有办法做到这一点?我尝试Thread.sleep在每个循环结束时使用,但它不起作用。

0 投票
1 回答
643 浏览

java - 使用骆驼创建数据源时找不到包

我试图复制以下问题中给出的相同示例。

我在我的类路径中包含了 camel-jdbc-3.0.1.jar 和我的 db 特定 jar 文件。

当我尝试使用以下命令编译代码时

我收到以下错误。

我哪里错了?我尝试将骆驼核心添加到类路径中,但没有帮助。

请让我知道您的想法,提前谢谢。

0 投票
2 回答
171 浏览

java - Is there any component available in Camel to run standalone route?

I want a child route to run from a Timer route but the following code is not running properly:

Child route:

Main route:

Output:

What component to be used in from of the child route so that it just runs when we .startRoute from the main route program?

0 投票
0 回答
92 浏览

java - 为什么 Camel JDBC 比 Java JDBC 慢?(1 秒对 4 分钟)

我使用骆驼 jdbc 代替简单的 java jdbc 代码只是为了获取 10,200 条记录

Java JDBC:

结果只需 1 -2 秒。

但是当我使用 Camel JDBC 时:

大约需要 4 分钟才能获得结果,这非常多。

知道为什么 Camel JDBC 这么慢吗?

查询看起来有点像:

有什么想法可以在骆驼 jdbc 中解决这个问题,或者我应该为此目的创建 bean 吗?

0 投票
0 回答
156 浏览

transactions - JDBC 提交失败;嵌套异常是 java.sql.SQLException: Connection is closed with Spring Camel transacted() 监听 Kafka 消费者

尝试监听 Kafka 消费者并在事务中执行一些查询并存储到 JDBC 数据存储区。执行一个查询后,我收到连接关闭错误。如果删除了 transacted() ,则不会出现这种情况。但我的用例是在事务中使用来自 kafka 消费者的数据后执行多个查询,即执行并持久化数据库中的所有查询,或者如果一个异常发生则不执行。

StudentRouteBuilder.java-

@Service 公共类 StudentRouteBuilder 扩展 RouteBuilder {

}

应用程序.yml -

spring: jackson: property-naming-strategy: SNAKE_CASE 数据源: url: jdbc:mysql://localhost:3306/test_db?autoReconnect=true 用户名: root 密码: Password@1 平台: mysql driver-class-name: com.mysql .cj.jdbc.Driver

kafka:服务器:XXXX bootstrap-servers-ttc-ssl:XXXX 主题:XXXX

错误跟踪 -

2021-05-25 23:13:01.096 WARN 20785 --- [onSumer [my-poc]] oacsspi.transactionerrorhandler:交易回滚(0x2842c098)重新载入(0x2842c098)for(forse)(forse)捕获:JDBC 提交失败;嵌套异常是 java.sql.SQLException: Connection is closed 2021-05-25 23:13:01.100 WARN 20785 --- [onsumer[my-poc]] oacamel.component.kafka.KafkaConsumer:处理过程中出错。交换[47559BD6C12528D-0000000000000000]。引起:[org.springframework.transaction.TransactionSystemException - JDBC提交失败;嵌套异常是 java.sql.SQLException: Connection is closed]

org.springframework.transaction.TransactionSystemException:JDBC 提交失败;嵌套异常是 java.sql.SQLException: Connection is closed at org.springframework.jdbc.datasource.DataSourceTransactionManager.translateException(DataSourceTransactionManager.java:435) ~[spring-jdbc-5.3.6.jar:5.3.6] at org. springframework.jdbc.support.JdbcTransactionManager.translateException(JdbcTransactionManager.java:188) ~[spring-jdbc-5.3.6.jar:5.3.6] at org.springframework.jdbc.datasource.DataSourceTransactionManager.doCommit(DataSourceTransactionManager.java:336 ) ~[spring-jdbc-5.3.6.jar:5.3.6] at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:743) ~[spring-tx-5.3.6.jar:5.3. 6] 在 org.springframework.transaction.support.AbstractPlatformTransactionManager。