2014-10-24 2 views
0

servcemix 4.4.1에서 연결 풀링을 구성하려고합니다. oracle datasource 객체를 만들고 user, password, url과 같은 속성을 설정했습니다. 내 smx에 osgi 서비스로 다음 XML을 배포했습니다.servicemix, oracle 데이터 원본, 연결 풀링, 최대 연결

여기 내 데이터 소스 구성입니다 :

<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"> 

    <bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource"> 
    <property name="URL" value="jdbc:oracle:thin:@connection:url"/> 
<property name="user" value="****"/> 
<property name="password" value="*****"/> 


</bean> 

<service interface="javax.sql.DataSource" ref="dataSource"> 
<service-properties> 
<entry key="osgi.jndi.service.name" value="oracleds"/> 
</service-properties> 
</service> 
</blueprint> 

데이터 소스 개체가 성공적으로 생성되어 내 번들에 JNDI 조회를 사용하여 객체를 검색 할 수 있어요.

이제 "최대 연결 수"를 선언해야하는 연결 풀링을 적용하려고합니다. 내가 어떻게 최대 수를 선언 할 수 있는지 제안 해주세요. 위의 XML에있는 연결 수

미리 감사드립니다.

답변

0
(이것은 다른 사람 요점의 포크입니다)

다음은 내 blueprint.xml의 예입니다.

<blueprint  xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0" 
    xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0" 
    xsi:schemaLocation= 
      "http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd" 
    default-activation="eager"> 

    <cm:property-placeholder id="server.placeholder" persistent-id="test.datasource"> 
     <cm:default-properties> 
      <cm:property name="driverClassName" value="oracle.jdbc.pool.OracleDataSource" /> 
      <cm:property name="validationQuery" value="SELECT 1 FROM DUAL" /> 
      <cm:property name="defaultReadOnly" value="false" /> 
      <cm:property name="defaultAutoCommit" value="true" /> 
      <cm:property name="maxActive" value="100" /> 
      <cm:property name="whenExhaustedAction" value="2" /> 
      <cm:property name="maxWait" value="-1" /> 
      <cm:property name="maxIdle" value="8" /> 
      <cm:property name="minIdle" value="1" /> 
      <cm:property name="testOnBorrow" value="true" /> 
      <cm:property name="testOnReturn" value="true" /> 
      <cm:property name="timeBetweenEvictionRunsMillis" value="-1" /> 
      <cm:property name="numTestsPerEvictionRun" value="3" /> 
      <cm:property name="minEvictableIdleTimeMillis" value="1800000" /> 
      <cm:property name="testWhileIdle" value="false" /> 
      <cm:property name="softMinEvictableIdleTimeMillis" value="-1" /> 
      <cm:property name="lifo" value="true" /> 
     </cm:default-properties> 
    </cm:property-placeholder> 

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
     <property name="driverClassName" value= "${driverClassName}" /> 
     <property name="url" value="jdbc:oracle:thin:@${db.host}:${db.port}:${db.instance}" /> 
     <property name="username" value="${db.user}" /> 
     <property name="password" value="${db.password}" /> 
     <property name="maxIdle" value="1" /> 
    </bean> 

    <bean id="connectionFactory" class="org.apache.commons.dbcp.DataSourceConnectionFactory"> 
     <argument ref="dataSource" /> 
    </bean> 

    <bean id="connectionPool" class="org.apache.commons.pool.impl.GenericObjectPool" > 
     <argument><null/></argument> 
     <argument value="${maxActive}" /> 
     <argument value="${whenExhaustedAction}" /> 
     <argument value="${maxWait}" /> 
     <argument value="${maxIdle}" /> 
     <argument value="${minIdle}" /> 
     <argument value="${testOnBorrow}" /> 
     <argument value="${testOnReturn}" /> 
     <argument value="${timeBetweenEvictionRunsMillis}" /> 
     <argument value="${numTestsPerEvictionRun}" /> 
     <argument value="${minEvictableIdleTimeMillis}" /> 
     <argument value="${testWhileIdle}" /> 
     <argument value="${softMinEvictableIdleTimeMillis}" /> 
     <argument value="${lifo}" /> 
    </bean> 

    <bean id="pooledConnectionFactory" class="org.apache.commons.dbcp.PoolableConnectionFactory" > 
     <argument ref="connectionFactory" /> 
     <argument ref="connectionPool" /> 
     <argument><null/></argument> 
     <argument value="${validationQuery}" /> 
     <argument value="${defaultReadOnly}" /> 
     <argument value="${defaultAutoCommit}" /> 
    </bean> 

    <bean id="poolingDataSource" class="org.apache.commons.dbcp.PoolingDataSource" depends-on="pooledConnectionFactory"> 
     <argument ref="connectionPool" /> 
    </bean> 

    <service interface="javax.sql.DataSource" ref="poolingDataSource"> <!--ref="oracleDataSource"--> 
     <service-properties> 
      <entry key="osgi.jndi.service.name" value="jdbc/testdb"/> 
      <entry key="datasource.name" value="jdbc/testdb" /> 
     </service-properties> 
    </service> 

</blueprint> 

tasource 잘 작동합니다. "maxActive"속성이 필요한 것 가까이에 있다고 생각합니다.