2007年5月25日 星期五
2007年5月18日 星期五
TransactionScopeOption.Suppress
在使用 System.Transactions.TransactionScope 時,一直發生「The partner transaction manager has disabled its support for remote/network transactions. (Exception from HRESULT: 0x8004D025) 」的錯誤。
實在看不懂,還在MSDTC更改設定。設定老半天,完全不對。
後來,發現只要在scope 中讀取sql2005 的 database 之 table schema,就會發生上述的錯誤。 原來,讀取table schema 是無法交易的。因此,必須將讀取table schema放在TransactionScopeOption.Suppress 中。
程式大意如下:
using (TrsnsactionScope s1 = new TrsnsactionScope())
{
UpdateDBOperation1();
Using (TrsnsactionScope s1 = new TrsnsactionScope(TransactionScopeOption.Suppress))
{
ReadTableScheam(); //不要加入交易
}
UpdateDBOperation2();
}
MSDTC 的設定
早上測試 System.Transactions namespace 時,發生錯誤。
原來,還要設定 MSDTC,才能動。(那要 System.Transactions 幹嘛?)
我的測試環境,是APServer, DBServer。程式當然是寫在APServer。
設定過程如下:
首先,要看看Distribute Transaction Coordinator服務是否啟動。請到services.msc 中檢查。
注意,APServer 與DBServer 都要啟動。
再來,到DBServer
1. 使用元件服務,在左方的樹,找到「我的電腦」後,於其上按右鍵,執行「內容」
2. 選"MSDTC" 頁
3. 點擊"Security Configuration"(安全設定)
4. 確定有勾選"Network DTC Access", "Allow Remote Client","Allow Inbound","No authentication"
5. 按確定後,服務會重啟
6. 不過,之前有經驗,伺服器要重新啟重才有用。
再到 APServer,做與上1-3相同的步驟
4 確定有勾選"Network DTC Access", "Allow Inbound/Outbound","No authentication"
5 必要時,重新開機
原來,還要設定 MSDTC,才能動。(那要 System.Transactions 幹嘛?)
我的測試環境,是APServer, DBServer。程式當然是寫在APServer。
設定過程如下:
首先,要看看Distribute Transaction Coordinator服務是否啟動。請到services.msc 中檢查。
注意,APServer 與DBServer 都要啟動。
再來,到DBServer
1. 使用元件服務,在左方的樹,找到「我的電腦」後,於其上按右鍵,執行「內容」
2. 選"MSDTC" 頁
3. 點擊"Security Configuration"(安全設定)
4. 確定有勾選"Network DTC Access", "Allow Remote Client","Allow Inbound","No authentication"
5. 按確定後,服務會重啟
6. 不過,之前有經驗,伺服器要重新啟重才有用。
再到 APServer,做與上1-3相同的步驟
4 確定有勾選"Network DTC Access", "Allow Inbound/Outbound","No authentication"
5 必要時,重新開機
Transactions 的種類
之前看過了一堆的 Transaction,總覺的亂亂的。
今早看到一個整理,覺的很好,記了下來。
1 Local transactions in database (eg: SQL server) 2 Local transactions through DB API (eg: ADO.NET) 3 Distributed transactions through Distributed Transaction Coordinator (DTC) 4 Distributed transactions on component level through COM+ (uses DTC) Enterprise Services in the Microsoft .NET Framework 5 Local distributed transactions in ASP.NET and ASMX 6 Microsoft Host Integration Server (HIS) and COM Transactio Integrator for CICS and IMS (COMTI)
2007年5月17日 星期四
http://asp.net/downloads/futures/
今天看了 Asp.net futures 的介紹,心跳不止,約10分鐘。
也不知道是應該高興還是傷心。
高興的是,網頁愈來愈好寫了。傷心的是,又得向美工靠齊一些。
天哪,不用寫程式,也不必拖拉元件,就可以依照資料庫的關聯,長出一堆的頁面了。
(http://server/app/auto.axd)
不過,後來想想,還好n-tier 的架構,還沒被微軟「破解」,變的不用寫程式。
此時我的價值還在。
2007年5月15日 星期二
思考的方式
今天看到了一個故事。
一個教授對他的三個博士班學生說:我們要到高山另一頭的村子買瓶醬油。
第一個學生乖乖地爬了一個月的山,終於把醬油買回來;
第二個學生花了數年研發挖山洞專用的TDM潛盾機,並發表三篇Paper拿到博士學位;
第三個學生則跑到兩條街外的7-11,五分鐘就把醬油買回來了。
你會是哪一個呢?
我想想,我大概會是第二個吧!專案常常會Delay不是沒原因的
教授像是專案經理,製訂策略,卻未必都是對的。
第一個學生是乖乖聽話型,把任務當指令,一成不變的「運算」下去。公司需要這些「機器」人,但也容易替換這些機器人。
第二種是創意研發型。雖然重要,卻容易在專案進行時delay 時程。專案進行時,不要再搞創意了。
第三種是「挑戰」型的思考方式。當接受到任務時,會先想一想有沒有更好、更簡易的方法來完成。
重要的思考的方式。
一個教授對他的三個博士班學生說:我們要到高山另一頭的村子買瓶醬油。
第一個學生乖乖地爬了一個月的山,終於把醬油買回來;
第二個學生花了數年研發挖山洞專用的TDM潛盾機,並發表三篇Paper拿到博士學位;
第三個學生則跑到兩條街外的7-11,五分鐘就把醬油買回來了。
你會是哪一個呢?
我想想,我大概會是第二個吧!專案常常會Delay不是沒原因的
教授像是專案經理,製訂策略,卻未必都是對的。
第一個學生是乖乖聽話型,把任務當指令,一成不變的「運算」下去。公司需要這些「機器」人,但也容易替換這些機器人。
第二種是創意研發型。雖然重要,卻容易在專案進行時delay 時程。專案進行時,不要再搞創意了。
第三種是「挑戰」型的思考方式。當接受到任務時,會先想一想有沒有更好、更簡易的方法來完成。
重要的思考的方式。
訂閱:
文章 (Atom)