`
灵雨飘零
  • 浏览: 35026 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
文章分类
社区版块
存档分类
最新评论

ConnectString中enlist设置的含义

 
阅读更多
因为上次遇到在webservice中处理事务的问题,偶然在调试程序的时候对OracleConnection的连接字符串enlist设置的一个有趣的发现。
以前看过一篇文章,不记得是什么文章了,文章中说对enlist最好设置为false,当时也没有怎么去深究为什么要设置为false,在我的程序中enlist=false就直接写进去了。现在才发现原来对enlist的设置与事务的处理是有这微妙的关系的。
事务管理器一般采用两种方式来管理,一种称之为Lightweight Transaction Management,简称LTM,一种称之为oleX TM。在Simple phase提交中一般使用的是LTM,而在分布式事务处理中一般用的是2PC,所以使用的方式是oleX TM的方式。
如果enlist=false,那么意味着后续的事务不会在当前事务中登记,所以当前事务不会成为事务的根。如果在程序中使用了分布式事务处理,可能也不会正确的执行(关于这一点我没有做测试)。此时程序告诉TM采用LTM的方式来管理。
如果enlist=true,那么进程告诉TM需要使用oleX TM的方式来管理,此时会自动启用分布式事务管理,所以如果在连接字符串中将enlist=true,如果使用的是oracle数据库,那么后台会调用oramts.dll,如果在开发环境下没有安装MTS for Oracle服务,那么就会提示找不到oramts.dll。你可以从oracle的站点上下载这个服务的安装包,不知道为什么oracle不提供单独的安装包,而是与odac捆绑在一起下载。
如果你没有对enlist配置会出现什么样的情况呢?这样看你的程序是使用分布式事务还是一般性的事务处理。TM会根据程序的请求自动做出反应。

结论:enlist对事务的登记有一定的控制作用。如果我的描述有错,请帮助指正。
分享到:
评论

相关推荐

    web.net connstring加密程序

    怎么设置:直接在sql server中进行设置 如果是sql server验证的话,Persist security info 一定设置为false,这样会保证敏感信息不被暴露(如ID、密码)。 三、防止sql注入攻击: 这个注入好像是打开Min ...

    编程项目实战:基于Java的图书管理系统毕业设计(源代码+文档)

    在项目中添加一个新的窗体(Form1),并为该窗口设置属性,在text一栏中输入“发行商数据库管理”,windowsState属性设置为“Maximized”。然后,再为窗口设置其它属性。下面就该为窗体添加各种控件。 在WFC ...

    VB中访问数据库的操作.doc

    ### VB中访问数据库的操作知识点详解 #### 一、概述 在Visual Basic(简称VB)编程环境中,通过ADO(ActiveX Data Objects)组件访问数据库是一种常用的技术手段。ADO为程序员提供了简单且灵活的方式来处理数据,...

    Unidac连接池

    在Unidac中,设置连接池的参数通常包括: 1. **MaxConnections**:最大连接数,决定了连接池能容纳的最大连接数。 2. **MinConnections**:最小连接数,即使在空闲时,连接池也会保持的最少连接数。 3. **...

    vb连接sde数据库方法

    在VB中连接SDE数据库,主要是通过ArcObjects(AO)组件来实现的,这是一个由Esri提供的GIS开发接口,用于访问和操作地理数据。在这个过程中,我们首先要理解AO的工作原理和数据模型,以及如何配置连接参数来访问...

    pb一些常用代码,和一些作业应用代码

    在PowerBuilder中,可以通过设置SQLCA的属性来实现与数据库的连接。例如,在提供的代码片段中: ```pbl SQLCA.DBMS="ODBC" SQLCA.AutoCommit=False SQLCA.DBParm="Connectstring='DSN=pb3'" ``` 这里指定了使用ODBC...

    PB 连接Access

    2. 在代码中找到SQLCA对象的相关设置,如`SQLCA.DBMS = "ODBC"`和`SQLCA.AutoCommit = False`,这些设置告诉PB使用ODBC驱动并且禁用自动提交。 3. 关键的部分是`SQLCA.DBParm`,这里设置连接字符串。连接字符串应...

    PowerBuilder程序设计

    关联数据窗口对象通常是通过在数据窗口控件属性的"General"页中设置DataObject属性,点击"…"按钮选择所需的数据窗口对象。数据窗口控件和对象的关联是动态的,通过字符串类型的DataObject属性来实现,该属性的值为...

    精彩编程与编程技巧-《 VB6.0中通过MSChart控件调用数据库 》...

    - 如何设置数据源以及如何更新图表中的数据。 2. **ADO控件的数据访问**: - ADO(ActiveX Data Objects)是用于连接到各种数据源的一种接口。 - 如何使用ADO控件连接到Access数据库。 - 如何执行SQL查询并获取...

    在CENTOS中搭建mysql 集群.docx

    CENTOS 中搭建 MySQL 集群 在 CENTOS 中搭建 MySQL 集群需要几个步骤,我们将逐步介绍每个步骤。 资源分配管理节点(Management 节点) 在 CENTOS 中,我们需要关闭防火墙、selinux 和 iptables,以确保 MySQL ...

    Powerbuilder 嵌入式SQL常规用法

    接下来,通过设置`DBParm`参数来指定数据库连接字符串,例如`ConnectString='DSN=quality'`用于连接指定的数据源。连接数据库的具体操作是通过`connectusing`语句实现的。 当需要在某个界面上(如窗口)根据输入的...

    在VB中通过ADO对象实例化来远程访问SQL Server.pdf

    - Connection对象:用于建立与数据源的连接,该连接通过ConnectString属性配置。连接成功后,可以使用Open方法打开。 - Command对象:用于对SQL Server执行命令,比如调用存储过程。需要设置CommandText和...

    链接数据库,PB增删改保存

    在PowerBuilder应用程序中,连接数据库需要通过设置一系列参数来实现。从示例代码中我们可以看到,通过`SQLCA`对象来配置数据库连接属性: 1. **DBMS**: 数据库管理系统类型,例如这里使用的是Oracle 8/8i版本。 - ...

    springboot整合zookeeper权限控制.zip

    在Spring Boot中,我们可以通过创建一个自定义的`ZookeeperConfiguration`类来配置这些设置。 ```java @Configuration public class ZookeeperConfiguration { @Value("${zookeeper.connect}") private String ...

    C_操作XML初步C_操作XML初步

    根据给定的信息,本文将详细解释如何在C#中读取和编辑XML文件,并通过一个具体实例来展示这一过程。 ### C#中的XML操作简介 #### XML文件介绍 XML(Extensible Markup Language)是一种用于标记数据的语言,它允许...

    .net连接各种数据库的connection string的格式

    包括SQL,MySQL,EXcel,Oracle,Foxpro等各种格式在.net环境下的读取,包括ODBC和OLEDB两种方式

    WinConvertJsonFile_V1.0.0.1.rar

    2.1 DbType、ConnectString:数据库连接配置,方便用户多次操作同一数据源 使用说明: 1.双击打开WinConvertJsonFile.exe程序 2.数据库连接默认加载WinConvertJsonFile.exe.config中的配置项,可根据需要修改 ...

    VB+SQL连接等相关问题总结

    在VB(Visual Basic)编程中,与SQL Server数据库的交互是常见的需求。本文将详细讲解如何通过VB连接到SQL Server数据库,以及处理相关问题。 首先,我们要确保VB能够正确地启动并调用窗口。在VB中,Sub Main是程序...

Global site tag (gtag.js) - Google Analytics