Wir verwenden die Oracle AQ-Unterstützung von spring-data, um sowohl JMS als auch JDBC über die gleiche Datenquelle mit lokalen Transaktionen anstelle von XA zu haben. Das große Bild unseres Setups ist im Wesentlichen das, was im Referenzhandbuch beschrieben ist: in der orcl: aq-jms-Verbindungsfabrik: use-local-data-source-transaction = "true" und native-jdbc-extractor = " oracleNativeJdbcExtractor " HibernateTransactionManager (Ich versuche, Single DataSource (DBCP2 Basisdatenquelle) jetzt für AQ und Hibernate zu verwenden). Ich verwende camel JMS-Komponente (mit Hibernate-Transaktionsmanager und Verbindungsfactory von Frühjahr) für JMS-Operationen. Alles funktioniert, aber nach ein paar Minuten bekommen wir Hinweise, dass der JDBC Verbindungspool erschöpft ist und alles hängen geblieben ist. Im JDBC-Verbindungspool-Monitor konnten wir sehen, dass alle Verbindungen in Verwendung waren: So gab es eindeutig Verbindungen. Erschöpfter Pool nach einigen Minuten. Same Beitrag ist hier: https://jira.spring.io/browse/DATAJDBC-8JDBC-Verbindungsleck im JDBC-Pool bei Verwendung von AQ
We are using:
DBCP2 Basic datasource,
Hibernate 4,
Spring 4 Hibernate Transaction Manager,
Spring Data Oracle Aq,
JBOSS 6 EAP container.
<orcl:aq-jms-connection-factory id="connectionFactory"
use-local-data-source-transaction="true"
native-jdbc-extractor="dbcpNativeJdbcExtractor" 1
data-source="dataSource" />
<bean id="dbcpNativeJdbcExtractor"
class="org.springframework.jdbc.support.nativejdbc. OracleJdbc4NativeJdbcExtractor"/>
<bean id="dbcpDataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="jms" class="org.apache.camel.component.jms.JmsComponent">
<property name="connectionFactory" ref="connectionFactory"/>
<property name="transacted" value="true"/>
<property name="transactionManager" ref="txManager"/>
</bean>
Any ideas? Thank you.
Haben Sie einen Quellcode? – ibre5041
nur Quellcode hinzugefügt. Vielen Dank. – integrationarchitect