<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" 
    "http://www.springframework.org/dtd/spring-beans.dtd">
    <!-- <beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans   
               http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">   -->
<beans>

	<!-- bean id="ds-1" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName" value="jdbc/test"/>
        <property name="resourceRef" value="true"/>
    </bean-->
	
	<bean id="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource"
	     destroy-method="close">
		<property name="driverClassName">
			<value>oracle.jdbc.driver.OracleDriver</value>
		</property>
		<property name="url">
			<!--测试-->
			<!--<value>jdbc:oracle:thin:@172.16.2.128:1521:tgcxtest</value>-->
			<!--正式 -->
			<!--<value>jdbc:oracle:thin:@172.16.2.105:1521/tgcxdb</value>-->
			<!-- 天淮测试 -->
			<!--<value>jdbc:oracle:thin:@192.168.10.31:1521/TGCXDB</value>-->
			<!-- 天淮正式 -->
			<value>jdbc:oracle:thin:@172.54.11.30:1521/TGCXDB</value>
			
		</property>
		<property name="username">
			<value>cxuser</value> 
		</property>
		<property name="password">
			<!--<value>cxuser</value>-->
			<value>usr5581</value>
			<!--<value>tgusercx_2275</value>-->
		</property>
		<!-- 最大连接数据库连接数,设 0 为没有限制 -->
		<property name="maxActive">
			<value>40</value>
		</property>
		<!-- 最大等待连接中的数量,设 0 为没有限制  -->
		<property name="maxIdle">
			<value>30</value>
		</property>
		<!-- 最小等待连接中的数量  -->
		<property name="minIdle">
			<value>20</value>
		</property>
		<!-- 最大等待毫秒数, 单位为 ms, 超过时间会出错误信息  -->
		<property name="maxWait">
			<value>5000</value>
		</property>
		<!-- 最大等待连接中的数量,设 0 为没有限制  -->
		<property name="defaultAutoCommit">
			<value>true</value>
		</property>
		<!-- 回收被遗弃的（一般是忘了释放的）数据库连接到连接池中  -->
		<property name="removeAbandoned">
			<value>true</value>
		</property>
		<!-- 数据库连接过多长时间不用将被视为被遗弃而收回连接池中  -->
		<property name="removeAbandonedTimeout">
			<value>60</value>
		</property>
		<property name="logAbandoned">
			<value>true</value>
		</property>
		<property name="initialSize">
			<value>10</value>
		</property>
		
		<!-- sql 心跳  在数据库重启后确保重连-->
		<property name= "testWhileIdle" value="true"/>
		<property name= "testOnBorrow" value="false"/>
		<property name= "testOnReturn" value="false"/>
		<property name= "validationQuery" value="select * from dual"/>		
		<property name= "timeBetweenEvictionRunsMillis" value="60000"/>
		<property name= "numTestsPerEvictionRun" value="10"/>
		<!--  property name= "validationQueryTimeout" value="1" />-->
		
	</bean>
	
   <bean id="dataSource1"
		class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">

		<property name="driverClassName">
            <value>oracle.jdbc.driver.OracleDriver</value>
        </property>
        <property name="url">
        	<!--正式 -->
            <value>jdbc:oracle:thin:@172.16.17.31:1521/wlsrv</value>            
        </property>
        <property name="username">
            <value>tgcc_user</value> 
        </property>
        <property name="password">
            <value>jikongsystem</value> 
        </property>
		<!-- 最大连接数据库连接数,设 0 为没有限制 -->
		<property name="maxActive">
			<value>10</value>
		</property>
		<!-- 最大等待连接中的数量,设 0 为没有限制  -->
		<property name="maxIdle">
			<value>6</value>
		</property>
		<!-- 最小等待连接中的数量  -->
		<property name="minIdle">
			<value>4</value>
		</property>
		<!-- 最大等待毫秒数, 单位为 ms, 超过时间会出错误信息  -->
		<property name="maxWait">
			<value>5000</value>
		</property>
		<!-- 最大等待连接中的数量,设 0 为没有限制  -->
		<property name="defaultAutoCommit">
			<value>true</value>
		</property>
		<!-- 回收被遗弃的（一般是忘了释放的）数据库连接到连接池中  -->
		<property name="removeAbandoned">
			<value>true</value>
		</property>
		<!-- 数据库连接过多长时间不用将被视为被遗弃而收回连接池中  -->
		<property name="removeAbandonedTimeout">
			<value>60</value>
		</property>
		<property name="logAbandoned">
			<value>true</value>
		</property>
		<property name="initialSize">
			<value>2</value>
		</property>
	</bean>

	<bean id="dataSource2"
		class="org.apache.commons.dbcp.BasicDataSource"
	     destroy-method="close">
		<property name="driverClassName">
			<value>oracle.jdbc.driver.OracleDriver</value>
		</property>
		<property name="url">
			<!--测试-->
			<!--<value>jdbc:oracle:thin:@172.16.2.128:1521:tgcxtest</value>-->
			<!--正式 -->
			<!--<value>jdbc:oracle:thin:@172.16.2.126:1521:tgjhy</value>-->
			<!-- 天淮正式 -->
			<value>jdbc:oracle:thin:@172.54.11.30:1521:tgcxdb</value>
		</property>
		<property name="username">
			<!--<value>limsuser</value> -->
			<value>LIMSUSER</value>
		</property>
		<property name="password">
			<!--<value>cxuser</value>-->
			<!--<value>limsuser_2015</value>-->
			<value>lis91573</value>
		</property>
		<!-- 最大连接数据库连接数,设 0 为没有限制 -->
		<property name="maxActive">
			<value>8</value>
		</property>
		<!-- 最大等待连接中的数量,设 0 为没有限制  -->
		<property name="maxIdle">
			<value>6</value>
		</property>
		<!-- 最小等待连接中的数量  -->
		<property name="minIdle">
			<value>4</value>
		</property>
		<!-- 最大等待毫秒数, 单位为 ms, 超过时间会出错误信息  -->
		<property name="maxWait">
			<value>5000</value>
		</property>
		<!-- 最大等待连接中的数量,设 0 为没有限制  -->
		<property name="defaultAutoCommit">
			<value>true</value>
		</property>
		<!-- 回收被遗弃的（一般是忘了释放的）数据库连接到连接池中  -->
		<property name="removeAbandoned">
			<value>true</value>
		</property>
		<!-- 数据库连接过多长时间不用将被视为被遗弃而收回连接池中  -->
		<property name="removeAbandonedTimeout">
			<value>60</value>
		</property>
		<property name="logAbandoned">
			<value>true</value>
		</property>
		<property name="initialSize">
			<value>2</value>
		</property>
		
		<!-- sql 心跳  在数据库重启后确保重连-->
		<property name= "testWhileIdle" value="true"/>
		<property name= "testOnBorrow" value="false"/>
		<property name= "testOnReturn" value="false"/>
		<property name= "validationQuery" value="select * from dual"/>		
		<property name= "timeBetweenEvictionRunsMillis" value="60000"/>
		<property name= "numTestsPerEvictionRun" value="10"/>
		<!--  property name= "validationQueryTimeout" value="1" />-->
		
	</bean>
	
	<bean id="dataSource3"
		class="org.apache.commons.dbcp.BasicDataSource"
	     destroy-method="close">
		<property name="driverClassName">
			<value>oracle.jdbc.driver.OracleDriver</value>
		</property>
		<property name="url">
			<!--正式 -->
			<value>jdbc:oracle:thin:@172.16.2.142:1521:tgtms</value>
		</property>
		<property name="username">
			<value>tgtms</value> 
		</property>
		<property name="password">
			<value>tgtms_2019</value>
		</property>
		<!-- 最大连接数据库连接数,设 0 为没有限制 -->
		<property name="maxActive">
			<value>8</value>
		</property>
		<!-- 最大等待连接中的数量,设 0 为没有限制  -->
		<property name="maxIdle">
			<value>6</value>
		</property>
		<!-- 最小等待连接中的数量  -->
		<property name="minIdle">
			<value>4</value>
		</property>
		<!-- 最大等待毫秒数, 单位为 ms, 超过时间会出错误信息  -->
		<property name="maxWait">
			<value>5000</value>
		</property>
		<!-- 最大等待连接中的数量,设 0 为没有限制  -->
		<property name="defaultAutoCommit">
			<value>true</value>
		</property>
		<!-- 回收被遗弃的（一般是忘了释放的）数据库连接到连接池中  -->
		<property name="removeAbandoned">
			<value>true</value>
		</property>
		<!-- 数据库连接过多长时间不用将被视为被遗弃而收回连接池中  -->
		<property name="removeAbandonedTimeout">
			<value>60</value>
		</property>
		<property name="logAbandoned">
			<value>true</value>
		</property>
		<property name="initialSize">
			<value>2</value>
		</property>
		
		<!-- sql 心跳  在数据库重启后确保重连-->
		<property name= "testWhileIdle" value="true"/>
		<property name= "testOnBorrow" value="false"/>
		<property name= "testOnReturn" value="false"/>
		<property name= "validationQuery" value="select * from dual"/>		
		<property name= "timeBetweenEvictionRunsMillis" value="60000"/>
		<property name= "numTestsPerEvictionRun" value="10"/>
		<!--  property name= "validationQueryTimeout" value="1" />-->
		
	</bean>

	<bean id="jdbcTemplate"
		class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource" />
		<!--  设置抽取器 -->
		<property name="nativeJdbcExtractor" ref="nativeJdbcExtractor" />
	</bean>
	
	<bean id="jdbcTemplate1"
		class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource1" />
		<!--  设置抽取器 -->
		<property name="nativeJdbcExtractor" ref="nativeJdbcExtractor" />
	</bean>
	
	<bean id="jdbcTemplate2"
		class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource2" />
		<!--  设置抽取器 -->
		<property name="nativeJdbcExtractor" ref="nativeJdbcExtractor" />
	</bean>
	
		<bean id="jdbcTemplate3"
		class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource3" />
		<!--  设置抽取器 -->
		<property name="nativeJdbcExtractor" ref="nativeJdbcExtractor" />
	</bean>
	
	
	
	<bean id="nativeJdbcExtractor"
		class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor"
		lazy-init="true" />
	<bean id="oracleLobHandler"
		class="org.springframework.jdbc.support.lob.OracleLobHandler"
		lazy-init="true">
		<property name="nativeJdbcExtractor" ref="nativeJdbcExtractor" />
		<!-- ① 设置本地 Jdbc 对象抽取器 -->
	</bean>
	
	<bean id="TgDao" class="CoreFS.SA04.CoreDBProxy">
		<property name="jdbcTemplate" ref="jdbcTemplate" />
		<!-- ② 设置 LOB 处理器 -->
		<property name="lobHandler" ref="oracleLobHandler" />
	</bean>

	<bean id="JLDATEDao" class="CoreFS.SA04.CoreDBProxy">
		<property name="jdbcTemplate" ref="jdbcTemplate1" />
		<!-- ② 设置 LOB 处理器 -->
		<property name="lobHandler" ref="oracleLobHandler" />
	</bean>
	
	<bean id="LIMSDao" class="CoreFS.SA04.CoreDBProxy">
		<property name="jdbcTemplate" ref="jdbcTemplate2" />
		<!-- ② 设置 LOB 处理器 -->
		<property name="lobHandler" ref="oracleLobHandler" />
	</bean>
	
	<bean id="TmsDao" class="CoreFS.SA04.CoreDBProxy">
		<property name="jdbcTemplate" ref="jdbcTemplate3" />
		<!-- ② 设置 LOB 处理器 -->
		<property name="lobHandler" ref="oracleLobHandler" />
	</bean>
	
	
	
	<!-- 实体类使用的Hibernate配置 -->
  <!--  Hibernate配置-->
  	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />		
		<!-- property name="typeDefinitions" ref="jbpmTypes"/-->
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.Oracle10gDialect
				</prop>
				<prop key="hibernate.default_batch_fetch_size">10</prop>
				<prop key="hibernate.max_fetch_depth">0</prop>
				<prop key="hibernate.show_sql">true</prop>
			</props>
		</property>	
	</bean>
		<bean id="transactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>	
	<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
		<property name="sessionFactory">
			<ref bean="sessionFactory"/>
		</property>
		<property name="allowCreate">
			<value>true</value>
		</property>
	</bean>
     
	<bean id="baseDao" class="CoreBpm.Util.BaseDao">		
		 <property name="hibernateTemplate">
			<ref bean="hibernateTemplate"/>
		</property>
	<!-- 	<property name="jbpmTemplate">
			<ref bean="jbpmTemplate"/>  
		</property>-->
	</bean>
	<bean id="sqlSessionFactory" class="CoreFS.SE01.CoreSqlSessionFactoryBean">
        <property name="configLocation" value="classpath:configuration.xml"></property>
        <property name="database" value="Oracle" />
        <property name="dataSource" ref="dataSource" />
        <property name="mapperLocations" value="classpath:com/steering/mapper/"></property>
    </bean>
</beans>
