javax.jms.JMSException: Timed out waiting for response when sending packet 30
hushen.savani Dec 29, 2011 7:21 AMHi,
I have my application running on JBossAS-5.1.0 with Hornetq-2.2.5. My application is running on Solaris SPARC Machine. The application works fine with lower number of messages. i.e. 50. But when it increases to 400+, following exception is coming:
2011-12-29 10:32:35,154 ERROR [STDERR] (Thread-15 (group:HornetQ-client-global-threads-1834164732)) javax.jms.JMSException: Timed out waiting for response when sending packet 30 2011-12-29 10:32:35,156 ERROR [STDERR] (Thread-15 (group:HornetQ-client-global-threads-1834164732)) at org.hornetq.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:276) 2011-12-29 10:32:35,156 ERROR [STDERR] (Thread-15 (group:HornetQ-client-global-threads-1834164732)) at org.hornetq.core.client.impl.ClientSessionFactoryImpl.createSessionInternal(ClientSessionFactoryImpl.java:695) 2011-12-29 10:32:35,156 ERROR [STDERR] (Thread-15 (group:HornetQ-client-global-threads-1834164732)) at org.hornetq.core.client.impl.ClientSessionFactoryImpl.createSession(ClientSessionFactoryImpl.java:264) 2011-12-29 10:32:35,156 ERROR [STDERR] (Thread-15 (group:HornetQ-client-global-threads-1834164732)) at org.hornetq.jms.client.HornetQConnection.authorize(HornetQConnection.java:589) 2011-12-29 10:32:35,156 ERROR [STDERR] (Thread-15 (group:HornetQ-client-global-threads-1834164732)) at org.hornetq.jms.client.HornetQConnectionFactory.createConnectionInternal(HornetQConnectionFactory.java:694) 2011-12-29 10:32:35,157 ERROR [STDERR] (Thread-15 (group:HornetQ-client-global-threads-1834164732)) at org.hornetq.jms.client.HornetQConnectionFactory.createConnection(HornetQConnectionFactory.java:121) 2011-12-29 10:32:35,157 ERROR [STDERR] (Thread-15 (group:HornetQ-client-global-threads-1834164732)) at org.hornetq.jms.client.HornetQConnectionFactory.createConnection(HornetQConnectionFactory.java:116) 2011-12-29 10:32:35,157 ERROR [STDERR] (Thread-15 (group:HornetQ-client-global-threads-1834164732)) at com.elitecore.messageservice.ejb.base.utils.hornetq.HornetQ.startConnection(HornetQ.java:84)
Following are my observations:
1) There is no network latency as consumer and producer are on the same machine.
2) This works fine on Linux machine for very higher number of messages. i.e. 250000+ Messages.
3) All the HornetQ Configurations are same on Solaris & Linux Machine.
Following are my configurations:
hornetq-configuration.xml:
<!--
~ Copyright 2009 Red Hat, Inc.
~ Red Hat licenses this file to you under the Apache License, version
~ 2.0 (the "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~ http://www.apache.org/licenses/LICENSE-2.0
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
~ implied. See the License for the specific language governing
~ permissions and limitations under the License.
-->
<configuration xmlns="urn:hornetq"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:hornetq /schema/hornetq-configuration.xsd">
<!-- Don't change this name.
This is used by the dependency framework on the deployers,
to make sure this deployment is done before any other deployment -->
<name>HornetQ.main.config</name>
<log-delegate-factory-class-name>org.hornetq.integration.logging.Log4jLogDelegateFactory</log-delegate-factory-class-name>
<bindings-directory>${jboss.server.data.dir}/hornetq/bindings</bindings-directory>
<journal-directory>${jboss.server.data.dir}/hornetq/journal</journal-directory>
<journal-min-files>10</journal-min-files>
<journal-type>ASYNCIO</journal-type>
<large-messages-directory>${jboss.server.data.dir}/hornetq/largemessages</large-messages-directory>
<paging-directory>${jboss.server.data.dir}/hornetq/paging</paging-directory>
<message-counter-enabled>true</message-counter-enabled>
<message-counter-max-day-history>7</message-counter-max-day-history>
<!-- sample the queues every minute (1ms) -->
<message-counter-sample-period>29000</message-counter-sample-period>
<connectors>
<connector name="netty">
<factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
<!-- <param key="host" value="${jboss.bind.address:localhost}"/> -->
<param key="host" value="192.168.1.76"/>
<param key="port" value="${hornetq.remoting.netty.port:5445}"/>
</connector>
<connector name="netty-throughput">
<factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
<!-- <param key="host" value="${jboss.bind.address:localhost}"/> -->
<param key="host" value="192.168.1.76"/>
<param key="port" value="${hornetq.remoting.netty.batch.port:5455}"/>
<param key="batch-delay" value="50"/>
</connector>
<connector name="in-vm">
<factory-class>org.hornetq.core.remoting.impl.invm.InVMConnectorFactory</factory-class>
<param key="server-id" value="${hornetq.server-id:0}"/>
</connector>
</connectors>
<acceptors>
<acceptor name="netty">
<factory-class>org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory</factory-class>
<!-- <param key="host" value="${jboss.bind.address:localhost}"/> -->
<param key="host" value="192.168.1.76"/>
<param key="port" value="${hornetq.remoting.netty.port:5445}"/>
</acceptor>
<acceptor name="netty-throughput">
<factory-class>org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory</factory-class>
<!-- <param key="host" value="${jboss.bind.address:localhost}"/> -->
<param key="host" value="192.168.1.76"/>
<param key="port" value="${hornetq.remoting.netty.batch.port:5455}"/>
<param key="batch-delay" value="50"/>
<param key="direct-deliver" value="false"/>
</acceptor>
<acceptor name="in-vm">
<factory-class>org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory</factory-class>
<param key="server-id" value="0"/>
</acceptor>
</acceptors>
<security-settings>
<security-setting match="#">
<permission type="createNonDurableQueue" roles="guest"/>
<permission type="deleteNonDurableQueue" roles="guest"/>
<permission type="consume" roles="guest"/>
<permission type="send" roles="guest"/>
</security-setting>
</security-settings>
<address-settings>
<!--default for catch all-->
<address-setting match="#">
<dead-letter-address>jms.queue.DLQ</dead-letter-address>
<expiry-address>jms.queue.ExpiryQueue</expiry-address>
<redelivery-delay>0</redelivery-delay>
<max-size-bytes>3221225472</max-size-bytes>
<message-counter-history-day-limit>10</message-counter-history-day-limit>
<page-size-bytes>104857600</page-size-bytes>
<address-full-policy>PAGE</address-full-policy>
</address-setting>
</address-settings>
</configuration>
hornetq-jms.xml:
<configuration xmlns="urn:hornetq" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:hornetq /schema/hornetq-jms.xsd"> <connection-factory name="NettyConnectionFactory"> <xa>true</xa> <client-failure-check-period>-1</client-failure-check-period> <connectors> <connector-ref connector-name="netty"/> </connectors> <entries> <entry name="/XAConnectionFactory"/> </entries> </connection-factory> <connection-factory name="NettyConnectionFactory"> <xa>false</xa> <client-failure-check-period>-1</client-failure-check-period> <connectors> <connector-ref connector-name="netty"/> </connectors> <entries> <entry name="/ConnectionFactory"/> </entries> </connection-factory> <connection-factory name="NettyThroughputConnectionFactory"> <xa>true</xa> <client-failure-check-period>-1</client-failure-check-period> <connectors> <connector-ref connector-name="netty-throughput"/> </connectors> <entries> <entry name="/XAThroughputConnectionFactory"/> </entries> </connection-factory> <connection-factory name="NettyThroughputConnectionFactory"> <xa>false</xa> <client-failure-check-period>-1</client-failure-check-period> <connectors> <connector-ref connector-name="netty-throughput"/> </connectors> <entries> <entry name="/ThroughputConnectionFactory"/> </entries> </connection-factory> <connection-factory name="InVMConnectionFactory"> <xa>true</xa> <client-failure-check-period>-1</client-failure-check-period> <connectors> <connector-ref connector-name="in-vm"/> </connectors> <entries> <entry name="java:/XAConnectionFactory"/> </entries> </connection-factory> <connection-factory name="InVMConnectionFactory"> <xa>false</xa> <client-failure-check-period>-1</client-failure-check-period> <connectors> <connector-ref connector-name="in-vm"/> </connectors> <entries> <entry name="java:/ConnectionFactory"/> </entries> </connection-factory> <queue name="DLQ"> <entry name="/queue/DLQ"/> </queue> <queue name="ExpiryQueue"> <entry name="/queue/ExpiryQueue"/> </queue> <queue name="testQueue"> <entry name="/queue/testQueue"/> </queue> </configuration>
Pl. have some pointers on the same. Thanks.