On Fri, Jul 8, 2011 at 8:56 AM, Daniel Spaven <danspa...@gmail.com> wrote: > Hey Claus, Ashwin, > > I haven't got any access to my development environment right now. But i can > tell you by memory that the topic is not durable and the durable topic name > and client id is not set. > > Also Ashwin regarding the test; based on what i observed when looking at the > runtime route attributes on JMX (as stated in my first post). The test you > ran would not catch the problem. After removing a route my other routes > would still be running and have the status of "started", however they > wouldn't actually be working. They would not consume and route JMS messages > as they should do and were doing before i removed a route. >
Can you post the actual endpoint uris of the routes. I suspect you may have duplicate uris, and <route id="a"> <from uri="jms:topic:foo"/> ... </route> <route id="b"> <from uri="jms:topic:foo"/> ... </route> And then if you stop route A, then somehow the topic consumer in route B gets stopped as well. > On Thu, Jul 7, 2011 at 4:42 PM, Ashwin Karpe <aka...@fusesource.com> wrote: > >> Hi Daniel, >> >> I am finding it hard to see an issue when I run the following test. While I >> am not using JMS, I do have the same consumer setup under a different >> routeId. I find that following a run of this test that routeId "bar" is >> still up and running. >> >> The line assertNull(context.getRouteStatus("bar")); fails as expected... >> >> I have not tried JMS and whether there are any side-effects tied to this. >> Can't see anything wrong when I run SEDA with multiple consumers. >> >> Cheers, >> >> Ashwin... >> >> >> ---------------------------------------------------------------------------------------------------------- >> >> /** >> * Licensed to the Apache Software Foundation (ASF) under one or more >> * contributor license agreements. See the NOTICE file distributed with >> * this work for additional information regarding copyright ownership. >> * The ASF 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. >> */ >> package org.apache.camel.impl; >> >> import org.apache.camel.ContextTestSupport; >> import org.apache.camel.ServiceStatus; >> import org.apache.camel.builder.RouteBuilder; >> import org.apache.camel.component.mock.MockEndpoint; >> >> /** >> * @version >> */ >> public class RouteRemoveTest extends ContextTestSupport { >> >> public void testRemove() throws Exception { >> MockEndpoint mock = getMockEndpoint("mock:result"); >> mock.expectedBodiesReceived("A"); >> >> template.sendBody("seda:foo", "A"); >> >> assertMockEndpointsSatisfied(); >> >> assertEquals("Started", context.getRouteStatus("foo").name()); >> assertEquals("Started", context.getRouteStatus("bar").name()); >> assertEquals(2, context.getRoutes().size()); >> >> // must be stopped so we cant remove >> boolean removed = context.removeRoute("foo"); >> assertFalse(removed); >> >> assertEquals(2, context.getRoutes().size()); >> assertEquals("Started", context.getRouteStatus("foo").name()); >> assertEquals("Started", context.getRouteStatus("bar").name()); >> >> // remove route then >> context.stopRoute("foo"); >> removed = context.removeRoute("foo"); >> assertTrue(removed); >> >> assertNull(context.getRouteStatus("bar")); >> assertEquals(0, context.getRoutes().size()); >> assertNull(context.getRouteStatus("foo")); >> } >> >> @Override >> protected RouteBuilder createRouteBuilder() throws Exception { >> return new RouteBuilder() { >> @Override >> public void configure() throws Exception { >> >> >> from("seda:foo?multipleConsumers=true").routeId("foo").to("log:foo").to("mock:result"); >> >> >> from("seda:foo?multipleConsumers=true").routeId("bar").to("log:foo").to("mock:result"); >> } >> }; >> } >> } >> >> ----- >> --------------------------------------------------------- >> Ashwin Karpe >> Apache Camel Committer & Sr Principal Consultant >> FUSESource (a Progress Software Corporation subsidiary) >> http://fusesource.com >> >> Blog: http://opensourceknowledge.blogspot.com >> --------------------------------------------------------- >> -- >> View this message in context: >> http://camel.465427.n5.nabble.com/Removing-routes-programmatically-tp4556741p4561468.html >> Sent from the Camel - Users mailing list archive at Nabble.com. >> > -- Claus Ibsen ----------------- FuseSource Email: cib...@fusesource.com Web: http://fusesource.com Twitter: davsclaus, fusenews Blog: http://davsclaus.blogspot.com/ Author of Camel in Action: http://www.manning.com/ibsen/