小编mka*_*man的帖子

无法在事务中间更改事务只读属性

我将 BoneCP 与 Postgresql 和 Spring JdbcTemplate 一起使用。当 JdbcTemplate 执行查询然后尝试关闭连接时,会出现以下异常:

org.postgresql.util.PSQLException:无法在事务中间更改事务只读属性。在 org.postgresql.jdbc2.AbstractJdbc2Connection.setReadOnly(AbstractJdbc2Connection.java:725) 在 com.jolbox.bonecp.ConnectionHandle.setReadOnly(ConnectionHandle.java:1279) 在 com.jolbox.bonecp.ConnectionHandle.(ConnectionHandle.java:254)在 com.jolbox.bonecp.ConnectionHandle.recreateConnectionHandle(ConnectionHandle.java:273) 在 com.jolbox.bonecp.ConnectionHandle.close(ConnectionHandle.java:476) 在 org.springframework.jdbc.datasource.DataSourceUtils.doCloseConnection(DataSourceUtils.java) :341)在org.springframework.jdbc.datasource.DataSourceUtils.doReleaseConnection(DataSourceUtils.java:328)在org.springframework.jdbc.datasource.DataSourceUtils.releaseConnection(DataSourceUtils.java:294)在org.springframework.jdbc.core。 JdbcTemplate.execute(JdbcTemplate.java:411) 在 org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:456) 在 org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:464) 在 org .springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:472) 在 org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:477)

由于它无法关闭连接,打开的连接达到最大连接数,然后应用程序变得无响应。

我没有设置任何与交易相关的属性。所以交易设置应该是默认的。我怎样才能解决这个问题?

依赖和配置:

boncp 0.8.0-rc1 postgresql 9.2-1002.jdbc4 spring-jdbc 3.2.1.RELEASE

<bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource"        destroy-method="close">         <property name="driverClass" value="org.postgresql.Driver" />       <property name="jdbcUrl" value="jdbc:postgresql://127.0.0.1/mkayman" />         <property name="username" value="mkayman" />        <property name="password" value="" />       <property name="idleConnectionTestPeriodInMinutes" value="5" />         <property name="idleMaxAgeInMinutes" value="30" />      <property name="maxConnectionsPerPartition" value="5" />        <property name="minConnectionsPerPartition" value="2" />        <property name="partitionCount" value="2" …
Run Code Online (Sandbox Code Playgroud)

postgresql spring spring-jdbc bonecp

5
推荐指数
1
解决办法
4527
查看次数

没有为jdbc找到合适的驱动程序:mysql:// localhost:3306/test

当我尝试在Tomcat 7上运行我的JSF应用程序时,它会抛出此异常.

Caused by: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/test
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.getConnection(DriverManagerConnectionProviderImpl.java:192)
at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:278)
at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:297)
... 51 more
Run Code Online (Sandbox Code Playgroud)

如果我在创建EntitiyManagerFactory之前添加此行,它可以正常工作.

Class.forName("com.mysql.jdbc.Driver");
emf = Persistence.createEntityManagerFactory("manager1");
Run Code Online (Sandbox Code Playgroud)

我的依赖是

<dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>4.1.2.Final</version>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.19</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

另外我的应用程序工作正常tomcat 6,没有添加 Class.forName("com.mysql.jdbc.Driver");

有什么想法解决这个问题吗?谢谢

java tomcat hibernate jpa

0
推荐指数
1
解决办法
1万
查看次数

标签 统计

bonecp ×1

hibernate ×1

java ×1

jpa ×1

postgresql ×1

spring ×1

spring-jdbc ×1

tomcat ×1