This transaction has been rolled back, rather than only the current.

    今天上午,收到运维组同事反映应用系统其中一个功能报错,不是偶然性事件,每个使用功能用户报错。报错内容为:This transaction has been rolled back, rather than only the current.

    为了进一步分析问题,解决问题,产生如下对话:

    “ 系统昨天晚上是否发布过程序或者做过相关较大的调整? 

    ”没有。没有任何调整。

    ”功能涉及哪些表?主要干嘛的?”

    “功能主要中间库发送数据的,但是中间库试过访问正常的。”

   “中间库吧,顺便一下涉及哪些表。”

    几分钟之后,相关数据库已经搜集完毕,登录接口服务器,发现数据库确实正常,测试代理服务,所有连接正常的。根据搜集库表,生产库通过代理表尝试访问,没有报错。一切起来好像正常样子。

    “这个表读写数据 应该比较频繁吧?怎么没有数据?”

    ”知道哦,这个表应该没有数据呀。”

    根据以往经验,SYBASE时候代理表莫名其妙出现“连通,但是读写了”情况。

    “试试主库通过客户端读写一下这个代理表(AAA),看看能否正常写入数据?”

    “测试结果报错,内容程序客户端之前抛出异常一样。”

    这里,十有八九就是代理表异常了。于是,通过管理端,相关涉及代理表进行删除、重建,管理端尝试读取数据,可以正常看到数据了。

    ”客户重新发送一下数据看看是否正常?”

    几分钟过后。。。。

    “都OK了,一切正常!”

     问题是否到此结束?差多了,但是还未确保完全结束。

    “代理表检查一下,看看哪些管理端办法看到数据的,全部重建一下吧,说不准一会某些功能问题,一大片跳起了。”

     “的。”

     PS:代理表莫名其妙出现读不到数据情况,之前出现过,咨询原厂工程师,当时没有得到一个确切答案。不过经过我们测试,重建可以解决了。希望知道如何可以根本解决大虾给予指点,小弟不胜感激:)

原文地址:https://www.cnblogs.com/o0JSP/p/3511908.html