在HIS系统结算业务中,多操作员同时操作时,会提示:不允许启动新请求 因为该请求应具有有效的事务描述符。
但我在单机测试,从没出现过这种问题,是不是多操作员同时操作调用事务引起的?  另外我在网上查了下,说需要打一个补丁,ndp20-kb916002,补丁我下了,打不上。windows installer  问题..

解决方案 »

  1.   

    看一下sql server 日志文件有什么错误信息呀!重中找出原因了。
      

  2.   

    在系统出问题之后,我中午自己又测试了几遍,另外也和我同事同时操作了结算业务,都没有报错另外,在系统其它地方,有时候进行业务操作时,加有事务控制的业务,有时候也会出错:"此SqlTransaction已完成;它再也无法使用"  请问是不是事务操作的时间太短引起的?
      

  3.   

    当事务被提交或回滚后再使用就会这样了.
    myTran.Commit();  
    connection.Close(); 
      

  4.   

    谢谢你的指点,我也觉得可能有哪里的业务没有关闭事务。
    另外我还想问个问题,比如我在一个方法里面有2步操作:如下
    public void TestA()
    {
    try
    {
    //----步骤1
    1.打开事务
    具体的业务操作
    2.事务提交,其中包含关闭//----步骤2
    //调用其他方法,其中又有事务操作
    1.打开事务
    具体的业务操作
    2.事务提交,其中包含关闭catch(Exception ex)
    {
    3.事务回滚
    throw ex;
    }
    }意思就是一个方法开两个事务,但在打开第2次事务时,第一次都执行关闭操作了,不过他们公用一个回滚。
    请问这种写法会不会有问题?谢谢。