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

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

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

”没有。没有做过任何调整。“

”该功能涉及到了哪些表?主要是干嘛的?”

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

“我先看看中间库吧,你顺便帮我找一下是涉及到了哪些表。”

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

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

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

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

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

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

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

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

几分钟过后。。。。

“都OK了,一切正常!”

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

“你把代理表都检查一下,看看哪些在管理端里都没办法看到数据的,全部都重建一下吧,说不准一会某些功能用到的表也有问题,又要一大片人跳起了。”

“好的。”

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

This transaction has been rolled back, rather than only the current.的更多相关文章

  1. ORA-06519: active autonomous transaction detected and rolled back

    这个问题一般怎么解决 ?现在忙 待会贴详细代码  先给些路子..给位大大们 引用 楼主 green3365302 的回复: 这个问题一般怎么解决 ?现在忙 待会贴详细代码  先给些路子..给位大大们 ...

  2. The transaction log for database 'xxxx' is full due to 'ACTIVE_TRANSACTION'

    今天查看Job的History,发现Job 运行失败,错误信息是:“The transaction log for database 'xxxx' is full due to 'ACTIVE_TRA ...

  3. Compensating Transaction Pattern(事务修正模式)

    Undo the work performed by a series of steps, which together define an eventually consistent operati ...

  4. 关于Oracle AUTONOMOUS TRANSACTION(自治事务)的介绍

    AUTONOMOUS TRANSACTION(自治事务)的介绍 在基于低版本的ORACLE做一些项目的过程中,有时会遇到一些头疼的问题,比如想在执行当前一个由多个DML组成的transaction(事 ...

  5. (转)关于Oracle AUTONOMOUS TRANSACTION(自治事务)的介绍

    AUTONOMOUS TRANSACTION(自治事务)的介绍 在基于低版本的ORACLE做一些项目的过程中,有时会遇到一些头疼的问题,比如想在执行当前一个由多个DML组成的transaction(事 ...

  6. Ehcache(2.9.x) - API Developer Guide, Transaction Support

    About Transaction Support Transactions are supported in versions of Ehcache 2.0 and higher. The 2.3. ...

  7. mysql & java & spring transaction isolation level

    mysql /*SESSION LEVEL*/ select @@tx_isolation; /*GLOBAL LEVEL*/ select @@global.tx_isolation; select ...

  8. [转]How to nest transactions nicely - "begin transaction" vs "save transaction" and SQL Server

    本文转自:http://geekswithblogs.net/bbiales/archive/2012/03/15/how-to-nest-transactions-nicely---quotbegi ...

  9. MySQL 5.6 Reference Manual-14.3 InnoDB Transaction Model and Locking

    14.3 InnoDB Transaction Model and Locking 14.3.1 InnoDB Lock Modes 14.3.2 InnoDB Record, Gap, and Ne ...

随机推荐

  1. HDU 4259 - Double Dealing(求循环节)

    首先将扑克牌进行一次置换,然后分解出所有的循环节,所有循环节的扑克牌个数的最小公倍数即为答案 #include <stdio.h> #include <string.h> #i ...

  2. Views

    Views Views are the visual side of the Nova, they are the HTML output of the pages. Views can be loc ...

  3. java技术栈:项目概述

    学习使用java到现在也有三年多了,这三年基本是以项目驱动的方式学习,有好有坏,个人觉得好处在于,有一个清晰的目标让你解决,这会让你学习非常迅速有效.当然坏处就是片面,不成体系.这种学习方式在学校以小 ...

  4. Linux进程IPC

    IPC mechanisms supported by Linux include pipes, named pipes, semaphores, message queues, shared mem ...

  5. Java序列化接口的作用总结

    一个对象有对应的一些属性,把这个对象保存在硬盘上的过程叫做”持久化”. 把堆内存中的对象的生命周期延长,存入硬盘,做持久化操作.当下次再需要这个对象的时候,我们不用new了,直接从硬盘中读取就可以了. ...

  6. 关于async和await的一些误区实例详解

    转载自 http://www.jb51.net/article/53399.htm 这篇文章主要介绍了关于async和await的一些误区实例详解,有助于更加深入的理解C#程序设计,需要的朋友可以参考 ...

  7. for循环里面的判断条件

    先看下面这段代码,你很容易猜到结果 for(i=0;i<10;i++){ console.log(i); // 结果是打印出 1,2,3,4,5,6,7,8,9 } 再看一下这款代码,也许很容易 ...

  8. RabbitMQ 原文译1.1--HelloWord

    本系列文章均来自官网原文,属于个人翻译,如有雷同,权当个人归档,忽喷. RabitMQ 是一个消息中间件,其实就是从消息生产者那里接受消息,然后发送给消息消费者.在这个传输过程中,可以定义一些缓存,持 ...

  9. 用curl做异步操作

    class CurlPost { /** * @desc curl 请求提交数组 * */ public function execute($method, $url, $fields = '', $ ...

  10. Mysql_存储功能

    先上一段代码: -->DELIMETER;     ----加上这一句:DELIMETER的作用是设定客户机的分隔符,表示用//包含的是一段程序,一起执行,而不是见到“:”就执行 结束的时候写上 ...