Roh*_*hit 2 java connection weblogic
我们使用Weblogic服务器并在获取连接到Oracle 10g时始终将autoCommit设置为'false'.
我想知道Weblogic中是否有设置,如果未在应用程序代码中显式调用Commit或Rollback,它将自动提交事务.我听说Websphere中存在类似的设置.
看起来您没有使用Container管理或Bean管理的事务.或者,就此而言,您只是从a中检索连接DataSource
然后禁用autocommit
,而不需要初始建立事务上下文; 这意味着您正在使用JDBC事务(依赖于底层数据库的事务管理器).
当您使用Container或Bean托管事务时,您将不再需要担心事务中使用的autocommit
属性Connection
,因为容器将确保autocommit
在返回Connection
应用程序之前将该属性设置为false .
如果需要使用容器管理的事务,则需要使用EJB.除非抛出a RuntimeException
或an ,否则与EJB关联的任何事务都将自动提交ApplicationException
.如果您需要使用Bean管理或程序化事务,则必须使用UserTransaction
API.
如果您正在使用负责建立连接的Hibernate之类的ORM框架,那么您应该记住,Hibernate负责关闭Connection的autocommit属性.在大多数情况下,它会关掉房产.
如果您打算使用JDBC事务,尽管有更好的JTA事务替代方法,那么您可以尝试defaultAutoCommit
从管理控制台或数据源的JDBC配置文件中为驱动程序设置属性.JDBC配置文件的片段如下所示:
<?xml version='1.0' encoding='UTF-8'?>
<jdbc-data-source xmlns="http://xmlns.oracle.com/weblogic/jdbc-data-source" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/jdbc-data-source http://xmlns.oracle.com/weblogic/jdbc-data-source/1.0/jdbc-data-source.xsd">
<name>JDBC Data Source-Oracle</name>
<jdbc-driver-params>
<url>jdbc:oracle:thin:@localhost:1521:oracle</url>
<driver-name>oracle.jdbc.OracleDriver</driver-name>
<properties>
<property>
<name>user</name>
<value>app</value>
</property>
<!-- Disable autocommit for connections-->
<property>
<name>defaultAutoCommit</name>
<value>false</value>
</property>
</properties>
...
Run Code Online (Sandbox Code Playgroud)
在管理控制台中,您可以defaultAutoCommit=false
在DataSource配置的Properties textarea中添加该属性:
归档时间: |
|
查看次数: |
15795 次 |
最近记录: |