In the latest servicemix distribution, the jencks jca container is already
configured.
You may find easier to override the parameters (or copy/paste) in the
tx.xmlfile.
See the poolingSupport bean in
http://svn.apache.org/viewvc/incubator/servicemix/trunk/apache-servicemix/src/main/release/conf/tx.xml?revision=415380&view=markup

Cheers
Guillaume Nodet

On 6/26/06, William Blackburn <[EMAIL PROTECTED]> wrote:

This morning I did a rudimentary load test of our application, just
fired 50 messages in rapid sequence via JMS to the first component in
a 'chain' of components using JCA flow. Approx 20 messages into the
test, I got the following error, for each of the remaining messages.


09:35:32,034 ERROR [JCAFlow:doRouting] Failed to send exchange:
MessageExchange[internal JMS Network
javax.jms.JMSException: No ManagedConnections available within
configured blocking timeout ( 100 [ms] )
         at
org.apache.activemq.ra.ActiveMQConnectionFactory.createConnection
(ActiveMQConnectionFactory.java:96)
         at
org.apache.activemq.ra.ActiveMQConnectionFactory.createConnection
(ActiveMQConnectionFactory.java:65)
         at
org.apache.servicemix.jbi.nmr.flow.jca.JCAFlow.sendJmsMessage
(JCAFlow.java:700)
         ...


I've been studying the Servicemix and ActiveMQ docs, looking for
settings (under the JCAFlow or the ActiveMQ ConnectionFactory) that
would help me increase the number of connections and/or the 100ms
timeout value, but I don't know exactly what I'm looking for, so I'm
stumped.

the applicable bits from my servicemix.xml file are:

<sm:container id="jbi" rootDir="#rootDir" useMBeanServer="true"
         createMBeanServer="false" installationDirPath="#installDir"
         deploymentDirPath="#deployDir" flowName="jca?jmsURL=tcp://
localhost:61616"
         autoEnlistInTransaction="true" persistent="true"
         monitorInstallationDirectory="true" dumpStats="true"
         statsInterval="10" transactionManager="#transactionManager"
         depends-on="broker">

...other stuff...

<!-- the JCA container -->
     <bean id="jencks" class="org.jencks.JCAContainer"
         singleton="true">

         <!-- lets use the default configuration of work manager and
transaction manager-->
         <property name="bootstrapContext">
             <bean
                 class="org.jencks.factory.BootstrapContextFactoryBean">
                 <property name="threadPoolSize" value="25" />
             </bean>
         </property>

         <!-- the JCA Resource Adapter -->
         <property name="resourceAdapter">
             <bean id="activeMQResourceAdapter"
                 class="org.apache.activemq.ra.ActiveMQResourceAdapter"
                 singleton="true">
                 <property name="serverUrl"
                     value="tcp://localhost:61616" />
             </bean>
         </property>
     </bean>

     <bean id="broker"
class="org.apache.activemq.xbean.BrokerFactoryBean">
         <property name="config" value="classpath:activemq.xml"/>
     </bean>

     <bean id="transactionContextManager"
class="org.jencks.factory.TransactionContextManagerFactoryBean"/>
     <bean id="transactionManager"
class="org.jencks.factory.GeronimoTransactionManagerFactoryBean" />

     <bean id="jmsFactory" depends-on="broker"
         class="org.apache.activemq.pool.PooledConnectionFactory">
         <property name="connectionFactory">
             <bean
                 class="org.apache.activemq.ActiveMQConnectionFactory">
                 <constructor-arg value="tcp://localhost:61616" />
             </bean>
         </property>
     </bean>

My activemq.xml file looks like:

<beans xmlns="http://activemq.org/config/1.0";>
     <broker id="broker" useJmx="false">

         <persistenceAdapter>
             <journaledJDBC journalLogFiles="5"
dataDirectory="#dataDir" dataSource="#postgres-ds"/>
         </persistenceAdapter>

         <transportConnectors>
             <transportConnector uri="tcp://localhost:61616"/>
         </transportConnectors>


     </broker>

     <!--  This xbean configuration file supports all the standard
spring xml configuration options -->

     <!-- Postgres DataSource Sample Setup -->
     <bean id="postgres-ds"
class="org.postgresql.ds.PGPoolingDataSource">
         <property name="serverName" value="localhost"/>
         <property name="databaseName" value="activemq"/>
         <property name="portNumber" value="0"/>
         <property name="dataSourceName" value="postgres"/>
         <property name="initialConnections" value="1"/>
         <property name="maxConnections" value="10"/>
         <property name="user" value="activemq"/>
         <property name="password" value="activemq"/>
         <!--
         <property name="user" value="cmroot"/>
         <property name="password" value="22cmroot"/>
         -->
     </bean>



     <!-- Directories relative to web app -->
     <bean id="servletContext"
class="org.springframework.web.context.support.ServletContextFactoryBean
" />
     <bean id="dataDir" class="org.springframework.web.util.WebUtils"
factory-method="getRealPath">
         <constructor-arg ref="servletContext" />
         <constructor-arg value="/data" />
     </bean>

</beans>




Reply via email to