playframework 2.0 - 在数据库演进上超过max_user_connections? [英] playframework 2.0 - exceeded max_user_connections on database evolutions?

查看:135
本文介绍了playframework 2.0 - 在数据库演进上超过max_user_connections?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对如何配置我的play 2.0应用程序以免在数据库演变和运行时使用如此多的数据库连接方面抱有兴趣。我已经在组和IRC中询问了这个问题,但没有成功。



我使用cleardb ignite实例(max_user_connections = 10)和heroku ...



基本上,当我尝试在我的play 2.0应用程序上运行数据库转换时,我得到:

  ! @ 6a2mjd7kg  - 内部服务器错误,请求[GET /]  - > 

play.api.db.evolutions.InvalidDatabaseRevision:数据库'默认'需要进化! [一个SQL脚本需要在您的数据库上运行。]
at play.api.db.evolutions.EvolutionsPlugin $$ anonfun $ onStart $ 1.apply(Evolutions.scala:424)〜[play_2.9.1.jar: 2.0]
at play.api.db.evolutions.EvolutionsPlugin $$ anonfun $ onStart $ 1.apply(Evolutions.scala:410)〜[play_2.9.1.jar:2.0]
at scala.collection。 LinearSeqOptimized $ class.foreach(LinearSeqOptimized.scala:59)〜[scala-library.jar:0.11.2]
at scala.collection.immutable.List.foreach(List.scala:45)〜[scala-library .jar:0.11.2]
at play.api.db.evolutions.EvolutionsPlugin.onStart(Evolutions.scala:410)〜[play_2.9.1.jar:2.0]
at play.api.Play $$ anonfun $ start $ 1.apply(Play.scala:60)〜[play_2.9.1.jar:2.0]
[错误] cjbhAbstractConnectionHook - 获取连接失败睡眠1000ms后再次尝试。尝试离开:10.异常:空
[错误] c.j.b.h.Abs​​tractConnectionHook - 获取连接失败睡眠1000毫秒并再次尝试。尝试离开:9.例外:空
[错误] c.j.b.h.Abs​​tractConnectionHook - 获取连接失败睡眠1000毫秒并再次尝试。尝试离开:8.异常:空
[错误] c.j.b.h.Abs​​tractConnectionHook - 获取连接失败睡眠1000毫秒并再次尝试。尝试离开:7.异常:空
[错误] c.j.b.h.Abs​​tractConnectionHook - 获取连接失败睡眠1000毫秒并再次尝试。尝试离开:6.异常:空
[错误] c.j.b.h.Abs​​tractConnectionHook - 获取连接失败睡眠1000毫秒并再次尝试。尝试离开:5.例外:空
[错误] c.j.b.h.Abs​​tractConnectionHook - 获取连接失败睡眠1000毫秒并再次尝试。尝试离开:4.例外:空
[错误] c.j.b.h.Abs​​tractConnectionHook - 获取连接失败睡眠1000毫秒并再次尝试。尝试离开:3.例外:空
[错误] c.j.b.h.Abs​​tractConnectionHook - 无法获取连接睡眠1000毫秒并再次尝试。尝试离开:2.异常:空
[错误] c.j.b.h.Abs​​tractConnectionHook - 无法获取连接睡眠1000毫秒并再次尝试。尝试离开:1.例外:空
[错误]应用程序 -

!内部服务器错误,请求[GET / @ evolutions / apply / default?redirect = http%3A%2F%2Flocalhost%3A9000%2F] - >

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:用户'52841e548f150d'已超过'max_user_connections'资源(当前值:10)
at sun.reflect.GeneratedConstructorAccessor26.newInstance(未知源)〜[na:na]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl。java:27)〜[na:1.6.0_29]
at java.lang.reflect.Constructor.newInstance (Constructor.java:513)〜[na:1.6.0_29]
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)〜[mysql-connector-java- 5.1.18.jar: na]
at com.mysql.jdbc.Util.getInstance(Util.java:386)〜[mysql-connector-java-5.1.18.jar:na]
at com.mysql.jdbc。 SQLError.createSQLException(SQLError.java:1052)〜[mysql-connector-java-5.1.18.jar:na]

然后我也经常会得到通常的Exceeded max_user_connections,这种情况在没有进行演化的时候也会经常发生。

我也可以得到这个错误信息:

  com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:用户'52841e548f150d'已超过'max_user_connections'资源(当前值:10 )
at sun.reflect.GeneratedConstructorAccessor19.newInstance(Unknown Source)〜[na:na]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)〜[na:1.6.0_29]
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)〜[na:1.6.0_29]
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 〜[mysql-connector-java-5.1.18.jar:na]
at com.mysql.jdbc.Util.getInstance(Util.java:386)〜[mysql-connector-java-5.1.18.jar :na]
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)〜[mysql-connector-java-5.1.18.jar:na]
[error] cjbhAbstractConnectionHook - 无法获取连接睡眠1000毫秒并再次尝试。尝试离开:10.异常:空
[错误] c.j.b.h.Abs​​tractConnectionHook - 获取连接失败睡眠1000毫秒并再次尝试。尝试离开:9.例外:空
[错误] c.j.b.h.Abs​​tractConnectionHook - 获取连接失败睡眠1000毫秒并再次尝试。尝试离开:8.异常:空
[错误] c.j.b.h.Abs​​tractConnectionHook - 获取连接失败睡眠1000毫秒并再次尝试。尝试离开:7.异常:空
[错误] c.j.b.h.Abs​​tractConnectionHook - 获取连接失败睡眠1000毫秒并再次尝试。尝试离开:6.异常:空
[错误] c.j.b.h.Abs​​tractConnectionHook - 获取连接失败睡眠1000毫秒并再次尝试。尝试离开:5.例外:空
[错误] c.j.b.h.Abs​​tractConnectionHook - 获取连接失败睡眠1000毫秒并再次尝试。尝试离开:4.例外:空
[错误] c.j.b.h.Abs​​tractConnectionHook - 获取连接失败睡眠1000毫秒并再次尝试。尝试离开:3.例外:空
[错误] c.j.b.h.Abs​​tractConnectionHook - 无法获取连接睡眠1000毫秒并再次尝试。尝试离开:2.异常:空
[错误] c.j.b.h.Abs​​tractConnectionHook - 无法获取连接睡眠1000毫秒并再次尝试。尝试左:1.例外:空
[错误]应用程序 -

我的application.conf看起来像这样,我已经尝试了很多变化...
$ b $ pre $ db $ default $ mysql
db.default。 driver = com.mysql.jdbc.Driver
db.default.url =mysql:// usr:pass@db_url.com/db_name
db.default.minSize = 1
db .default.maxSize = 2

在这一点上,任何指导,suggessions,链接都会非常有用。 ..

解决方案

更新后的答案。



仅使用5个连接。

  db.default.partitionCount = 1 
db.default.maxConnectionsPerPartition = 5
db.default。 minConnectionsPerPartition = 5

#连接将为 partitionCount x ConnectionsPerPartition


I am looing any insight as to how I can configure my play 2.0 app to not use so many database connections on both database evolutions and during runtime. I have asked this in the group and in IRC with no luck.

I am using cleardb ignite instance (max_user_connections = 10) with heroku...

Basically when I try to run database evolutions on my play 2.0 app I get:

! @6a2mjd7kg - Internal server error, for request [GET /] ->

play.api.db.evolutions.InvalidDatabaseRevision: Database 'default' needs evolution! [An SQL script need to be run on your database.]
at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:424) ~[play_2.9.1.jar:2.0]
at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:410) ~[play_2.9.1.jar:2.0]
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59) ~[scala-library.jar:0.11.2]
at scala.collection.immutable.List.foreach(List.scala:45) ~[scala-library.jar:0.11.2]
at play.api.db.evolutions.EvolutionsPlugin.onStart(Evolutions.scala:410) ~[play_2.9.1.jar:2.0]
at play.api.Play$$anonfun$start$1.apply(Play.scala:60) ~[play_2.9.1.jar:2.0]
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection Sleeping for 1000ms and trying again. Attempts left: 10. Exception: null
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection Sleeping for 1000ms and trying again. Attempts left: 9. Exception: null
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection Sleeping for 1000ms and trying again. Attempts left: 8. Exception: null
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection Sleeping for 1000ms and trying again. Attempts left: 7. Exception: null
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection Sleeping for 1000ms and trying again. Attempts left: 6. Exception: null
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection Sleeping for 1000ms and trying again. Attempts left: 5. Exception: null
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection Sleeping for 1000ms and trying again. Attempts left: 4. Exception: null
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection Sleeping for 1000ms and trying again. Attempts left: 3. Exception: null
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection Sleeping for 1000ms and trying again. Attempts left: 2. Exception: null
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection Sleeping for 1000ms and trying again. Attempts left: 1. Exception: null
 [error] application - 

! Internal server error, for request [GET /@evolutions/apply/default?redirect=http%3A%2F%2Flocalhost%3A9000%2F] ->

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: User '52841e548f150d' has exceeded the 'max_user_connections' resource (current value: 10)
at sun.reflect.GeneratedConstructorAccessor26.newInstance(Unknown Source) ~[na:na]
at       sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.  java:27) ~[na:1.6.0_29]
at java.lang.reflect.Constructor.newInstance(Constructor.java:513) ~[na:1.6.0_29]
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) ~[mysql-connector-java-  5.1.18.jar:na]
at com.mysql.jdbc.Util.getInstance(Util.java:386) ~[mysql-connector-java-5.1.18.jar:na]
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052) ~[mysql-connector-java-5.1.18.jar:na]

Then also I often will get the usual "Exceeded max_user_connections', this happens very frequently when not doing evolutions also.

I can also get this error message:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: User '52841e548f150d' has exceeded the 'max_user_connections' resource (current value: 10)
at sun.reflect.GeneratedConstructorAccessor19.newInstance(Unknown Source) ~[na:na]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) ~[na:1.6.0_29]
at java.lang.reflect.Constructor.newInstance(Constructor.java:513) ~[na:1.6.0_29]
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) ~[mysql-connector-java-5.1.18.jar:na]
at com.mysql.jdbc.Util.getInstance(Util.java:386) ~[mysql-connector-java-5.1.18.jar:na]
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052) ~[mysql-connector-java-5.1.18.jar:na]
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection Sleeping for 1000ms and trying again. Attempts left: 10. Exception: null
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection Sleeping for 1000ms and trying again. Attempts left: 9. Exception: null
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection Sleeping for 1000ms and trying again. Attempts left: 8. Exception: null
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection Sleeping for 1000ms and trying again. Attempts left: 7. Exception: null
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection Sleeping for 1000ms and trying again. Attempts left: 6. Exception: null
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection Sleeping for 1000ms and trying again. Attempts left: 5. Exception: null
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection Sleeping for 1000ms and trying again. Attempts left: 4. Exception: null
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection Sleeping for 1000ms and trying again. Attempts left: 3. Exception: null
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection Sleeping for 1000ms and trying again. Attempts left: 2. Exception: null
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection Sleeping for 1000ms and trying again. Attempts left: 1. Exception: null
[error] application -

My application.conf looks like this, and I have tried many variations...

db.default=mysql 
db.default.driver=com.mysql.jdbc.Driver
db.default.url="mysql://usr:pass@db_url.com/db_name"
db.default.minSize=1
db.default.maxSize=2

Any guidance, suggessions, links, would be extremely helpful at this point...

解决方案

Updated answer.

Here is a configuration that only uses 5 connections.

db.default.partitionCount=1
db.default.maxConnectionsPerPartition=5
db.default.minConnectionsPerPartition=5

# Connections will be partitionCount x ConnectionsPerPartition

这篇关于playframework 2.0 - 在数据库演进上超过max_user_connections?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆