簡體   English   中英

無法在事務中間更改事務只讀屬性

[英]Cannot change transaction read-only property in the middle of a transaction

我正在使用BoneCP與Postgresql和Spring JdbcTemplate。 當JdbcTemplate執行查詢然后嘗試關閉連接時,它會收到以下異常:

org.postgresql.util.PSQLException:無法在事務中間更改事務只讀屬性。 at org.postgresql.jdbc2.AbstractJdbc2Connection.setReadOnly(AbstractJdbc2Connection.java:725)at com.jolbox.bonecp.ConnectionHandle.setReadOnly(ConnectionHandle.java:1279)at com.jolbox.bonecp.ConnectionHandle。(ConnectionHandle.java:254) at com.jolbox.bonecp.ConnectionHandle.recreateConnectionHandle(ConnectionHandle.java:273)at com.jolbox.bonecp.ConnectionHandle.close(ConnectionHandle.java:476)at org.springframework.jdbc.datasource.DataSourceUtils.doCloseConnection(DataSourceUtils.java) :341)org.springframework.jdbc.datasource.DataSourceUtils.doReleaseConnection(DataSourceUtils.java:328)位於org.springframework.jdbc.core的org.springframework.jdbc.datasource.DataSourceUtils.releaseConnection(DataSourceUtils.java:294)。位於org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:456)的ord.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:464)上的JdbcTemplate.execute(JdbcTemplate.java:411) .springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.j ava:472)org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:477)

由於無法關閉連接,打開的連接達到最大連接數,然后應用程序無響應。

我沒有設置任何與交易相關的屬性。 因此,交易設置應該是默認的。 我怎樣才能解決這個問題?

依賴關系和配置:

bonecp 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" />        <property name="acquireIncrement" value="1" />      <property name="statementsCacheSize" value="100" />     </bean>

我今天遇到了這個問題。 您可能缺少boneCP所需的依賴項之一。

我缺少SLF4J庫,並收到相同的消息。 檢查您是否有依賴項: http//jolbox.com/index.html?page = http://jolbox.com/requirements.html

我遇到了同樣的問題,並通過以下兩個步驟解決了這個問題:

  • 通過添加以下語句來設置隔離級別:config.setDefaultTransactionIsolation(“READ UNCOMMITTED”);

  • 在關閉之前提交每個事務。

我不確定是哪一個解決了問題,或者兩者都是必要的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM