当前位置: 首页 > 知识库问答 >
问题:

维护驼峰路由内的数据库连接

蒲德曜
2023-03-14

要求:我们在java应用程序中创建一个数据库连接。我们需要在整个Java应用程序上通过相同的连接运行所有语句。问题:一旦在骆驼路由中传递创建的数据源,它显然会创建一个新的连接。

我正在使用一个数据源对象来创建到Oracle数据库的连接。关于这一点,我做了几个陈述。

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完成了到DB的路由,它就会创建一个新的路由。

问题1:有没有办法在Camel RouteBuilder中保持相同的连接(myConn)?问题2:我的数据源已经设置为DefaultAutoCommit(false)。是否在RouteBuilder中Camel忽略了这一点,仍然提交查询?

共有2个答案

子车英达
2023-03-14

我最终创建了自己的自定义数据源类,并实现了一些部分,这些部分也可以在Spring的SingleConnectionDataSource中找到。

华森
2023-03-14

您可以使用Spring的SingleConnectionDataSource,也可以创建一个托管源。如果您想阻止Camel提交,请使用Connection代理并禁用提交()。

 类似资料:
  • 关于ApacheCamel的简短问题。我有以下场景,其中我的服务器接收jms消息,然后转换为csv文件,然后插入DB。为此,我有两个bean: xml2csv 我使用路由像: 当"路由"一个文件从-到,它是移动像一个消息?或者把问题放在不同的地方,ApacheCamel是否获取一个文件,将其包装为消息,并将其路由到bean或组件? 我的理解是正确的还是错误的。

  • 我将数据插入到多个表中,我使用mybatis组件来实现这一点。在插入数据之前,我还需要创建一个临时表。高层概述如下: 获取要插入的数据 步骤2到5应该是他们自己的单一事务,以防出现故障。我现在有这个: CreateTmpLinksTable需要有权访问当前连接,这样临时表的创建就不会在不同的事务中发生(如果有关系,以PostgreSQL为目标)。 我目前有: 我也没有设置我的交易管理器。我怀疑我必

  • 我是个新手 我想构建一个通用API,其中路由信息以xml格式在数据库中可用(信息来自web应用程序)。 现在另一个Web应用程序做了一些事件,然后路由信息ID传递到这个通用的API,然后它创建路由和进程给响应回Web应用程序(我认为这是基于事件的路由纠正我,如果我错了)。 如何使用 建议一些链接或举例如何从这里开始? 我对Camel有基本的了解(在独立应用程序中使用文件、jdbc、cxf组件)。

  • 我的骆驼路线有问题,它无法识别我的“dataFormats”标签。我想我的命名空间可能有问题,但我不确定。非常感谢任何帮助。我的错误如下: 无法执行目标组织。阿帕奇。camel:camel-maven插件:2.10.4:在ExactTargetSample项目上运行(默认cli):null:MojoExecutionException:InvocationTargetException:文件[C:

  • 是jax-ws生成的webservice接口(为简洁起见去掉了注释)。有一种无参数方法: 尝试使用CXF从Camel路由调用无参数操作,如下所示: 调用终结点时导致驼峰呕吐: rocessor.processIllegalArgumentException:获取错误的参数大小来调用out服务,期望大小为0,参数大小为1。请检查消息正文是否与CXFEndpoint POJO数据格式请求匹配。roce

  • 我试图通过驼峰路由将消息放到Weblogic JMS中的队列中。 我的目标是最终配置一个Route以使用来自jms队列的消息,我将早期Route的数据发布到该队列。 这是我的配置: 我的路线如下所示: 我尝试执行此路由时遇到此异常: 我按照以下过程创建了此处提到的队列:https://blogs.oracle.com/soaproactive/entry/how_to_create_a_simpl