作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
当一个人测试系统时,不会发生这些错误。但是通过 jmeter 测试,我可以非常可靠地重现一些错误:
ActiveRecord::JDBCError: SAVEPOINT active_record_1 does not exist: ROLLBACK TO SAVEPOINT active_record_1
Stack:
gems/gems/activerecord-3.0.10/lib/active_record/connection_adapters/abstract_adapter.rb:207:in `log'
gems/gems/activerecord-3.0.10/lib/active_record/connection_adapters/abstract_adapter.rb:200:in `log'
gems/gems/activerecord-jdbc-adapter-1.2.1/lib/arjdbc/jdbc/adapter.rb:208:in `execute'
gems/gems/activerecord-jdbc-adapter-1.2.1/lib/arjdbc/mysql/adapter.rb:156:in `rollback_to_savepoint'
gems/gems/activerecord-3.0.10/lib/active_record/connection_adapters/abstract/database_statements.rb:179:in `transaction'
gems/gems/activerecord-3.0.10/lib/active_record/connection_adapters/abstract/database_statements.rb:171:in `transaction'
gems/gems/activerecord-3.0.10/lib/active_record/transactions.rb:207:in `transaction'
gems/gems/activerecord-3.0.10/lib/active_record/transactions.rb:290:in `with_transaction_returning_status'
gems/gems/activerecord-3.0.10/lib/active_record/transactions.rb:240:in `save'
gems/gems/activerecord-3.0.10/lib/active_record/transactions.rb:251:in `rollback_active_record_state!'
gems/gems/activerecord-3.0.10/lib/active_record/transactions.rb:239:in `save'
...(our code that simply calls save on a new instance of a model class)...
我们没有嵌套交易,甚至没有明确使用它们。我发现了一个与此错误消息相关的现有错误,但它不相关;我们不会截断或做任何 DDL 工作。仅仅创建一个记录并保存它。
我们使用 Rails 3.0.10、JRuby 1.6.5、activerecord-jdbcmysql-adapter,与 Warbler 1.3.2 配合使用,并通过 Elastic Beanstalk 部署在 64 位 Tomcat 7/Amazon RDS 上,带有单个 Mysql 实例,v5.1.57 .我们设置为 config.threadsafe! - 这感觉像是 ActiveRecord 内部的某种竞赛 - 但 ActiveRecord 应该在线程安全中工作,不是吗?
最后一点:我担心这是 JRuby 或 Warbler 的问题,因为如果我们从 JRuby 切换到 MRI Ruby 1.9,我们将无法重现这个问题。
最佳答案
可能与this commit有关,这是在 1.2.1 中引入的。 1.2.0 是否给您同样的问题?
也许我需要为支持的交易和失败的交易重新引入一些错误检查。请注意在 https://github.com/jruby/activerecord-jdbc-adapter/issues 提交错误?谢谢。
关于ruby - 在 rails3/jruby 中,什么会间歇性地导致这个错误? SAVEPOINT active_record_1 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8425475/
我是一名优秀的程序员,十分优秀!