Re: Is Mina custom codec overriding text line codec
Now raised as a JIRA issue: https://issues.apache.org/activemq/browse/CAMEL-1379 -- View this message in context: http://www.nabble.com/Is-Mina-custom-codec-overriding-text-line-codec-tp22176938p22192241.html Sent from the Camel - Users (activemq) mailing list archive at Nabble.com.
Re: FileConsumer ERROR,RejectedExecutionException (from file to jms)
Can anybody help me?:) -- View this message in context: http://www.nabble.com/FileConsumer-ERROR%2CRejectedExecutionException-%28from-file-to-jms%29-tp22119097p22181066.html Sent from the Camel - Users (activemq) mailing list archive at Nabble.com.
Re: Camel + ActiveMQ in Tomcat6
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi Gert, > What does the path to the GC root look like for the classloader object > that couldn't be unloaded in Eclipse MAT? > it may need a little to recreate the setup we had when I discovered the leak but I will do so. I will attach a jmap created memory dump then and describe the leak as good as I can. Markus > Regards, > > Gert > > > Markus Wolf wrote: > > we tried this but it throws this Exception during creation of the > ActiveMQConnectionFactory: > Tried what exactly? Running the camel-activemq-web war works fine for me. > I've tried to put only the activemq libraries into my tomcat common > classpath and all camel dependencies including camel-core into my > webapp. That caused the exeception I mentioned. > > > Caused by: java.lang.NoClassDefFoundError: > org/apache/activemq/management/JMSStatsImpl > Looks like missing dependencies. Are you using maven to resolve the dependencies? > That file resides in the activemq-core.jar. I've checked that. And that > file is inside the tomcat common classpath. Maybe I missconfigured > something here... :/ > > [snip] > I guess there is currently no way to use ActiveMQ in an embedded way > which does not have classloader leaks. > I don't see any evidence of a class loader leak? > Ok, let me explain it a bit more in detail. > The ActiveMQConnectionFactory and the TcpTransport (some other classes > also) create ThreadPools (to be excact ScheduledThreadPools from Java > Concurrent). That thread pools are configured with custom > ThreadFactories to set the created Threads to daemon behaviour. > When we undeploy our application then the ThreadPool classes keep a > reference to the ThreadFactories. This factories are loaded by tomcats > webapp classloader whereas the ThreadPool classes are loaded by the > bootstrap classloader of the JDK. > Therefore the webapp classloader could not be unloaded. > > I'm not a classloader expert but I check this with the eclipse memory > analyzer tool (http://www.eclipse.org/mat), because I wanted to see > which part of our application keeps the PermGen. > > Markus >> - -- NMMN - New Media Markets & Networks GmbH Geschäftsführung: Kfm. Michael Schütt Finanzamt HH-Altona UStID DE 812 699 852 HRB 71102 Hamburg HypoVereinsbank - BLZ 200 300 00 - Konto-Nr. 156 29 82 http://www.nmmn.com Tel.: +49 40 284 118 -0 Langbehnstrasse 6 Entwicklung: -720 22761 Hamburg Fax: -999 Rufen Sie uns kostenlos an: http://www.nmmn.com/call/software -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkmkBaoACgkQDBHISU1oEKG92wCguOJ5ENbBC2s3MkSKc+hQ3KNM W8EAoMDE25NUzdca9AbLjKAMqqsnvcY/ =9NAI -END PGP SIGNATURE-
Re: Camel + ActiveMQ in Tomcat6
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi Willem, > Which version of activemq are you using ? > We take out the activemq component from activemq-core in Activemq 5.2. > we are currently using ActiveMQ 5.1.0. Maybe we should consider an upgrade if the camel component is better separated in the 5.2 version. We will try that. :-) Markus - -- NMMN - New Media Markets & Networks GmbH Geschäftsführung: Kfm. Michael Schütt Finanzamt HH-Altona UStID DE 812 699 852 HRB 71102 Hamburg HypoVereinsbank - BLZ 200 300 00 - Konto-Nr. 156 29 82 http://www.nmmn.com Tel.: +49 40 284 118 -0 Langbehnstrasse 6 Entwicklung: -720 22761 Hamburg Fax: -999 Rufen Sie uns kostenlos an: http://www.nmmn.com/call/software -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkmkBMoACgkQDBHISU1oEKEsHACfcNzsWsaSMGtIY1wBE7AIW/OJ xcAAoMfOuUj8v7QgikrjgZg4PCOAIzyK =gO+8 -END PGP SIGNATURE-
Re: Camel + ActiveMQ in Tomcat6
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 this approach does not help me, since when the ActiveMQ is created by tomcats webapplication classloader it cannot be undeployed. >>> You don't have to create the broker in the WAR (or you could put it in >>> another WAR). This approach works totally fine if you are using the >>> ActiveMQ JMS client with Camel. >>> >> But it requires to put the activemq-core dependency to the webapp for >> creating the ConnectionFactory for ActiveMQ, doesn't it? Or am I missing >> something here. > > Yes. How else could you use ActiveMQ from a web app? > Ok, then at least I do not have missunderstood ActiveMQ. :-) >> Even starting the ConnectionFactory produce memory leaks in the webapp >> classloader. > > Not sure what you mean by "memory leak in the web app class loader". > Do you consider adding a class to a class loader a leak? :) > As I described earlier the thread pool usage of ActiveMQ (the ActiveMQConnectionFactory and TcpTransport use them) keep references which cause the webapp classloader not to get garbage collected at undeployment of the webapp. It is the following way when look at a memory dump: ActiveMQConnectionFactory creates java.util.concurrent.ScheduledThreadPoolExecutor with a custom ThreadFactory. When the webapp is undeployed the ActiveMQConnectionFactory could not be garbage collected because the ThreadPool keeps a reference to the ThreadFactory. This is caused by the following classloader dependencies: * The ThreadPool is loaded by the bootstrap classloder * The ThreadFactory is loaded by the webapp classloader The reference in the ThreadPool (to the ThreadFactory) is not reset to null (or a class loaded by the bootstrap classloader). So the ThreadPool held by the bootstrap classloader references the thread factory which references the webapp classloader. Thats the leak. Markus - -- NMMN - New Media Markets & Networks GmbH Geschäftsführung: Kfm. Michael Schütt Finanzamt HH-Altona UStID DE 812 699 852 HRB 71102 Hamburg HypoVereinsbank - BLZ 200 300 00 - Konto-Nr. 156 29 82 http://www.nmmn.com Tel.: +49 40 284 118 -0 Langbehnstrasse 6 Entwicklung: -720 22761 Hamburg Fax: -999 Rufen Sie uns kostenlos an: http://www.nmmn.com/call/software -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkmkA/AACgkQDBHISU1oEKGRfACgzCuKooGJ2NcHVgBiJeXqb2oO x+YAoIS9JDpOWA5wMhIpdk/sq9gFpukn =JamU -END PGP SIGNATURE-
Re: Camel + ActiveMQ in Tomcat6
Markus, What does the path to the GC root look like for the classloader object that couldn't be unloaded in Eclipse MAT? Regards, Gert Markus Wolf wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 we tried this but it throws this Exception during creation of the ActiveMQConnectionFactory: Tried what exactly? Running the camel-activemq-web war works fine for me. I've tried to put only the activemq libraries into my tomcat common classpath and all camel dependencies including camel-core into my webapp. That caused the exeception I mentioned. Caused by: java.lang.NoClassDefFoundError: org/apache/activemq/management/JMSStatsImpl Looks like missing dependencies. Are you using maven to resolve the dependencies? That file resides in the activemq-core.jar. I've checked that. And that file is inside the tomcat common classpath. Maybe I missconfigured something here... :/ [snip] I guess there is currently no way to use ActiveMQ in an embedded way which does not have classloader leaks. I don't see any evidence of a class loader leak? Ok, let me explain it a bit more in detail. The ActiveMQConnectionFactory and the TcpTransport (some other classes also) create ThreadPools (to be excact ScheduledThreadPools from Java Concurrent). That thread pools are configured with custom ThreadFactories to set the created Threads to daemon behaviour. When we undeploy our application then the ThreadPool classes keep a reference to the ThreadFactories. This factories are loaded by tomcats webapp classloader whereas the ThreadPool classes are loaded by the bootstrap classloader of the JDK. Therefore the webapp classloader could not be unloaded. I'm not a classloader expert but I check this with the eclipse memory analyzer tool (http://www.eclipse.org/mat), because I wanted to see which part of our application keeps the PermGen. Markus - -- NMMN - New Media Markets & Networks GmbH Geschäftsführung: Kfm. Michael Schütt Finanzamt HH-Altona UStID DE 812 699 852 HRB 71102 Hamburg HypoVereinsbank - BLZ 200 300 00 - Konto-Nr. 156 29 82 http://www.nmmn.com Tel.: +49 40 284 118 -0 Langbehnstrasse 6 Entwicklung: -720 22761 Hamburg Fax: -999 Rufen Sie uns kostenlos an: http://www.nmmn.com/call/software -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkmkAksACgkQDBHISU1oEKHELACfcKfNvdgRQ4WguvQmX1V9DZJE IjAAoJpO6qGDd43epV9UsnZ30z7V7AaK =a7vE -END PGP SIGNATURE-
Re: Camel + ActiveMQ in Tomcat6
Markus, Could you verify that it is not a thread leak that is causing the PermGen memory leak? If you have threads being left behind when undeploying the WAR file (e.g. a JMS connection not closed properly), these threads will probably hang on to the classloader. Regards, Gert James Strachan wrote: 2009/2/24 Markus Wolf : -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 this approach does not help me, since when the ActiveMQ is created by tomcats webapplication classloader it cannot be undeployed. You don't have to create the broker in the WAR (or you could put it in another WAR). This approach works totally fine if you are using the ActiveMQ JMS client with Camel. But it requires to put the activemq-core dependency to the webapp for creating the ConnectionFactory for ActiveMQ, doesn't it? Or am I missing something here. Yes. How else could you use ActiveMQ from a web app? Even starting the ConnectionFactory produce memory leaks in the webapp classloader. Not sure what you mean by "memory leak in the web app class loader". Do you consider adding a class to a class loader a leak? :)
Re: Camel + ActiveMQ in Tomcat6
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 >> we tried this but it throws this Exception during creation of the >> ActiveMQConnectionFactory: > > Tried what exactly? Running the camel-activemq-web war works fine for me. > I've tried to put only the activemq libraries into my tomcat common classpath and all camel dependencies including camel-core into my webapp. That caused the exeception I mentioned. >> Caused by: java.lang.NoClassDefFoundError: >> org/apache/activemq/management/JMSStatsImpl > > Looks like missing dependencies. Are you using maven to resolve the > dependencies? > That file resides in the activemq-core.jar. I've checked that. And that file is inside the tomcat common classpath. Maybe I missconfigured something here... :/ > > [snip] > >> I guess there is currently no way to use ActiveMQ in an embedded way >> which does not have classloader leaks. > > I don't see any evidence of a class loader leak? > Ok, let me explain it a bit more in detail. The ActiveMQConnectionFactory and the TcpTransport (some other classes also) create ThreadPools (to be excact ScheduledThreadPools from Java Concurrent). That thread pools are configured with custom ThreadFactories to set the created Threads to daemon behaviour. When we undeploy our application then the ThreadPool classes keep a reference to the ThreadFactories. This factories are loaded by tomcats webapp classloader whereas the ThreadPool classes are loaded by the bootstrap classloader of the JDK. Therefore the webapp classloader could not be unloaded. I'm not a classloader expert but I check this with the eclipse memory analyzer tool (http://www.eclipse.org/mat), because I wanted to see which part of our application keeps the PermGen. Markus - -- NMMN - New Media Markets & Networks GmbH Geschäftsführung: Kfm. Michael Schütt Finanzamt HH-Altona UStID DE 812 699 852 HRB 71102 Hamburg HypoVereinsbank - BLZ 200 300 00 - Konto-Nr. 156 29 82 http://www.nmmn.com Tel.: +49 40 284 118 -0 Langbehnstrasse 6 Entwicklung: -720 22761 Hamburg Fax: -999 Rufen Sie uns kostenlos an: http://www.nmmn.com/call/software -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkmkAksACgkQDBHISU1oEKHELACfcKfNvdgRQ4WguvQmX1V9DZJE IjAAoJpO6qGDd43epV9UsnZ30z7V7AaK =a7vE -END PGP SIGNATURE-
Re: Camel + ActiveMQ in Tomcat6
2009/2/24 Markus Wolf : > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA1 > >>> this approach does not help me, since when the ActiveMQ is created by >>> tomcats webapplication classloader it cannot be undeployed. >> >> You don't have to create the broker in the WAR (or you could put it in >> another WAR). This approach works totally fine if you are using the >> ActiveMQ JMS client with Camel. >> > But it requires to put the activemq-core dependency to the webapp for > creating the ConnectionFactory for ActiveMQ, doesn't it? Or am I missing > something here. Yes. How else could you use ActiveMQ from a web app? > Even starting the ConnectionFactory produce memory leaks in the webapp > classloader. Not sure what you mean by "memory leak in the web app class loader". Do you consider adding a class to a class loader a leak? :) -- James --- http://macstrac.blogspot.com/ Open Source Integration http://fusesource.com/
Re: Camel + ActiveMQ in Tomcat6
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 >> this approach does not help me, since when the ActiveMQ is created by >> tomcats webapplication classloader it cannot be undeployed. > > You don't have to create the broker in the WAR (or you could put it in > another WAR). This approach works totally fine if you are using the > ActiveMQ JMS client with Camel. > But it requires to put the activemq-core dependency to the webapp for creating the ConnectionFactory for ActiveMQ, doesn't it? Or am I missing something here. Even starting the ConnectionFactory produce memory leaks in the webapp classloader. Markus - -- NMMN - New Media Markets & Networks GmbH Geschäftsführung: Kfm. Michael Schütt Finanzamt HH-Altona UStID DE 812 699 852 HRB 71102 Hamburg HypoVereinsbank - BLZ 200 300 00 - Konto-Nr. 156 29 82 http://www.nmmn.com Tel.: +49 40 284 118 -0 Langbehnstrasse 6 Entwicklung: -720 22761 Hamburg Fax: -999 Rufen Sie uns kostenlos an: http://www.nmmn.com/call/software -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkmkAM4ACgkQDBHISU1oEKHziwCcC22oLbH6eesbfC6tKvefB8yh bo4AoILeSJp1v/k99vKAWl/g7Ut8O0Wz =fmv8 -END PGP SIGNATURE-
Re: Camel + ActiveMQ in Tomcat6
Which version of activemq are you using ? We take out the activemq component from activemq-core in Activemq 5.2. I suggest you to use that verion so you could have this kind of setup: CATALINA_HOME /lib/ext/activemq-core.jar /lib/ext/camel-core.jar /webapp/ROOT/WEB-INF/lib/activemq-camel.jar /webapp/ROOT/WEB-INF/lib/camel-jms.jar /webapp/ROOT/WEB-INF/lib/camel-spring.jar /webapp/ROOT/WEB-INF/lib/spring-and-dependencies.jar Willem On Tue, Feb 24, 2009 at 9:34 PM, Markus Wolf wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA1 > > Hi, > > I try to deploy a camel context using spring inside Tomcat6 with ActiveMQ. > > We have the following setup: > CATALINA_HOME >/lib/ext/activemq.jar >/lib/ext/camel-core.jar >/webapp/ROOT/WEB-INF/lib/camel-jms.jar >/webapp/ROOT/WEB-INF/lib/camel-spring.jar >/webapp/ROOT/WEB-INF/lib/spring-and-dependencies.jar > > When we start our tomcat we get a ClassNotFoundException for the > org.apache.camel.component.jms.JmsComponent. And now I'm unsure how to > deploy the whole thing 'the right way'. > When we put activemq with camel-core into our webapp we have classloader > leaks and cannot undeploy our application. > When we put camel-jms into the lib/ext folder of tomcat we are forced to > place the whole spring and dependencies there also. That seems wrong to > me also. > > Can anyone give me a hint about the deployment? > Thanks > Markus Wolf > - -- > NMMN - New Media Markets & Networks GmbH > Geschäftsführung: Kfm. Michael Schütt > Finanzamt HH-Altona UStID DE 812 699 852 HRB 71102 Hamburg > HypoVereinsbank - BLZ 200 300 00 - Konto-Nr. 156 29 82 > > http://www.nmmn.com Tel.: +49 40 284 118 -0 > Langbehnstrasse 6 Entwicklung: -720 > 22761 Hamburg Fax: -999 > > Rufen Sie uns kostenlos an: http://www.nmmn.com/call/software > -BEGIN PGP SIGNATURE- > Version: GnuPG v1.4.9 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org > > iEYEARECAAYFAkmj91gACgkQDBHISU1oEKFSYACfUsgx01wj1UcLbQr2trc8m/Gv > gVUAn22zloCis2pjVjSlLPz6fBLyqghs > =7swM > -END PGP SIGNATURE- >
Re: Camel + ActiveMQ in Tomcat6
2009/2/24 Markus Wolf : > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA1 > > Hi Claus, > > we tried this but it throws this Exception during creation of the > ActiveMQConnectionFactory: Tried what exactly? Running the camel-activemq-web war works fine for me. > > Caused by: java.lang.NoClassDefFoundError: > org/apache/activemq/management/JMSStatsImpl Looks like missing dependencies. Are you using maven to resolve the dependencies? [snip] > I guess there is currently no way to use ActiveMQ in an embedded way > which does not have classloader leaks. I don't see any evidence of a class loader leak? -- James --- http://macstrac.blogspot.com/ Open Source Integration http://fusesource.com/
Re: Camel + ActiveMQ in Tomcat6
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi Claus, we tried this but it throws this Exception during creation of the ActiveMQConnectionFactory: Caused by: java.lang.NoClassDefFoundError: org/apache/activemq/management/JMSStatsImpl at org.apache.activemq.ActiveMQConnectionFactory.(ActiveMQConnectionFactory.java:83) at org.apache.activemq.ActiveMQConnectionFactory.(ActiveMQConnectionFactory.java:123) at org.apache.activemq.ActiveMQConnectionFactory.(ActiveMQConnectionFactory.java:119) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at java.lang.Class.newInstance0(Class.java:355) at java.lang.Class.newInstance(Class.java:308) at org.apache.activemq.jndi.JNDIReferenceFactory.getObjectInstance(JNDIReferenceFactory.java:65) at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:140) at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304) at org.apache.naming.NamingContext.lookup(NamingContext.java:793) at org.apache.naming.NamingContext.lookup(NamingContext.java:140) at org.apache.naming.NamingContext.lookup(NamingContext.java:781) at org.apache.naming.NamingContext.lookup(NamingContext.java:140) at org.apache.naming.NamingContext.lookup(NamingContext.java:781) at org.apache.naming.NamingContext.lookup(NamingContext.java:140) at org.apache.naming.NamingContext.lookup(NamingContext.java:781) at org.apache.naming.NamingContext.lookup(NamingContext.java:153) at org.apache.naming.SelectorContext.lookup(SelectorContext.java:137) at javax.naming.InitialContext.lookup(InitialContext.java:392) at org.springframework.jndi.JndiTemplate$1.doInContext(JndiTemplate.java:155) at org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:88) at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:153) at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:178) at org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:95) at org.springframework.jndi.JndiObjectLocator.lookup(JndiObjectLocator.java:105) at org.springframework.jndi.JndiObjectFactoryBean.lookupWithFallback(JndiObjectFactoryBean.java:200) at org.springframework.jndi.JndiObjectFactoryBean.afterPropertiesSet(JndiObjectFactoryBean.java:186) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335) ... 44 common frames omitted I guess there is currently no way to use ActiveMQ in an embedded way which does not have classloader leaks. It's a pitty, since we only need the activemq dependency to create a connection factory to a remove broker. There is no configuration of activemq involved (i guess that would make it even harder)... But thanks for your help. If you have any other idea I would be glad to hear. Markus > Hi > > Have you tried NOT having camel-core.jar in /lib/ext, but putting all > the camel jars in the WEB-INF/lib > > > On Tue, Feb 24, 2009 at 2:34 PM, Markus Wolf wrote: > Hi, > > I try to deploy a camel context using spring inside Tomcat6 with ActiveMQ. > > We have the following setup: > CATALINA_HOME >/lib/ext/activemq.jar >/lib/ext/camel-core.jar >/webapp/ROOT/WEB-INF/lib/camel-jms.jar >/webapp/ROOT/WEB-INF/lib/camel-spring.jar >/webapp/ROOT/WEB-INF/lib/spring-and-dependencies.jar > > When we start our tomcat we get a ClassNotFoundException for the > org.apache.camel.component.jms.JmsComponent. And now I'm unsure how to > deploy the whole thing 'the right way'. > When we put activemq with camel-core into our webapp we have classloader > leaks and cannot undeploy our application. > When we put camel-jms into the lib/ext folder of tomcat we are forced to > place the whole spring and dependencies there also. That seems wrong to > me also. > > Can anyone give me a hint about the deployment? > Thanks > Markus Wolf >> - -- NMMN - New Media Markets & Networks GmbH Geschäftsführung: Kfm. Michael Schütt Finanzamt HH-Altona UStID DE 812 699 852 HRB 71102 Hamburg HypoVereinsbank - BLZ 200 300 00 - Konto-Nr. 156 29 82 http://www.nmmn.com Tel.: +49 40 284 118 -0 Langbehnstrasse 6 Entwicklung: -720 22761 Hamburg Fax: -999 Rufen Sie uns kostenlos an: http://www.nmmn.com/call/software
Re: Camel + ActiveMQ in Tomcat6
2009/2/24 Markus Wolf : > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA1 > > Hi James, > > this approach does not help me, since when the ActiveMQ is created by > tomcats webapplication classloader it cannot be undeployed. You don't have to create the broker in the WAR (or you could put it in another WAR). This approach works totally fine if you are using the ActiveMQ JMS client with Camel. -- James --- http://macstrac.blogspot.com/ Open Source Integration http://fusesource.com/
Re: Camel + ActiveMQ in Tomcat6
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi James, this approach does not help me, since when the ActiveMQ is created by tomcats webapplication classloader it cannot be undeployed. There are many ThreadPools in ActiveMQ which keep strong references to ThreadPoolFactories. The ThreadPools are loaded by the bootstrap classloader of the jvm and the ThreadPoolFactories are loaded by the webappclassloader. There is currently no cleanup of this leaks (we are using activemq 5.1.0). Markus > BTW there is a WAR I've been using for testing that creates a camel > context and uses ActiveMQ - then creating a web console to let you > interact with ActiveMQ endpoints (sending messages and browsing queues > etc)... > https://svn.apache.org/repos/asf/camel/trunk/components/camel-activemq-web/ > > for more information see > http://camel.apache.org/web-console.html > > though it does depend on trunk though! But once 2.0 is out you'll be > able to reuse this - and use it as a base to create your own WAR > complete with the Camel web console > > > 2009/2/24 Markus Wolf : > Hi, > > I try to deploy a camel context using spring inside Tomcat6 with ActiveMQ. > > We have the following setup: > CATALINA_HOME >/lib/ext/activemq.jar >/lib/ext/camel-core.jar >/webapp/ROOT/WEB-INF/lib/camel-jms.jar >/webapp/ROOT/WEB-INF/lib/camel-spring.jar >/webapp/ROOT/WEB-INF/lib/spring-and-dependencies.jar > > When we start our tomcat we get a ClassNotFoundException for the > org.apache.camel.component.jms.JmsComponent. And now I'm unsure how to > deploy the whole thing 'the right way'. > When we put activemq with camel-core into our webapp we have classloader > leaks and cannot undeploy our application. > When we put camel-jms into the lib/ext folder of tomcat we are forced to > place the whole spring and dependencies there also. That seems wrong to > me also. > > Can anyone give me a hint about the deployment? > Thanks > Markus Wolf >> - -- NMMN - New Media Markets & Networks GmbH Geschäftsführung: Kfm. Michael Schütt Finanzamt HH-Altona UStID DE 812 699 852 HRB 71102 Hamburg HypoVereinsbank - BLZ 200 300 00 - Konto-Nr. 156 29 82 http://www.nmmn.com Tel.: +49 40 284 118 -0 Langbehnstrasse 6 Entwicklung: -720 22761 Hamburg Fax: -999 Rufen Sie uns kostenlos an: http://www.nmmn.com/call/software -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkmj/iUACgkQDBHISU1oEKGtmgCgg7AYSkiIB0/EqUOdMy8LkbG6 er4AoKa4Q8RVcjzeyR6dSglKPbwvU/lk =/wzB -END PGP SIGNATURE-
Re: Camel + ActiveMQ in Tomcat6
BTW there is a WAR I've been using for testing that creates a camel context and uses ActiveMQ - then creating a web console to let you interact with ActiveMQ endpoints (sending messages and browsing queues etc)... https://svn.apache.org/repos/asf/camel/trunk/components/camel-activemq-web/ for more information see http://camel.apache.org/web-console.html though it does depend on trunk though! But once 2.0 is out you'll be able to reuse this - and use it as a base to create your own WAR complete with the Camel web console 2009/2/24 Markus Wolf : > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA1 > > Hi, > > I try to deploy a camel context using spring inside Tomcat6 with ActiveMQ. > > We have the following setup: > CATALINA_HOME > /lib/ext/activemq.jar > /lib/ext/camel-core.jar > /webapp/ROOT/WEB-INF/lib/camel-jms.jar > /webapp/ROOT/WEB-INF/lib/camel-spring.jar > /webapp/ROOT/WEB-INF/lib/spring-and-dependencies.jar > > When we start our tomcat we get a ClassNotFoundException for the > org.apache.camel.component.jms.JmsComponent. And now I'm unsure how to > deploy the whole thing 'the right way'. > When we put activemq with camel-core into our webapp we have classloader > leaks and cannot undeploy our application. > When we put camel-jms into the lib/ext folder of tomcat we are forced to > place the whole spring and dependencies there also. That seems wrong to > me also. > > Can anyone give me a hint about the deployment? > Thanks > Markus Wolf > - -- > NMMN - New Media Markets & Networks GmbH > Geschäftsführung: Kfm. Michael Schütt > Finanzamt HH-Altona UStID DE 812 699 852 HRB 71102 Hamburg > HypoVereinsbank - BLZ 200 300 00 - Konto-Nr. 156 29 82 > > http://www.nmmn.com Tel.: +49 40 284 118 -0 > Langbehnstrasse 6 Entwicklung: -720 > 22761 Hamburg Fax: -999 > > Rufen Sie uns kostenlos an: http://www.nmmn.com/call/software > -BEGIN PGP SIGNATURE- > Version: GnuPG v1.4.9 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org > > iEYEARECAAYFAkmj91gACgkQDBHISU1oEKFSYACfUsgx01wj1UcLbQr2trc8m/Gv > gVUAn22zloCis2pjVjSlLPz6fBLyqghs > =7swM > -END PGP SIGNATURE- > -- James --- http://macstrac.blogspot.com/ Open Source Integration http://fusesource.com/
Re: Camel + ActiveMQ in Tomcat6
Hi Have you tried NOT having camel-core.jar in /lib/ext, but putting all the camel jars in the WEB-INF/lib On Tue, Feb 24, 2009 at 2:34 PM, Markus Wolf wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA1 > > Hi, > > I try to deploy a camel context using spring inside Tomcat6 with ActiveMQ. > > We have the following setup: > CATALINA_HOME > /lib/ext/activemq.jar > /lib/ext/camel-core.jar > /webapp/ROOT/WEB-INF/lib/camel-jms.jar > /webapp/ROOT/WEB-INF/lib/camel-spring.jar > /webapp/ROOT/WEB-INF/lib/spring-and-dependencies.jar > > When we start our tomcat we get a ClassNotFoundException for the > org.apache.camel.component.jms.JmsComponent. And now I'm unsure how to > deploy the whole thing 'the right way'. > When we put activemq with camel-core into our webapp we have classloader > leaks and cannot undeploy our application. > When we put camel-jms into the lib/ext folder of tomcat we are forced to > place the whole spring and dependencies there also. That seems wrong to > me also. > > Can anyone give me a hint about the deployment? > Thanks > Markus Wolf > - -- > NMMN - New Media Markets & Networks GmbH > Geschäftsführung: Kfm. Michael Schütt > Finanzamt HH-Altona UStID DE 812 699 852 HRB 71102 Hamburg > HypoVereinsbank - BLZ 200 300 00 - Konto-Nr. 156 29 82 > > http://www.nmmn.com Tel.: +49 40 284 118 -0 > Langbehnstrasse 6 Entwicklung: -720 > 22761 Hamburg Fax: -999 > > Rufen Sie uns kostenlos an: http://www.nmmn.com/call/software > -BEGIN PGP SIGNATURE- > Version: GnuPG v1.4.9 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org > > iEYEARECAAYFAkmj91gACgkQDBHISU1oEKFSYACfUsgx01wj1UcLbQr2trc8m/Gv > gVUAn22zloCis2pjVjSlLPz6fBLyqghs > =7swM > -END PGP SIGNATURE- > -- Claus Ibsen Apache Camel Committer Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/
Camel + ActiveMQ in Tomcat6
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi, I try to deploy a camel context using spring inside Tomcat6 with ActiveMQ. We have the following setup: CATALINA_HOME /lib/ext/activemq.jar /lib/ext/camel-core.jar /webapp/ROOT/WEB-INF/lib/camel-jms.jar /webapp/ROOT/WEB-INF/lib/camel-spring.jar /webapp/ROOT/WEB-INF/lib/spring-and-dependencies.jar When we start our tomcat we get a ClassNotFoundException for the org.apache.camel.component.jms.JmsComponent. And now I'm unsure how to deploy the whole thing 'the right way'. When we put activemq with camel-core into our webapp we have classloader leaks and cannot undeploy our application. When we put camel-jms into the lib/ext folder of tomcat we are forced to place the whole spring and dependencies there also. That seems wrong to me also. Can anyone give me a hint about the deployment? Thanks Markus Wolf - -- NMMN - New Media Markets & Networks GmbH Geschäftsführung: Kfm. Michael Schütt Finanzamt HH-Altona UStID DE 812 699 852 HRB 71102 Hamburg HypoVereinsbank - BLZ 200 300 00 - Konto-Nr. 156 29 82 http://www.nmmn.com Tel.: +49 40 284 118 -0 Langbehnstrasse 6 Entwicklung: -720 22761 Hamburg Fax: -999 Rufen Sie uns kostenlos an: http://www.nmmn.com/call/software -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkmj91gACgkQDBHISU1oEKFSYACfUsgx01wj1UcLbQr2trc8m/Gv gVUAn22zloCis2pjVjSlLPz6fBLyqghs =7swM -END PGP SIGNATURE-
Re: Newbie Question #2: Transactional Client
How about creating a processor that calls upon the filter and captures the resultant exchange? Then if that goes well use a producer template to send out both the resultant exchange and the original exchange concurrently. No transaction required and you'll achieve higher throughput. -- View this message in context: http://www.nabble.com/Newbie-Question--2%3A-Transactional-Client-tp22122816p22179744.html Sent from the Camel - Users (activemq) mailing list archive at Nabble.com.
Re: Is Mina custom codec overriding text line codec
One more contribution, and then I'll let someone else have a turn... As a work-around, if I specify the codec parameter with no value then all is well e.g.: mina:tcp://0.0.0.0:8201?codec&textline=true&textlineDelimiter=WINDOWS&sync=false&minaLogger=true -- View this message in context: http://www.nabble.com/Is-Mina-custom-codec-overriding-text-line-codec-tp22176938p22178979.html Sent from the Camel - Users (activemq) mailing list archive at Nabble.com.
Re: Is Mina custom codec overriding text line codec
Which version are you using? This is the code from the 1.x branch as I see it: protected Endpoint createEndpoint(String uri, String remaining, Map parameters) throws Exception { if (LOG.isDebugEnabled()) { LOG.debug("Creating MinaEndpoint from uri: " + uri); } setProperties(this, parameters); URI u = new URI(remaining); String protocol = u.getScheme(); // if mistyped uri then protocol can be null if (protocol != null) { if (protocol.equals("tcp")) { return createSocketEndpoint(uri, u, parameters); } else if (protocol.equals("udp") || protocol.equals("mcast") || protocol.equals("multicast")) { return createDatagramEndpoint(uri, u, parameters); } else if (protocol.equals("vm")) { return createVmEndpoint(uri, u); } } // protocol not resolved so error throw new IllegalArgumentException("Unrecognised MINA protocol: " + protocol + " for uri: " + uri); } On Tue, Feb 24, 2009 at 10:39 AM, huntc wrote: > > Having delved into MinaComponent.java, I see that a configuration is copied > on the creation of an endpoint i.e. > > MinaConfiguration config = configuration.copy(); > > on line 81. This configuration is created on instantiating the mina > component (that should be just once right?). > > I'm guessing that for every Mina endpoint expressed as: > > from("mina:...")... > > there's a corresponding Endpoint instance created from that one component. > > Of course with Mina, one instance of an acceptor can host many socket > connections. Perhaps with other transports this is not the case and that > copying the configuration makes sense. However with Mina I am not sure that > copying the configuration buys you much... perhaps we should instantiate the > configuration each time instead of copying. That way, we're not going to > carry forward previous configurations that are not applicable. > > Maybe I have this wrong and apologies if so. 'hope that my investigations > help. > > Kind regards, > Christopher > -- > View this message in context: > http://www.nabble.com/Is-Mina-custom-codec-overriding-text-line-codec-tp22176938p22178853.html > Sent from the Camel - Users (activemq) mailing list archive at Nabble.com. > > -- Claus Ibsen Apache Camel Committer Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/
Re: Interceptor
Hi You should not use the interceptor tag, only the intercept. For example: http://camel.apache.org/schema/spring";> On Tue, Feb 24, 2009 at 10:33 AM, mta38 wrote: > > Hi all, > Is somebody already using its own "interceptor" in a xml spring > configuration file? > In fact, I want to know if in the following definition of "intercept", the > "stop" really stops route execution. Cause for me; all other routes are > executed. > > > > > > > > Best regards, > Mta38 > -- > View this message in context: > http://www.nabble.com/Interceptor-tp22178768p22178768.html > Sent from the Camel - Users (activemq) mailing list archive at Nabble.com. > > -- Claus Ibsen Apache Camel Committer Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/
Re: Is Mina custom codec overriding text line codec
Having delved into MinaComponent.java, I see that a configuration is copied on the creation of an endpoint i.e. MinaConfiguration config = configuration.copy(); on line 81. This configuration is created on instantiating the mina component (that should be just once right?). I'm guessing that for every Mina endpoint expressed as: from("mina:...")... there's a corresponding Endpoint instance created from that one component. Of course with Mina, one instance of an acceptor can host many socket connections. Perhaps with other transports this is not the case and that copying the configuration makes sense. However with Mina I am not sure that copying the configuration buys you much... perhaps we should instantiate the configuration each time instead of copying. That way, we're not going to carry forward previous configurations that are not applicable. Maybe I have this wrong and apologies if so. 'hope that my investigations help. Kind regards, Christopher -- View this message in context: http://www.nabble.com/Is-Mina-custom-codec-overriding-text-line-codec-tp22176938p22178853.html Sent from the Camel - Users (activemq) mailing list archive at Nabble.com.
Interceptor
Hi all, Is somebody already using its own "interceptor" in a xml spring configuration file? In fact, I want to know if in the following definition of "intercept", the "stop" really stops route execution. Cause for me; all other routes are executed. Best regards, Mta38 -- View this message in context: http://www.nabble.com/Interceptor-tp22178768p22178768.html Sent from the Camel - Users (activemq) mailing list archive at Nabble.com.