WASCE的資料庫連線池
在WASCE中使用ORACLE資料庫,按說明配置了資料庫連線池,在說明中,說明了“針對Oracle、MySQL、MaxDB和TranQL資料庫使用Generic JDBC Resource Adapter(tranql-connector-ra-version.rar)時,應在資料庫部署規劃中使用CommitBeforeAutoCommit="true",這樣才能立刻將事務提交至資料庫。”因第一次使用,對其中的CommitBeforeAutoCommit不是很理解,況且在WASCE的WEB配置介面中也沒有此引數的設定,因而也沒作深究。
在JAVA專案的資料庫操作部分,資料庫連線是採用了連線池,併為保證資料一致性,啟用了事務且關閉了AutoCommit,事務可以正常Commit/Rollback,在程式中也可以看到資料所作的修改,但在資料庫看不到資料修改,換用了程式直接採用JDBC連線資料庫而不用連線池,卻一切正常。
首先懷疑的是WASCE是否採用了EJB或XA之類的分散式事務,但透過對程式執行的跟蹤,否定了這一疑點。
看來一定是和WASCE中的資料庫連線池配置有關。
再次翻看配置說明,仔細研究了對CommitBeforeAutoCommit引數的說明,感覺問題與此引數有關。
重新配置資料來源,要加入CommitBeforeAutoCommit,這次採用命令來部署,重新測試,一切正常。
deploy.sh deploy $WASCE_HOME/repository/org/tranql/tranql-connector-ra/1.7/tranql-connector-ra-1.7.rar plan-pool.xml
總結:此例的問題是對AutoCommit的理解產生了問題,資料庫連線Connection是有一個AutoCommit引數,表示每次資料庫操作後,是否自動提交事務,即是否次每次資料庫操作都作為一個獨立的事務來處理;而此地的AutoCommit卻並非此含義,而是應該理解為連線池管理的事務的自動提交。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/81227/viewspace-696613/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在IBM WASCE中使用Oracle資料庫連線池IBMOracle資料庫
- 資料庫連線池資料庫
- 《四 資料庫連線池原始碼》手寫資料庫連線池資料庫原始碼
- 資料庫連線池-Druid資料庫連線池原始碼解析資料庫UI原始碼
- 資料庫連線池的理解資料庫
- 資料庫連線池的使用資料庫
- 【MySQL】自定義資料庫連線池和開源資料庫連線池的使用MySql資料庫
- 資料庫連線池原理資料庫
- Proxool資料庫連線池資料庫
- JAVA資料庫連線池Java資料庫
- Flask資料庫連線池Flask資料庫
- 資料庫連線池的工作原理資料庫
- python資料庫連線池Python資料庫
- 手寫資料庫連線池資料庫
- 瞭解資料庫連線池資料庫
- 資料庫連線池淺析資料庫
- JNDI配置資料庫連線池資料庫
- PROXOOL資料庫連線池使用資料庫
- 關於資料庫連線池資料庫
- .net 資料庫連線池配置資料庫
- 資料庫連線池實現資料庫
- Javaweb-資料庫連線池JavaWeb資料庫
- java資料庫連線池dbcp的使用Java資料庫
- 利用weblogic的POOL(連線池)連線資料庫 (轉)Web資料庫
- MySql資料庫連線池專題MySql資料庫
- JavaWeb之事務&資料庫連線池JavaWeb資料庫
- mysql資料庫連線池配置教程MySql資料庫
- Python資料庫連線池DButilsPython資料庫
- 聊聊資料庫連線池 Druid資料庫UI
- JDBC資料庫連線池實現JDBC資料庫
- 請關掉你的資料庫連線!並且請使用資料庫連線池資料庫
- 資料庫連線池的實現及原理資料庫
- druid資料庫連線池的配置類UI資料庫
- Python 中的 MySQL 資料庫連線池PythonMySql資料庫
- hibernate資料庫連線池的問題資料庫
- 一個資料庫連線池的問題資料庫
- django中的資料庫連線池實現Django資料庫
- JDBC、JDBC框架、資料庫事務、資料庫連線池JDBC框架資料庫