요구 사항 : 자바 응용 프로그램 내에서 데이터베이스 연결을 만듭니다. 모든 Java 애플리케이션에서 동일한 연결을 통해 모든 명령문을 실행해야합니다. 문제 : 생성 된 데이터 소스를 Camel 경로에서 전달하면 분명히 새로운 연결이 생성됩니다.낙타 루트 내에서 db 연결 유지
Oracle 데이터베이스에 대한 연결을 생성하는 DataSource 개체를 사용하고 있습니다. 이 연결에서 나는 여러 문장을 실행합니다.
Connection myConn = myDBDatasource.getConnection()
두 번째 일환으로, 난 내 길을 내 낙타 경로
SimpleRegistry reg = new SimpleRegistry();
reg.put("myDBDatasource", myDBDatasource);
을 위해 생성 된 데이터 소스를 사용, 난 결국 내 데이터베이스에 끝나는 조회를 작성 빈을 사용합니다.
from("direct:start").bean(MyClass.class,
"processData").to("jdbc:oracleDataSource?resetAutoCommit=false");
그래서이 경우 문제는 전체 응용 프로그램 전체에서 사용하려는 처음부터 새로운 연결을 만듭니다. 일단 Camel이 DB에 라우팅을 수행하면, Camel은 새로운 것을 생성합니다.
질문 1 : 어떻게 든 동일한 Connection (myConn)을 Camel RouteBuilder 내부에서 유지 관리 할 수있는 방법이 있습니까? 질문 2 : 내 데이터 소스가 이미 DefaultAutoCommit (거짓)으로 설정되어 있습니다. RouteBuilder Camel 내부에서이를 무시하고 쿼리를 커밋 할 수 있습니까?
연결 풀링을 살펴 보는 것도 좋은 생각입니까? – vikingsteve
나는 스프링을 사용하지 않는다. 내 프로젝트에 추가 라이브러리를 추가하지 않고 가능한 다른 해결책이 있습니까? – Stephan