[ 
https://issues.apache.org/jira/browse/AMQ-2730?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12965097#action_12965097
 ] 

Bruce Snyder commented on AMQ-2730:
-----------------------------------

@Sergey, A transport listener can be set on the ActiveMQ connection factory to 
monitor the status of the failover transport from the client side, not from the 
broker side. Using this method, every connection that is created via this 
connection factory will have the transport listener enabled. Below is an 
example using a Spring XML config: 

{code:xml}
<bean class="org.apache.activemq.ActiveMQConnectionFactory">
  <property name="brokerURL" value="failover:(tcp://localhost:61616)" />
  <property name="transportListener">
    <bean class="com.mycompany.MyTransportListener" />
  </property>
</bean>
{code} 

A transport listener can also be set on the ActiveMQ connection directly, but 
this is usually done programmatically. Below is an example using Java code: 

{code:java}
...
Connection conn = connectionFactory.createConnection();
conn.addTransportListener(new MyTransportListener() {
  public void onCommand(Object o) {
    System.out.println("onCommand invoked"); 
  }

  public void onException(IOException error) {
    System.out.println("onException invoked"); 
  }
});
...
{code} 

A transport listener can also be added directly to a 
[Transport|http://activemq.apache.org/maven/5.3.1/activemq-core/apidocs/org/apache/activemq/transport/Transport.html],
 but this is only done when working directly with a 
[Transport|http://activemq.apache.org/maven/5.3.1/activemq-core/apidocs/org/apache/activemq/transport/Transport.html].
 Below is an example of doing this using Java code: 

{code:java}
...
transport.setTransportListener(new DefaultTransportListener() {
  public void onCommand(Object o) {
    System.out.println("onCommand invoked"); 
  }

  public void onException(IOException error) {
    System.out.println("onException invoked"); 
  }
});
...
{code} 

I hope these examples help answer your questions. 

> Transport failed: java.io.EOFException
> --------------------------------------
>
>                 Key: AMQ-2730
>                 URL: https://issues.apache.org/jira/browse/AMQ-2730
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 5.3.1
>         Environment: Red hat enterprise
>            Reporter: Dennis Klinkott
>             Fix For: 5.4.2
>
>         Attachments: TCP Dump.jpg
>
>
> We see many Exceptions of this type in the broker logs: 
> 2010-05-12 14:10:03,490 | DEBUG | Transport failed: java.io.EOFException | 
> org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ 
> Transport: tcp:///10.231.233.55:50809
> java.io.EOFException
>         at java.io.DataInputStream.readInt(DataInputStream.java:375)
>         at 
> org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:269)
>         at 
> org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:211)
>         at 
> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:203)
>         at 
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:186)
>         at java.lang.Thread.run(Thread.java:619)
> This exception occurs with a lot of clients that run on different machines.
> One case where we almost always see this exception is when shutting down a 
> bridge. We did a tcp dump on the broker and on the client machine: there a no 
> packets lost.
> LOG ON BRIDGE:
> 2010-05-12 14:10:02,634 INFO  org.apache.activemq.broker.BrokerService - 
> ActiveMQ Message Broker (solr-2073bridge, ID:solr-2073-50804-
> 1273665033782-0:0) is shutting down
> 2010-05-12 14:10:02,799 INFO  org.apache.activemq.network.jms.JmsConnector - 
> JMS Connector Connector:0 Stopped
> 2010-05-12 14:10:02,819 INFO  org.apache.activemq.broker.BrokerService - 
> ActiveMQ JMS Message Broker (solr-2073bridge, ID:solr-2073-50
> 804-1273665033782-0:0) stopped
> LOG ON BROKER:
> 2010-05-12 14:10:03,490 | DEBUG | Transport failed: java.io.EOFException | 
> org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ 
> Transport: tcp:///10.231.233.55:50809
> java.io.EOFException
>         at java.io.DataInputStream.readInt(DataInputStream.java:375)
>         at 
> org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:269)
>         at 
> org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:211)
>         at 
> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:203)
>         at 
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:186)
>         at java.lang.Thread.run(Thread.java:619)
> 2010-05-12 14:10:03,492 | DEBUG | Stopping connection: /10.231.233.55:50809 | 
> org.apache.activemq.broker.TransportConnection | ActiveMQ Task
> 2010-05-12 14:10:03,492 | DEBUG | Stopping transport 
> tcp:///10.231.233.55:50809 | org.apache.activemq.transport.tcp.TcpTransport | 
> ActiveMQ Task
> 2010-05-12 14:10:03,493 | DEBUG | Stopped transport: /10.231.233.55:50809 | 
> org.apache.activemq.broker.TransportConnection | ActiveMQ Task
> 2010-05-12 14:10:03,493 | DEBUG | Cleaning up connection resources: 
> /10.231.233.55:50809 | org.apache.activemq.broker.TransportConnection | 
> ActiveMQ Task
> 2010-05-12 14:10:03,493 | DEBUG | remove connection id: 
> ID:solr-2073-50804-1273665033782-2:0 | 
> org.apache.activemq.broker.TransportConnection | ActiveMQ Task
> 2010-05-12 14:10:03,493 | DEBUG | jms1 removing consumer: 
> ID:solr-2073-50804-1273665033782-2:0:225:1 for destination: 
> temp-queue://ID:solr-2073-50804-1273665033782-2:0:105 | 
> org.apache.activemq.broker.region.AbstractRegion | ActiveMQ Task
> 2010-05-12 14:10:03,493 | DEBUG | remove sub: QueueSubscription: 
> consumer=ID:solr-2073-50804-1273665033782-2:0:225:1, destinations=1, 
> dispatched=0, delivered=0, pending=0, lastDeliveredSeqId: 0, dequeues: 0, 
> dispatched: 0, inflight: 0 | org.apache.activemq.broker.region.Queue | 
> ActiveMQ Task

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to