2011-02-25 4 views
4

없이 bitlogix 트랜잭션 관리자를 사용하고 독립 실행 형 JBossTS을 사용하면 bitronix.tm.resource.jdbc.PoolingDataSource을 사용할 수 있습니까?BTM없이 bitronix PoolingDataSource를 사용할 수 있습니까?

데이터베이스 접근을 위해 나는 Spring의 @Transactional annotation (또는 유사한 구현을 가진 Spring의 TransactionTemplate)으로 트랜잭션 경계 설정을 사용하여 Hibernate를 사용한다. PoolingDataSource 및 독립 실행 형 JBossTS가 테스트에 사용되지만 DB 연결 풀링을 포기하지 않으려합니다.

가능하지 않은 경우 여기에 맞는 다른 풀링 데이터 소스는 무엇입니까? Some other question은 c3p0이 옵션이 아님을 제시합니다. 사실입니까?

답변

2

아니요, 불가능합니다. 트랜잭션 관리자와 JDBC 연결 풀 간의 통신을 정의하는 표준이 없기 때문에 트랜잭션 관리자간에 XA 풀을 전환 할 수도 없습니다. 짧은 이야기입니다. 긴 이야기는 여기에 있습니다 : http://blog.bitronix.be/2011/02/why-we-need-jta-2-0/

JBossTS의 경우 AFAIK 유일한 옵션은 JBossAS 연결 풀을 사용하는 것이지만 최소한 JCA 런타임을 필요로하므로 사소한 업적은 아닙니다. 그러나 확실히 더.

연결 풀링없이 JBossTS 또는 JBossTS를 풀링과 JBossAS 내부에서 모두 사용하는 것이 유일한 현실적인 옵션입니다.

+0

답장을 보내 주셔서 감사합니다. 데이터 소스에서 풀링을 투명하게 수행 할 수 있다고 생각했습니다 (예 : '닫기'연결이 종료되는 대신 풀로 반환 됨). 따라서, 임의의 일반'DataSource'가 주어진 트랜잭션 관리자에 의해 사용될 수 있다면, 그러한 투명한 풀링 DS이어야한다. –

+0

BTW, 예를 들어'oracle.jdbc.xa.client.OracleXADataSource'는'javax.sql.javax.sql.XADataSource'이며'javax.sql.ConnectionPoolDataSource'입니다 (두 인터페이스는 Java 1.4부터 생각할 수 있습니다.). –

관련 문제