高手 高手 高手 給我一個答案

jorwang發表於2005-04-26
無狀態:sessionbean
客戶端呼叫:A();
遠端介面方法:A
私有方法:S
私有變數:long startTime,endTime;

A(){
startTime = System.currentTimeMillis();
//todo: something
//invoke : S();
}
S() {
//todo : something
endTime = System.currentTimeMillis();
System.out.println("開始時間:"+startTime+"結束時間:"+endTime);
}

問題描述:
在一般情況下,時間沒有任何問題,處理時間開始時間<結束時間,並且在一個正常的範圍內,但是在實際系統執行過程中,會出現開始時間>結束時間 。我理解的情況下就是在sessionbean例項的A()方法被呼叫過程中,並且沒有完成的時候,有其他程式進入這個方法。

導致的問題:
在出現這種情況下,事務會發生突然的終止。當然,隨後的資料庫操作當然就會發生異常。比如sqlserver出現:分散式事務已完成。請將此會話登記到新事務或 NULL 事務中。

請問有沒有高手能夠給我一個解釋。