1

Mule 真的很整洁,但与 spring 共享的刚性 xsd 东西似乎永远不会玩得很好。

Mulesoft 提供的可怕文档仍然是......可怕的。

我正在尝试设置连接池,因为为我的服务运行的每个查询都需要很长时间才能实例化。我被迫在每个服务调用中启动 9 个查询,并且由于没有池而产生的延迟会严重影响性能。对于数据源,我尝试了许多不同的 oracle v6 类,但我似乎总是收到“由于缺少 setter 而无法写入参数”错误。就好像 spring 属性编辑器 impl 被强制退出了 mulesoft xml 模式。

如果有人能够使 oracle 连接池与 oracle 类一起工作,而不是 c3p0 或 dbcp 的东西,请联系兄弟。

这是我的 xml 汤。

<spring:beans>
    <context:property-placeholder xmlns:context="http://www.springframework.org/schema/context" location="classpath:somepropfile.properties"></context:property-placeholder>
<spring:bean id="jdbcDataSource" name="jdbcConnectionInfo" class="oracle.jdbc.pool.OraclePooledConnection" doc:name="Bean">
        <spring:property name="url" value="${JDBC.URL}"/>
        <spring:property name="username" value="${JDBC.user}"/>
        <spring:property name="password" value="${JDBC.password}"/>
        <spring:property name="connectionCacheProperties" ref="cacheProperties"/>
    </spring:bean>
<spring:bean id="cacheProperties" name="cacheProps" class="com.erac.obr_mule.appsec.PoolCacheProperties" doc:name="Bean">
        <spring:property name="validateConnection" value="true"/>
        <spring:property name="maxLimit" value="5"/>
        <spring:property name="inactivityTimeout" value="180"/>
        <spring:property name="connectionWaitTimeout" value="120"/>
        <spring:property name="minLimit" value="1"/>
        <spring:property name="initialLimit" value="1"/>
    </spring:bean>   

</spring:beans>

<jdbc:connector name="JDBC" dataSource-ref="jdbcDataSource" queryTimeout="-1" pollingFrequency="0" doc:name="JDBC">
    <jdbc:query key="getMuhDatasHooker" value=" BUNCH O SQL " />
</jdbc:connector>
4

3 回答 3

2

根据这个答案,你追求的是这样的:

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
  <property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/>
  <property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:XE"/>
  <property name="user" value="username"/>
  <property name="password" value="secret"/>
  <property name="minPoolSize" value="5"/>
  <property name="maxPoolSize" value="20"/>
  <property name="acquireIncrement" value="1"/>
  <property name="idleConnectionTestPeriod" value="100"/>
  <property name="maxStatements" value="0"/>
  <property name="checkoutTimeout" value="60000"/>
</bean>
于 2012-05-02T15:28:00.387 回答
1

我选择了 dbcp 解决方案。原来我能够在我们祝福的古物宝库中找到它并使用它。

也许在 3.3 中,他们将有一个只有 oracle 的解决方案

 <spring:bean id="jdbcDataSource" name="jdbcConnectionInfo" class="org.apache.commons.dbcp.BasicDataSource" doc:name="Bean">
        <spring:property name="driverClassName" value="oracle.jdbc.pool.OracleDataSource"/>
        <spring:property name="url" value="${JDBC.URL}"/>
        <spring:property name="username" value="${JDBC.user}"/>
        <spring:property name="password" value="${JDBC.password}"/>
        <spring:property name="initialSize" value="1"/>
        <spring:property name="maxActive" value="9"/>
        <spring:property name="maxIdle" value="180"/>

于 2012-05-04T19:17:19.563 回答
0

将以下用于 oracle 连接池

<bean id="connectionPool1" class="oracle.jdbc.pool.OracleDataSource" destroy-method="close">
<property name="connectionCachingEnabled" value="true" />
<property name="URL">
         <value>ORACLE URL</value>
    </property>
<property name="user">
         <value>user id</value>
    </property>
<property name="password">
         <value>user password</value>
    </property>
<property name="connectionCacheProperties">
      <value>
        MinLimit:1
        MaxLimit:5
        InitialLimit:1
        ConnectionWaitTimeout:120
        InactivityTimeout:180
        ValidateConnection:true
      </value>
   </property>
</bean>
于 2012-11-22T07:51:06.833 回答