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.