找论文网 > 计算机论文 > 计算机理论 >

事务处理技术在城域点播系统中的研究与实现(2)

 客户端和服务器端利用CORBA协议进行通信,当客户端发出请求时, CallCenter通过调用内部相应动态连接库DLL接口负责响应客户端请求,DLL中相应函数将需处理的数据信息写入TClientDataSet,然后CallCenter调用底层数据库操作模块(VodDataBase模块),执行参数TClientDataSet中的信息,实现数据库相应操作。 3.2  事务控制在系统中的实现
3.2.1  数据库操作模块(VodDataBase类)的设计和实现

图3  VodDataBase类图
    VodDataBase类封装了系统对数据库操作的成员变量(FConnectMod)和函数:
    1) 成员变量(FConnectMod):TConnectMod类封装数据库连接组件,连接方式(如图4)所示:

图4  数据库连接组件
     TADOConnection 类封装了ADO 连接对象, 通过设置 connectionstring 属性连接数据库服务器,方法BeginTrans, CommitTrans, RollbackTrans用来控制事务, IsolationLevel 属性用来设置事务隔离级别,隔离级别值有九个(此处设置为ilIsolated ), TADODataSet是ADO数据集部件,TDataset Provider属于远程数据模块,提供了客户端访问应用程序的接口,它将发送给客户端应用程序的数据信息打包,同时把客户端对数据进行的更新在数据库服务器上的实现。
    2) 成员函数:TVodDataBase类的成员函数封装了对数据库操作的实现。其中事务操作函数为:VodDataBase_ Begintrans、VodDataBase_ CommitTrans和VodDataBase_ RollbackTrans:它们通过调用ADOConnection组件的事务处理方法的相应函数处理事务和获得事务嵌套级别。另外需要做的一项重要工作是判断事务执行状态,借助于异常处理编程语句,当接收异常时回滚事务,否则提交事务。
3.2.2 事务处理的程序实现
   下面以用户管理模块中的添加用户方法为例说明程序的实现:
数据库中与用户相关的表有:CustomInfotbl记录点播用户基本信息,CustomBundledPhoneNum记录用户绑定的电话信息,CustomAccounttbl记录用户的帐务信息,CustomVod Paytbl记录用户点播费用。
    当客户端系统管理模块执行添加用户操作时,服务器端调用相应动态库 CustomManager.dll的AddNew函数,将开户成功的用户信息(姓名、住址、绑定电话号码、密码等等)添加到数据库系统中。AddNew函数具体实现代码为:
function TCustomerManager_Inner.Customer_AddNew
(ValCustomerInfo : TCustomerInfoRecord) : HResult;
var
  ValClientDataSet:TClientDataSet;
Begin
 Try
   //生成数据库操作对象,并连接数据库
VodDataBase:=TVodDataBase .create;
ValClientDataSet:=TClientDataSet.Create(nil);
VodDataBase_ BeginTrans;//显式启动一个事务
Try
//加入信息到CustomInfotbl表中
ValClientDataSet.CommandText:=’insert into CustomInfotbl values (ValCustomerInfo.CustomerID,……….)’
//判断数据库操作是否成功
If  VodDataBase.exeSql(ValClientDataSet)=0 then
Begin
//加信息到CustomAccounttbl
AddNewInfoIntoCustAccountTbl(ValCustomerInfo)
//加信息到CustomVodPaytbl
AddNewIDIntoVodPayTbl(VaCustomerInfo);
//加入信息到CustomBundledPhoneNum
 AddBundledInfo(ValCustomerInfo);
   ………
 //全部执行成功
VodDataBase.commitTrans;
End;
except
 on e:Exception do
begin
    //若其中一个操作失败
VodDataBase.rollbackTrans;
end;
end;
finally
//释放对象
ValClientDataSet.Free;
VodDataBase.destroy;
end;
End;
    函数操作开始时,开启事务,即将后面的所有操作置于一个事务之中,若事务内任何一个操作在执行过程中出现错误,整个事务将回滚,事务回到最初状态。当事务内所有对数据库的修改和操作都成功时,整个事务才提交,从而保证事务ACID属性。
4  结束语
    以上对事务处理技术在分布式系统中实现的几种方案进行了分析和比较,并结合城域点播系统着重分析和实现了在应用服务器端维护和控制事务。测试表明:在系统实际运行过程中,可以有效的维护事务的一致性和完整性,从而确保整个系统的安全、有效的运行。随着整个系统由中心数据库向分布式数据库扩展,必将涉及到更复杂的事务控制(如分布式事务处理)来维护事务的ACID属性。系统也将在本方案的基础上作进一步的深入和完善。
参考文献
[1]. [美] Connolly,T.等著;宁洪等译.数据库系统—设计. 实现和管理(第三版).北京:电子工业出版社,2004.1 .
[2].李维著.Delphi 5.x ADO/MTS/COM+ 高级程序设计篇[M].北京:机械工业出版社,2000.11
[3]. 潘林森,姚渝春. Sql server 数据库系统系统中数据完整性的控制方法.重庆师范大学学报.2004.6 35~38.
[4]. 张瑞昌,向世勇,赵嵩正.Delphi/Sql Server 事务处理编程技术.计算机应用研究.2004,12,249~250.

共2页: 上一页 [1] 2


基于粗糙集的人力资源评价的规则挖掘
SNMP在电信设备远程故障检测中的应用
工商管理 | 工科论文 | 财务管理 | 管理学 | 公共管理 | 财政税收 | 证券金融 | 会计审计 | 计算机 | 法律论文 | 医药学 | 汉语言文学
社会论文 | 工科论文 | 理科论文 | 文化论文 | 艺术论文 | 文学论文 | 哲学论文 | 政治论文 | 英语论文 | 写作指导 | 计算机应用
www.zlunwen.com 找论文网 ® 版权所有 网站地图