事務處理模式是為參與事務處理的每個組件而設置的
它用來告知MTS說組件所做出的更改是否應該被忽略
當事務處理創建新對象的時候
MTS會查看兩個信息源來確定事務處理的模式
首先
它要確定對象的創建者是否正在一個已經存在的事務處理裡運行
其次
它要使用組件的事務處理模式
在Visual Basic
NET裡
可以從System
EnterpriseServices
ServicedComponent裡衍生出一個類
這類能夠參與事務處理
如果System
EnterpriseServices這個命名空間不在你的項目裡
你就要把它添加到項目的參照裡
Public Class MTSTest
Inherits System
EnterpriseServices
ServicedComponent
End Class
要控制用於類的事務處理模式
你需要對類使用TransactionAttribute
Transaction(事務處理)屬性的構造器能夠接受TransactionOption這個類型的枚舉參數(enumerated parameter)
TransactionAttribute可能的值有
Disabled——對象會忽略事務處理
NotSupported——對象不能在事務處理的范圍內運行
對象的創建不需要事務處理的存在
而不論其創建者是否運行在事務處理裡
Supported——對象需要或者不需要事務處理都可以運行
如果對象是在一個活動的事務處理裡創建的
那麼它就要在這個已存在事務處理裡運行
如果對象不是在活動的事務處理裡創建的
那麼對象不需要事務處理也可以運行
Required——對象需要一個事務處理
如果已經存在一個活動的事務處理
那麼對象就要在這個事務處理裡運行
如果不存在活動的事務處理
就要開始一個新的事務處理
這個值是Transaction屬性缺省的值
RequiresNew——對象需要一個事務處理
但是
新的事務處理總是應每個請求的需要而開始
即使已經存在 活動的事務處理
下面的代碼顯示了如何聲明一個對象需要事務處理
(EnterpriseServices.TransactionOption.Required)> _
Public Class MTSTest
Inherits System.EnterpriseServices.ServicedComponent
End Class
From:http://tw.wingwit.com/Article/program/net/201311/13106.html