无状态: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 事务中。
请问有没有高手能够给我一个解释。