在tomcat 8服务器上部署时,出现以下错误
AssertionFailure: Transaction MARKED_FOR_JOINED after isOpen() call
以下是配置的详细信息。
服务器:tomcat 8
休眠3
春天3
服务器的Context.xml
我已经完成数据库设置:
<Resource name="jdbc/meerkatDataSource"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@10.237.59.104:1521:MEERKAT"
username="meerkat"
password="meerkat"
maxActive="100"
maxIdle="20"
minIdle="5"
maxWait="10000"/>
<Resource name="UserTransaction" auth="Container" type="javax.transaction.UserTransaction"
factory = "org.objectweb.jotm.UserTransactionFactory"/>
<Transaction factory="org.objectweb.jotm.UserTransactionFactory" jotm.timeout="60"/>
<Resource
name="TransactionSynchronizationRegistry"
auth="Container"
type="javax.transaction.TransactionSynchronizationRegistry"
factory="org.objectweb.jotm.TransactionSynchronizationRegistryFactory"/>
Transaction.xml -->
<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="userTransactionName" value="java:comp/UserTransaction">
<property name="transactionSynchronizationRegistryName" value="java:comp/env/TransactionSynchronizationRegistry"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
Persistent.xml-->
<persistence-unit name="meerkatPersistenceUnit" transaction-type="JTA">
<jta-data-source>jdbc/meerkatDataSource</jta-data-source>
请建议是否进行任何更改。另请注意,数据库设置严格在tomcat服务器下。
最佳答案
据我了解,
在这里,您使用的是工厂使用的数据源type =“ javax.sql.DataSource”:“ org.apache.tomcat.jdbc.pool.DataSourceFactory”
并且事务管理器是jta类型:
class =“ org.springframework.transaction.jta.JtaTransactionManager”>
如果用类型替换数据库,就可以解决
依次使用javax.sql.XADataSource类:
org.enhydra.jdbc.pool.StandardXAPoolDataSource。确保prsistence管理器使用相同的数据源。
有关更多信息,请通过:
https://tomcat.apache.org/tomcat-8.0-doc/jdbc-pool.html
http://xapool.ow2.org/doc/api/jdoc-1.3/org/enhydra/jdbc/pool/StandardXAPoolDataSource.html