2011-12-08 244 views
0

我有两个在Tomcat(6.0)下运行的Java Web应用程序,并使用Tomcat & c3p0连接池作为Tomcat Data-source。如果我为两个不同的Oracle Connection定义两个资源(server.xml)并将c3p0用于连接池低于我的,我们的应用程序使用,我的问题是:Tomcat连接池概念&c3p0连接池?

<Resource 
name="jdbc/OracleDB" 
auth="Container" 
type="com.mchange.v2.c3p0.ComboPooledDataSource" 
driverClass="oracle.jdbc.OracleDriver" 
factory="xxx" 
jdbcUrl="jdbc:oracle:thin:@(DESCRIPTION= (LOAD_BALANCE=on)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx) (PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=xxx)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=xxx)))" 
maxPoolSize="10" 
minPoolSize="0" 
maxIdleTime="60" 
maxConnectionAge="600" 
acquireIncrement="1" 
user="xxx=" 
password="xxx=" /> 


<Resource name="jdbc/xxx2DB" 
auth="Container" 
type="com.mchange.v2.c3p0.ComboPooledDataSource" 
driverClass="oracle.jdbc.OracleDriver" 
factory="xxx" 
jdbcUrl="jdbc:oracle:thin:@xxx:1527:xxx" 
maxPoolSize="10" 
minPoolSize="0" 
acquireIncrement="1" 
maxIdleTime="60" 
maxConnectionAge="600" 
user="xxx" 
password="xxx" 
/> 

Q1。 server.xml中的以下内容是否意味着Tomcat 内存中存在两个连接池到两个不同的Oracle实例?

Q2。我是否必须指定任何配置属性(参考:http://www.mchange.com/projects/c3p0/index.html#configuration_properties),在我的情况下,我有一个到Oracle RAC实例的连接,另一个连接到单个Oracle实例。我应该在企业环境中考虑 任何其他配置属性吗?

Q3。下面的设置是否足够有效?

Q4。如何启用C3P0记录(我只有在Tomcat的lib和上面设置的jar现在

任何意见

在此先感谢

回答

2

A1:??

A2不确定我是否有问题,但应该只指定那些默认值对您没有意义的连接属性。最好在单独的c3p0.properties文件中执行此操作,并指定哪个连接哪个pro perty适用于。回答'其他配置属性'的问题需要知道你的环境的具体情况。我建议您查看idle_test_period设置,因为这些设置通常可能有错误的默认设置(请确保它与数据库端的相关设置相匹配)。

A3:是的,这看起来不错。

A4:您需要c3p0.properties指定日志记录的喜好或动态地将它们定义为系统属性。参考this chapter of the c3p0 manual

2

A1:

A2:权乍看起来。如果您使用分布式事务,您需要小心RAC - 然后我相信您必须指定其他属性。

A3:看起来不错,但取决于你的任务和估计的负载,我会玩maxIdleTime,acquireIncrement和maxPoolSize。例如,对于60秒不活动状态下的当前设置,连接将被关闭,以便在60秒后请求连接的下一个操作会在等待新连接打开时受到惩罚。

A4:http://www.mchange.com/projects/c3p0/index.html#configuring_logging

建议:

  1. 有从Tomcat 7,这可能在Tomcat的6被用作井的better connection pool。考虑,特别是如果你需要高性能

  2. 考虑connection testing使您的应用程序没有得到(或获得较少频繁)异常时DB连接下降

  3. 这可能是最好封装连接池,它的在你的应用程序和Tomcat中进行配置。这样,应用程序WAR将自成一体,因此可以将其放入tomcat的wabapps目录中。