This is really old but apparently never got a response.

The error means all connections in your jms connection pool are checked out to other threads. I don't see where the number of processing threads is set, but you may want to assure there are as many jms connections as threads if there aren't too many. If you already have more connections than processing threads you may not be closing the connections correctly.

Also, 60 milliseconds seems kind of short to me for waiting for another thread to return a connection. Also if all connections are identical you should only use the selectOneAssumeMatch flag in the pool.

thanks
david jencks

On Aug 13, 2006, at 11:36 AM, Eugene Prokopiev wrote:

Hi,

I got this strange error:

org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is javax.jms.JMSException: No ManagedConnections available within configured blocking timeout ( 60 [ms] )
Caused by:
javax.jms.JMSException: No ManagedConnections available within configured blocking timeout ( 60 [ms] ) at org.apache.activemq.ra.ActiveMQConnectionFactory.createConnection (ActiveMQConnectionFactory.java:99) at org.apache.activemq.ra.ActiveMQConnectionFactory.createConnection (ActiveMQConnectionFactory.java:65) at org.springframework.jms.core.JmsTemplate.createConnection (JmsTemplate.java:792) at org.springframework.jms.core.JmsTemplate.execute (JmsTemplate.java:420) at org.springframework.jms.core.JmsTemplate.send (JmsTemplate.java:486) at org.springframework.jms.core.JmsTemplate.convertAndSend (JmsTemplate.java:565) at manager.broker.MessageRouter.onMessage (MessageRouter.java:51)
        at org.jencks.XAEndpoint.onMessage(XAEndpoint.java:126)
at org.apache.activemq.ra.MessageEndpointProxy $MessageEndpointAlive.onMessage(MessageEndpointProxy.java:120) at org.apache.activemq.ra.MessageEndpointProxy.onMessage (MessageEndpointProxy.java:60) at org.apache.activemq.ActiveMQSession.run (ActiveMQSession.java:690) at org.apache.activemq.ra.ServerSessionImpl.run (ServerSessionImpl.java:164) at org.apache.geronimo.connector.work.WorkerContext.run (WorkerContext.java:291) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor $Worker.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:595)


Configuration was:

<beans>   
...
        <!-- Jencks Connection Manager configuration -->
<bean id="connectionManager" class="org.jencks.factory.ConnectionManagerFactoryBean">
                <property name="transactionSupport">
<bean class="org.jencks.factory.XATransactionFactoryBean"> <property name="useTransactionCaching" value="true"/> <property name="useThreadCaching" value="true"/>
                        </bean>
                </property>
                <property name="poolingSupport">
<bean class="org.jencks.factory.SinglePoolFactoryBean">
                                <property name="maxSize" value="25"/>
                                <property name="minSize" value="1"/>
<property name="blockingTimeoutMilliseconds" value="60"/> <property name="idleTimeoutMinutes" value="60"/> <property name="matchOne" value="true"/> <property name="matchAll" value="true"/> <property name="selectOneAssumeMatch" value="true"/>
                        </bean>
                </property>
        </bean>

        <!-- JCA ActiveMQ Connection configuration -->
<bean id="jmsResourceAdapter" class="org.apache.activemq.ra.ActiveMQResourceAdapter" depends- on="broker"> <property name="serverUrl" value="tcp://localhost: 5000"/>
                <property name="userName" value="dispatcher1"/>
                <property name="password" value="dpwd1"/>
        </bean>
<bean id="jmsManagedConnectionFactory" class="org.apache.activemq.ra.ActiveMQManagedConnectionFactory"> <property name="resourceAdapter" ref="jmsResourceAdapter"/>
        </bean>
<bean id="jmsConnectionFactory" class="org.springframework.jca.support.LocalConnectionFactoryBean"> <property name="managedConnectionFactory" ref="jmsManagedConnectionFactory"/> <property name="connectionManager" ref="connectionManager"/>
        </bean>
        <!-- Jencks JCA Container configuration -->
        <bean id="jencksJCAContainer" class="org.jencks.JCAContainer">
                <property name="bootstrapContext">
<bean class="org.jencks.factory.BootstrapContextFactoryBean"> <property name="threadPoolSize" value="5"/>
                        </bean>
                </property>
<property name="resourceAdapter" ref="jmsResourceAdapter"/>
        </bean>
        <bean id="inboundConnector" class="org.jencks.JCAConnector">
<property name="jcaContainer" ref="jencksJCAContainer" />
                <property name="activationSpec">
<bean class="org.apache.activemq.ra.ActiveMQActivationSpec"> <property name="destination" value="messages.input"/> <property name="destinationType" value="javax.jms.Queue"/>
                        </bean>
                </property>
                <property name="transactionManager" ref="geronimo"/>
                <property name="ref" value="messageRouter"/>
        </bean>

        <!-- Manager message router configuration -->
        <bean id="messageRouter" class="manager.broker.MessageRouter">
                <property name="jmsTemplate">
<bean class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory" ref="jmsConnectionFactory"/>
                        </bean>
                </property>
        </bean>

</beans>

What can by wrong?

--
Thanks,
Eugene Prokopiev


Reply via email to