嗨,我们正在使用独角兽和Sidekiq在Heroku的Cedar堆栈上运行.我们间歇性地得到以下错误
BurnThis ActiveRecord::StatementInvalid: PG::UnableToSend: SSL SYSCALL error: EOF detected
ActiveRecord::StatementInvalid: PG::ConnectionBad: PQconsumeInput() SSL SYSCALL error: Connection timed out
Run Code Online (Sandbox Code Playgroud)
有没有人知道这些错误的直接原因是什么?与我们的数据库连接太多了吗?我们已经通过以下方式设置了分叉:
unicorn.rb
worker_processes Integer(ENV["WEB_CONCURRENCY"] || 3)
timeout 30
preload_app true
before_fork do |server, worker|
Signal.trap 'TERM' do
puts 'Unicorn master intercepting TERM and sending myself QUIT instead'
Process.kill 'QUIT', Process.pid
end
defined?(ActiveRecord::Base) and
ActiveRecord::
Base.connection.disconnect!
end
after_fork do |server, worker|
Signal.trap 'TERM' do
puts 'Unicorn worker intercepting TERM and doing nothing. Wait for master to send QUIT'
end
# other setup
if …Run Code Online (Sandbox Code Playgroud) connection-pooling heroku rails-postgresql rails-activerecord heroku-postgres
只是想知道开箱即用的RestTemplate是使用连接池还是每次只是建立一个新的连接?
有人可以解释什么是连接和语句池以及与未池化的数据源相比有什么好处?我想了解何时在项目中使用c3p0或proxool等技术是个好主意.我首先需要了解他们做什么以及何时使用它们.非常感谢你.
连接超时= 0的优点和缺点是什么?
Connection Lifetime = 0的用途是什么?
例如
(Database=TestDB;
port=3306;
Uid=usernameID;
Pwd=myPassword;
Server=192.168.10.1;
Pooling=false;
Connection Lifetime=0;
Connection Timeout=0)
Run Code Online (Sandbox Code Playgroud)
什么是连接池的用途?
PS:我正在用一个小型数据库(5个表)构建一个小型javafx应用程序h2.
我正在开发基于开源java的应用程序,即xwiki.insie hibernate.cfg.xml我可以看到参数connection.pool_size和statement_cache.siz的值为2(对于每个).我的应用程序将在最多时间内拥有100个用户.现在我的问题是什么应该是理想的连接池大小.对我来说,2号看起来很少.如果一次连接100个用户98用户必须等待grtting连接被释放?在我的情况下,我应该将连接池大小保持为100吗?
我正在使用microsoft sql server.
除此之外,最大连接池大小也有限制.它依赖于webserver(在我的情况下是tomcat)还是数据存储供应商(ms sql server)?
java sql-server database-connection connection-pooling flexy-pool
我看到了可怕的"在从池中获取连接之前超时时间已过去"错误.
我搜索了代码中任何未闭合的数据库连接,但找不到任何.
我想要做的是:下次我们收到此错误时,让系统转储一个列表,其中包含哪些proc或http请求持有所有句柄,因此我可以找出导致问题的代码.
更好的是看看这些手柄有多长时间,所以我可以发现使用但未封闭的连接.
有没有办法做到这一点?
通常我会将池大小设置为
development:
adapter: postgresql
encoding: unicode
database: openkitchen_development
username: rails
host: localhost
pool: 10
password:
Run Code Online (Sandbox Code Playgroud)
在database.yml中.但是heroku会替换配置文件.我正在使用girl_friday做后台数据库工作,需要增加线程池大小.
Hibernate默认使用连接池吗?如果是这样,*connection.pool_size*的默认值是多少?它不与*hibernate.connection.release_mode*冲突吗?是不是连接池的所有想法都没有关闭连接?
我正在尝试使用hikaricp连接池.我能够让它工作并获得我可以使用的连接.我不确定返回池连接的最佳方法是什么.我应该在完成后关闭连接,依赖idletimeout和maxlifetime设置,还是有另一个我可以使用的呼叫,以免占用池中的连接?如果我关闭连接(而不是返回池),是否会导致创建其他连接对象以满足连接池大小的要求?寻找有用的建议
java ×3
heroku ×2
activerecord ×1
asp.net ×1
c3p0 ×1
connection ×1
database ×1
flexy-pool ×1
h2 ×1
hibernate ×1
hikaricp ×1
jdbc ×1
lifetime ×1
resttemplate ×1
spring ×1
sql-server ×1
threadpool ×1
timeout ×1