`
dawuafang
  • 浏览: 1105097 次
文章分类
社区版块
存档分类
最新评论

proxoo连接池配置常见问题

 
阅读更多

如果在web.xml中有如下配置:

<servlet>
<servlet-name>ServletConfigurator </servlet-name>
<servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
<init-param>
<param-name>xmlFile</param-name>
<param-value>/WEB-INF/classes/proxool.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

那么如果在hibernate.cfg.xml中还有如下配置的话:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="hibernate.proxool.pool_alias">mssqlProxool</property>
<property name="hibernate.proxool.xml">proxool.xml</property>
<property name="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>
<property name="hibernate.proxool.existing_pool">false</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="hibernate.cache.use_query_cache">true</property>
</session-factory>
</hibernate-configuration>

注意:如果同时配置了web.xml和hibernate.cfg.xml会产生错误:
org.logicalcobwebs.proxool.ProxoolException: Parsing failed.
因为同名的proxool连接池已经启动,而hibernate开始运行时会自己启动关联的proxool连接池.
所以此时应改变hibernate.cfg.xml配置为:
<property name="hibernate.proxool.existing_pool">true</property>
================================================
以上的方式是由hibernate配置管理数据库连接池(proxool)的方式!!!!!
=======================================================

以下是由spring管理数据库连接池的配置方式:

<bean id="hrDS"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="org.logicalcobwebs.proxool.ProxoolDriver" />
		<property name="url" value="proxool.phrConn" />
	</bean>

<bean id="phrSessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource" ref="hrDS" />
		<property name="jtaTransactionManager" ref="atomikosTransactionManager" />
		<property name="mappingDirectoryLocations">
			<list>
				<value>${dbconn.docstore.mappingDirectory}</value>
			</list>
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					${dbconn.docstore.dialect}
				</prop>
				<prop key="hibernate.show_sql">
					${dbconn.docstore.showsql}
				</prop>
				<prop key="hibernate.format_sql">true</prop>
				<prop key="hibernate.cache.use_second_level_cache">
					false
				</prop>
				<prop key="hibernate.cache.provider_class">
					org.hibernate.cache.EhCacheProvider
				</prop>
				<prop key="hibernate.cache.use_query_cache">false</prop>
				<!--
					for jta compatilibility (jta)
					org.hibernate.context.JTASessionContext
				-->
				<prop key="current_session_context_class">jta</prop>
				<prop key="hibernate.transaction.factory_class">
					org.hibernate.transaction.JTATransactionFactory
				</prop>
			</props>
		</property>
	</bean>
==================================

下面spring中这个属性的配置替代了hibernate.cfg.xml配置中引入的<mapping resource="com/unicom/dmp/metadata/model/MetaObjectField.hbm.xml" />......

<property name="mappingDirectoryLocations">
			<list>
				<value>${dbconn.docstore.mappingDirectory}</value>
			</list>
		</property>


${dbconn.docstore.mappingDirectory} 来源于:properties配置文件中的设置:dbconn.docstore.mappingDirectory=classpath\:com/xzc/phr/dao/vo

显然看起来简化许多了.

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics