2 Replies Latest reply on May 31, 2011 10:57 AM by George Mavchun

    Could not send the message to HornetQ 2.2.2 using core api

    Magic chen Newbie

      Hi, I'm trying to use the core api to send a message to hornetq standalone server, but failed. we get no exception at client side, while the hornetq server shows:

       

      [hornetq-failure-check-thread] 16:30:02,048 WARNING [org.hornetq.core.protocol.c
      ore.impl.RemotingConnectionImpl]  Connection failure has been detected: Did not
      receive data from /127.0.0.1:60392. It is likely the client has exited or crashe
      d without closing its connection, or the network between the server and client h
      as failed. You also might have configured connection-ttl and client-failure-chec
      k-period incorrectly. Please check user manual for more information. The connect
      ion will now be closed. [code=3]
      

       

      Could u plz give me any advice about it? thx a lot.

       

      The Java Codes:

       

      import java.util.HashMap;
      import java.util.Map;
      
      import org.hornetq.api.core.TransportConfiguration;
      import org.hornetq.api.core.client.ClientConsumer;
      import org.hornetq.api.core.client.ClientMessage;
      import org.hornetq.api.core.client.ClientProducer;
      import org.hornetq.api.core.client.ClientSession;
      import org.hornetq.api.core.client.ClientSessionFactory;
      import org.hornetq.api.core.client.HornetQClient;
      import org.hornetq.api.core.client.ServerLocator;
      import org.hornetq.core.remoting.impl.netty.NettyConnectorFactory;
      import org.hornetq.core.remoting.impl.netty.TransportConstants;
      
      public class Test {
          public static void main(String[] args) throws Exception {
              Map<String, Object> params = new HashMap<String, Object>();
      
              params.put(TransportConstants.HOST_PROP_NAME, "localhost");
              params.put(TransportConstants.PORT_PROP_NAME, "5445");
      
              TransportConfiguration configuration = new TransportConfiguration(
                      NettyConnectorFactory.class.getName(), params);
              ServerLocator serverLocator = null;
              ClientSessionFactory factory = null;
              ClientSession session = null;
      
              try {
      
                  serverLocator = HornetQClient
                          .createServerLocatorWithoutHA(configuration);
      
                  factory = serverLocator.createSessionFactory();
                  session = factory.createSession();
                  ClientProducer producer = session.createProducer("compris.channel");
                  System.out.println(producer.isClosed());
                  ClientMessage message = session.createMessage(true);
                  message.getBodyBuffer().writeString("Hello");
                  System.out.println("message = "
                          + message.getBodyBuffer().readString());
                  producer.send(message);
                  session.start();
                  ClientConsumer consumer = session.createConsumer("compris.channel");
                  ClientMessage msgReceived = consumer.receive(2000);
                  System.out.println("message = "
                          + msgReceived.getBodyBuffer().readString());
                  session.close();            
              } catch (Exception e) {
                  e.printStackTrace();
              }finally
              {
                     if (session != null)
                     {
                        session.close();
                     }
      
                     if (factory != null)
                     {
                         factory.close();
                     }
                     if(serverLocator != null)
                     {
                         serverLocator.close();
                     }
                  }
          }
      }
      

       

      The hornetq-beans.xml

       

      <?xml version="1.0" encoding="UTF-8"?>
      
      <deployment xmlns="urn:jboss:bean-deployer:2.0">
      
         <!-- MBean server -->
         <bean name="MBeanServer" class="javax.management.MBeanServer">
            <constructor factoryClass="java.lang.management.ManagementFactory"
                         factoryMethod="getPlatformMBeanServer"/>
         </bean> 
      
         <!-- The core configuration -->
         <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration">
         </bean>
      
          <!-- The core server -->
         <bean name="HornetQServer" class="org.hornetq.core.server.impl.HornetQServerImpl">
            <constructor>
               <parameter>
                  <inject bean="Configuration"/>
               </parameter>
               <parameter>
                  <inject bean="MBeanServer"/>
               </parameter>
            </constructor>
            <start ignored="false"/>
            <stop ignored="false"/>
         </bean>
      </deployment>
      

       

      The hornetq-configuration.xml

       

       

      <configuration xmlns="urn:hornetq"
                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                     xsi:schemaLocation="urn:hornetq /schema/hornetq-configuration.xsd">
      
         <security-enabled>false</security-enabled>
      
         <persistence-enabled>true</persistence-enabled>
      
         <journal-sync-non-transactional>true</journal-sync-non-transactional>
         <journal-sync-transactional>true</journal-sync-transactional>
         <journal-min-files>20</journal-min-files>
         <journal-buffer-timeout>20000</journal-buffer-timeout>
         <log-journal-write-rate>false</log-journal-write-rate>
         <run-sync-speed-test>false</run-sync-speed-test>
      
         <acceptors>
            <acceptor name="netty">
               <factory-class>org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory</factory-class>
               <param key="host"  value="${hornetq.remoting.netty.host:localhost}"/>
               <param key="port"  value="${hornetq.remoting.netty.port:5445}"/>
               <param key="tcp-no-delay" value="true"/>
               <param key="tcp-send-buffer-size" value="1048576"/>
               <param key="tcp-receive-buffer-size" value="1048576"/>
            </acceptor>
         </acceptors>
      
         <!-- <perf-blast-pages>5000</perf-blast-pages> -->
      
         <queues>
             <queue name="compris.channel">
                 <address>compris</address>
             </queue>
             <queue name="compris.response">
                 <address>compris</address>
             </queue>
         </queues>
          <address-settings>      
            <address-setting match="compris">
               <max-size-bytes>10485760</max-size-bytes>
               <address-full-policy>BLOCK</address-full-policy>
            </address-setting>
         </address-settings>
      
      </configuration>