编程语言
首页 > 编程语言> > java-如何为具有多个数据源的grails 2.X应用程序配置c3p0?

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