2012-05-11 10 views
0

私は春/休止状態の統合アプリケーションを使用しています。私はc3p0接続プーリングを設定しました。私はc3p0 combopooledデータソースを使用しています。 combopooledデータソースプロパティはどこで指定する必要がありますか?c3p0プロパティはどこに指定する必要がありますか?

このセクションの内容は?

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
     <property name="mappingLocations" value="classpath:hibernate-mapping.xml" /> 
     <property name="hibernateProperties"> 
      <props> 
       **//Here do I need to specify combopooled datasource properties? 
     //like acquireIncrement 
      acquireRetryAttempts 
      acquireRetryDelay 
      preferredTestQuery 
      maxPoolSize...etc** 
      </props> 
     </property> 
     <property name="dataSource" ref="dataSource" /> 
    </bean> 

ここですか?

<bean id="rootDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> 
     <property name="driverClass" value="${jdbc.driver}" /> 
     <property name="jdbcUrl" value="${jdbc.url}" /> 
     <property name="user" value="${jdbc.username}" /> 
     <property name="password" value="${jdbc.password}" /> 
**//Here do i need to specify combopooled datasource properties? 
      //like acquireIncrement 
      acquireRetryAttempts 
      acquireRetryDelay 
      preferredTestQuery** 
      maxPoolSize...etc 

</bean> 

私にお勧めします。

ありがとうございます!

答えて

1

c3p0.propertiesファイルで指定できます。ちょうどあなたがあなたが

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
     <!--<property name="lobHandler"> 
     <ref local="lobHandler" /> 
     </property>--> 
     <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.connection.driver_class">${jdbc.drivers}</prop> 
      <prop key="hibernate.connection.url">${jdbc.url}</prop> 
      <prop key="hibernate.connection.username">${jdbc.username}</prop> 
      <prop key="hibernate.connection.password">${jdbc.password}</prop> 
      <prop key="hibernate.c3p0.min_size">5</prop> 
      <prop key="hibernate.c3p0.max_size">100</prop> 
      <prop key="hibernate.c3p0.timeout">1800</prop> 
      <prop key="hibernate.c3p0.max_statements">50</prop> 
      <prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop> 
      <prop key="hibernate.cglib.use_reflection_optimizer">true</prop> 
      <prop key="hibernate.show_sql">true</prop> 
      <prop key="hibernate.format_sql">true</prop> 
     </props> 
     </property> 
を使用することができます休止状態のためのXMLを春にあなたがそれをしたい場合は、あなたのクラスパス

のルートに置くか、c3p0-config.xmlという名前のXMLファイルでも、あなたのクラスパス

のルートにありますか

私は、Hibernate設定が両方とも存在する場合、c3po.propertiesファイルの使用を無効にすると思います。 this postは、c3poドキュメントとの矛盾を示唆しています

+0

ご返信ありがとうございます。再びどのセクションでプロパティファイルからプロパティ値にアクセスする必要がありますか?ありがとう! – user1016403

+0

プロパティファイルを作成した場合、c3poクラスは正確なファイル名でクラスパスのルートにあるプロパティファイルを探します。これを指定する必要はありません。それはうまくいくはずです。 – Brad

0

これらはデータソースBean(rootDataSource)に進む必要があります。 LocalSessionFactoryBeanにデータソースを渡すと、Hibernateは接続プールを作成しないため、hibernatePropertiesで指定されたプロパティは無視されます。

設定したいすべてのプロパティは、ComboPooledDataSourceのセッターメソッドとして利用できます。データソースBeanにさらにプロパティー・タグを追加し、そこに値を指定します。

<bean id="rootDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> 
        <property name="driverClass" value="${jdbc.driver}" /> 
        <property name="jdbcUrl" value="${jdbc.url}" /> 
        <property name="user" value="${jdbc.username}" /> 
        <property name="password" value="${jdbc.password}" /> 
        <property name="password" value="${jdbc.password}" /> 
        <property name="acquireRetryAttempts" value="..." /> 
        <property name="acquireRetryDelay" value="..." /> 
        <property name="preferredTestQuery" value="..." /> 
       <property name="maxPoolSize" value="..." />    
  </bean> 
関連する問題