在Tomcat 7上玩Play Framework 2.2.2 - 删除BoneCP

时间:2014-04-11 12:38:17

标签: java playframework tomcat7 playframework-2.2 bonecp

我有一个Play Framework 2.2.2应用程序,我将其部署为.war文件并在Tomcat 7下运行。我的应用程序在我的本地开发计算机上运行了几天没有问题(通过Play的内置服务器,而不是Tomcat),但是一旦我在Tomcat下部署它,几个小时后Tomcat服务器将锁定,同时关闭在其上运行的所有其他应用程序。

我认为问题在于Play中的BoneCP连接池和Tomcat的内置连接池是冲突的。在Tomcat日志中没有太多或任何有用的信息,所以我在这里猜测。

我想在我的Play应用程序中禁用BoneCP连接池,但无法找到有关如何执行此操作的任何信息。

任何建议表示赞赏!

1 个答案:

答案 0 :(得分:1)

有几种可能的解决方案,对于您的部署环境可能或多或少是首选。

  1. Play为您提供了一个“开箱即用”的数据库连接,您无需使用该连接。从构建文件中删除Play JDBC组件(从jdbc中删除libraryDependencies)并自行手动设置JDBC连接。例如,您可以创建一个具有函数TomcatConnectionPool的单getConnection(),它为您提供在Play操作中使用所需的JDBC连接。

  2. Write your own plugin专门扩展Play's DBPlugin interface,以便它是一个数据库插件。实现它like Play's BoneCPPlugin但是使它使用Tomcat连接池而不是BoneCP。

  3. 使用其他人已经制作的自定义Play数据库插件like this one that uses c3p0。我有一些轶事证据表明c3p0可以很好地与Tomcat一起使用,但是你的里程数会有所不同。