【发布时间】:2015-04-06 05:57:22
【问题描述】:
要求:我们在 java 应用程序中创建一个数据库连接。我们需要在整个 Java 应用程序上通过相同的连接运行所有语句。 问题:一旦在 Camel 路由中传递了创建的数据源,它显然会创建一个新的连接。
我正在使用创建与 Oracle 数据库的连接的 DataSource 对象。在这个连接上,我运行了几个语句。
Connection myConn = myDBDatasource.getConnection()
作为第二部分,我将创建的数据源用于我的骆驼路线
SimpleRegistry reg = new SimpleRegistry();
reg.put("myDBDatasource", myDBDatasource);
在我的路由中,我使用一个 bean 创建一个查询,该查询最终结束于我的数据库。
from("direct:start").bean(MyClass.class,
"processData").to("jdbc:oracleDataSource?resetAutoCommit=false");
所以在这种情况下的问题是我在开始时创建了一个新连接,我想在整个应用程序中使用它。一旦 Camel 完成到数据库的路由,它就会创建一个新的。
问题 1:有什么方法可以在 Camel RouteBuilder 中以某种方式保持相同的 Connection (myConn) 吗? 问题 2:我的数据源已设置为 DefaultAutoCommit(false) 。会不会是 RouteBuilder Camel 内部忽略了这一点并仍然提交查询?
【问题讨论】:
标签: java oracle jdbc apache-camel datasource