Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-5191

JMX statistics problem with onException()

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Not A Problem
    • 2.9.2
    • 2.10.0
    • camel-core
    • None
    • Camel 2.9.2 + Eclipse 3.6

    • Unknown

    Description

      There is no JMX MBean for onException component, which makes statistics unavailable.

      For example:

      import javax.jms.ConnectionFactory;
      
      import org.apache.camel.CamelContext;
      import org.apache.camel.Exchange;
      import org.apache.camel.Processor;
      import org.apache.camel.builder.RouteBuilder;
      import org.apache.camel.impl.DefaultCamelContext;
      
      /**
       * A Camel Router
       */
      public class OnExceptionRouteBuilder extends RouteBuilder {
      
      	/**
      	 * A main() so we can easily run these routing rules in our IDE
      	 */
      	public static void main(String... args) throws Exception {
      
      		CamelContext camelContext = new DefaultCamelContext();
      
      		ConnectionFactory jmsConnectionFactory = new org.apache.activemq.ActiveMQConnectionFactory(
      				"tcp://localhost:61616");
      		camelContext.addComponent("jms",
      				org.apache.camel.component.jms.JmsComponent
      						.jmsComponent(jmsConnectionFactory));
      
      		camelContext.addRoutes(new OnExceptionRouteBuilder());
      
      		camelContext.start();
      
      		Thread.sleep(100000000);
      	}
      
      	/**
      	 * Lets configure the Camel routing rules using Java code...
      	 */
      	public void configure() {
      
      		onException(javax.jms.JMSException.class).process(new Processor() {
      
      			@Override
      			public void process(Exchange exchange) throws Exception {
      				System.out.println("error");
      
      			}
      		}).to("log:exception");
      
      		from("timer://myTimer?period=2000&repeatCount=1").setBody()
      				.simple("hello JMS!").process(new Processor() {
      
      					@Override
      					public void process(Exchange exchange) throws Exception {
      						System.out.println("We will write to ActiveMQ queue: "
      								+ exchange.getIn().getBody(String.class));
      
      					}
      				}).to("jms:queue:hello");
      
      	}
      
      }
      
      

      And there are only two processors(We have four in the test case) in org.apache.camel/processors, none for onException branch. See the picture attached.

      Attachments

        Activity

          People

            davsclaus Claus Ibsen
            salever XiaopengLi
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: