java-如何为具有多个数据源的grails 2.X应用程序配置c3p0?
作者:互联网
我试图找到一个易于遵循的解决方案(可能是该问题的答案),用于在具有多个数据源的grails 2.X Web应用程序上配置c3p0连接池.我还无法通过Google搜索找到任何清晰易懂的帮助.
我正在寻找的答案将说以下内容:
1)需要什么罐子
2)哪些grails文件需要修改
3)在这些grails文件中放置内容的示例,包括import语句和示例代码.
假设我的应用程序中有两个数据源,即DataSource和dataSource_A,在DataSource.groovy中配置.
如何在grails 2.X Web应用程序中为多个数据源配置c3p0连接池?
解决方法:
这是corresponding documentation.此博客provides a code example如何延迟在Grails中创建数据源…并且可以在这样的代码中使用C3P0.
由于Grails默认随附于DBCP,因此我有可能将数据源和池配置委托给基础容器(例如Tomcat)时发现与添加代码无关以设置C3P0池(并随后替换默认的事务管理器…).或JBoss.因此,我建议您使用这种方式,这里是一个示例how to setup C3P0 for a Tomcat DataSource,只需将其jar添加到lib目录中即可.
现在,在配置多个数据源时,您应该注意有关Grails中缺少两阶段提交支持的部分.
如果您希望对来自两个DataSource的连接所做的操作包含在单个事务中(如果成功则提交,如果失败则回滚),则必须使用XA事务管理器.
在这种情况下,建议您在JBoss和configure DataSources and pooling in JBoss本身中进行部署,JDBC驱动程序必须安装在JBoss库中.
您将获得附带的XA事务管理器的好处.在Grails端,将数据源配置为查询WAR文件的WEB-INF / web.xml和WEB-INF / jboss-web.xml文件中声明的JNDI资源引用条目.
dataSource {
jndiName = "java:comp/env/myDataSource"
}
标签:c3p0,grails,connection-pooling,java 来源: https://codeday.me/bug/20191031/1978961.html