当前位置: 首页 > 知识库问答 >
问题:

New Relic ActiveRecord::ConnectionNotEstablised Rails 3.2.3错误

宣熙云
2023-03-14

我刚刚在我的RefineryCMS Rails 3.2.3应用程序中安装了newrelic\u rpm gem。我抄了这件新文物。按照说明的yml配置文件。我的应用程序在Cedar堆栈上部署了Heroku,所以说明非常简单。

https://devcenter.heroku.com/articles/newrelic#cedar

但是,在我的开发盒上运行“rails server”时,会显示以下错误消息:

/home/xxx/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:398:in `retrieve_connection': ActiveRecord::ConnectionNotEstablished (ActiveRecord::ConnectionNotEstablished)

在newrelic中将agent\u enabled值设置为“false”。yml文件允许服务器再次启动。设置我的许可证密钥和应用程序名称环境变量没有任何区别。

有趣的是,尽管我无法在我的dev box上启动该应用程序,但当我将其部署到Heroku时,一切都很好——现在我得到了新的relic统计数据。太棒了

我的解决方法是从gemfile中删除newrelic\u rpm(这是安装说明所说的),并将其仅放在:生产组中。显然,新文物只在生产中有用,所以没什么大不了的。

group :production do
  ... other gems
  gem 'newrelic_rpm'
end

还有谁经历过这种情况,或者知道为什么它会导致ActiveRecord错误(在新遗迹的错误跟踪中根本没有提及)?

共有1个答案

邹宏峻
2023-03-14

您遇到的问题看起来像是我们(我在New Relic工作)最近的3.6.4版本中解决的newrelic\u rpm gem中的一个bug。我建议您尝试更新到3.6.4,看看问题是否仍然存在。

解释一下:我们在newrelic_rpmgem中有一个叫做环境报告的东西,它收集有关您的应用程序正在执行的环境的信息(Rails版本、gem版本、DB适配器、Ruby版本等)以显示在UI中。在newrelic_rpmgem的3.6.0版中,我们将环境报告的生成推送到后台线程中。因为环境报告可能引用了ActiveRecord::Base常量,所以生成它可能会触发一些不安全的ActiveRecor初始化代码路径。如果环境报告碰巧在错误的时间点击了ActiveRecord::Base,它可能会触发像您在主线程上看到的那样的错误。

我们在3.6.4中通过将EnvironmentReport的生成移回主线程解决了这一问题。

很抱歉让您头痛,如果3.6.4不能解决您的问题,请告知我们。

编辑-嗯,刚刚注意到你在3.6.0发布之前问过这个问题。我仍然建议尝试3.6.4,因为我怀疑在旧版本的newrelic\u rpm中可能存在类似的种族状况。

 类似资料:
  • 我正在尝试搜索亚马逊的产品广告,并使用botlenose来帮助我做到这一点。但是,我刚刚收到HTTP错误400。 其他一些重要信息: 我来自巴西,我的标签也来自亚马逊。这是个问题吗? 我确实检查了我的钥匙、秘密和标签,一切正常。我确实在StackOverflow上查看了其他一些问题,但对我来说没有任何效果。 当然,出于安全原因,我更改了密钥。 Traceback(最近一次调用最后一次):File"

  • 我有一个基于Spring Web model view controller(MVC)框架的项目。Spring Web模型-视图-控制器(MVC)框架的版本是3.2.8 我有这个控制器 这个URL一切正常:

  • 目前从Angular JS controller中,我试图将JSON数据发送到后端服务。但是我有400个错误的请求错误。 在Controller中,我试图通过http服务发送数据,如下所示:

  • 我得到了这个错误,有什么想法会导致它吗?我试图发送一个DTO,它有一个扩展抽象类的对象列表,我想这个问题可能是因为DTO中的列表,还是因为抽象类的子类?

  • 在月食中, ”org.apache.axis2。AxisFault:传输错误: 403错误:禁止”试图从svn检出项目时发生错误。我不能实现这个错误,因此我检查了从终端使用"svn-co"命令的项目。 但是,有趣的是,当我试图在Eclipse中运行应用程序时,在输入凭据(用户名和密码)并按下“登录”按钮之后,我又遇到了相同的错误。响应是JFrame上的无效用户名/密码,但凭据没有错误。这只发生在日

  • Errors 错误 Library routines must often return some sort of error indication to the caller. As mentioned earlier, Go’s multivalue return makes it easy to return a detailed error description alongside th

  • 本章概述了Google API错误模型,以及开发人员如何正确生成和处理错误的一般指南。 Google API使用简单的协议无关错误模型,这使我们能够在不同的API,API协议(如gRPC或HTTP)以及错误上下文(例如,异步,批处理或工作流错误)中获得一致的体验。 错误模型 错误模型在逻辑上由google.rpc.Status定义,当API发生错误时,返回一个Status实例给客户端。 以下代码段

  • 5.4. 错误 在Go中有一部分函数总是能成功的运行。比如strings.Contains和strconv.FormatBool函数,对各种可能的输入都做了良好的处理,使得运行时几乎不会失败,除非遇到灾难性的、不可预料的情况,比如运行时的内存溢出。导致这种错误的原因很复杂,难以处理,从错误中恢复的可能性也很低。 还有一部分函数只要输入的参数满足一定条件,也能保证运行成功。比如time.Date函数