各位大哥帮我看看这是个什么错误啊?

09-07-01 1s2k3y4
各位大哥,最近一直有一个问题一直困扰着我。

最近我在做一个小项目我用到了spring的编程式事务并且对它进行了简单的封装

public class MyTransactionManager

{

private IPlatformTransactionManager TransactionManager;

private ITransactionStatus status;

public MyTransactionManager()

{

TransactionManager = ServiceContainer.Container.IPlatformTransactionManager;

DefaultTransactionDefinition def = new DefaultTransactionDefinition();

def = new DefaultTransactionDefinition();

def.PropagationBehavior = TransactionPropagation.Required;

status = TransactionManager.GetTransaction(def);

}

public void Commit()

{

TransactionManager.Commit(status);

}

public void Rollback()

{

TransactionManager.Rollback(status);

}

}

使用的时候是

try

{

MyTransactionManager m=new MyTransactionManager();

//

//中间的逻辑代码(通过的hibernate进行数据库访问)

//

m.Commit()

}

catch(Exception e)

{

m.Rollback();

}

有时候当我单击某个按钮的时候程序就死在那里了,然后走断点的时候我发现当执行m.commit()的时候语句程序感觉上就被挂起了(程序不动了),过了一会报错

"Hibernate flusing: could not update: [DZ.BookingSystem.KBP.Model.RunnerOperation#12][SQL: UPDATE runneroperation SET RunnerDate = ?, BookingCountOfToday = ?, BookingUserCountInfield = ?, BookingQueueCount = ?, HadGetNumCount = ?, HadCalledBookingUserCount...

然后在不关闭程序的情况下,我去数据库主动操作刚刚在程序中操作的数据,同样无法操作,并报超时的错误。但是过了一会(在不关闭程序的情况下)我再走一次执行过的那段代码又恢复正常了(能够事务提交并且数据库变化)(请注意:是在没有重新启动项目的情况下),真的觉得好奇怪,谁能帮我解释下为什么?(要说明的是,在程序启动的时候,我开了其他几条死循环线程,同样会用到事务提交,我不知道会不会和这个错误有关联?)各位大哥,小弟在这里谢谢你们了,帮我看看吧!!!!!!!!

1s2k3y4
2009-07-02 08:41
怎么没有人呢?大哥们 帮我看看吧

猜你喜欢