调查Ruby进程中的ActiveRecord连接池是否泄漏池

时间:2018-01-10 10:34:10

标签: ruby oracle activerecord oracle11g

我已将database.yml配置如下

development:
  adapter: oracle_enhanced
  host: 10.80.70.58
  port: 1521
  database: TTSDB
  username: TTSADMIN
  password: xxxxx
  encoding: utf8
  pool: 20

我已经生成了ruby进程,这会给我连接超时错误 [ExceptionHandler] Exception ActiveRecord::ConnectionTimeoutError: could not obtain a database connection within 5.000 seconds (waited 5.029 seconds)我有8个这样的ruby进程进行了一些计算,这些进程使用database.yml中的配置。

现在,当我在78个会话中看到v $ session中的会话时,有71个是INACTIVE,只有7个在ACTIVE。我发现了这个号码 查询如下:

select count(*) from v$session where schema name = 'TTSADMIN' and osuser = 'tuts0001' and status = 'INACTIVE'

现在问题

  1. 我的ruby进程是否泄漏ActiveRecord :: Connection池(如本link中所述),因为我在ActiverecordConnectionPool中没有任何连接,这就是我收到连接超时错误的原因?
  2. 如果不是为什么我在INVALID表中看到了71个会话v$session?我已查看此link
  3. 中的文档

0 个答案:

没有答案