The vm transport works only inside one classloader, so you need to put these in a shared classloader for you scenario to work.
On 10/20/06, kristoffer <[EMAIL PROTECTED]> wrote:
I did some test for this but my initial idea did not work (maybe for obvious reasons). This is how i understand what is happening: Seems as if the service modules are not able to connect to the broker because of classloader visibility since they are in separate WARs (this is how vm:// works?). These service modules then instead try to create their own embeded brokers. The brokers will throw exceptions all over the place with conflicting journals. However, i managed to get this to work, by putting activemq (4.0.2) and most of its dependencies (spring,xbeans etc) in system classpath. All service modules seem to connect to _the_ broker and are able to communicate between eachother properly. Do i really have to restrict myself and put these jars in system classpath to get this to work? What am I doing wrong? (Is vm:// is infact a classloader:// transport?) One idea I have is to make the (unwanted) creation of brokers (in the service modules) to be non-persistent by providing some configuration in order to avoid the journal conflicts. Would this work? I dont want to have a monolithic design where i put all my modules in a single WAR. I also want to avoid putting things in system classpath when rolling out the product in production. cheers, -Kristoffer kristoffer wrote: > > Hi, > > Im designing a modular system inside a servlet container were i want > modules (deployed as WARs, thus separte classloaders) to communicate with > eachother through JMS. In order to do this effeciently I was thinking of > using Jencks to utilize JCA for this nice pooling, transaction and > workmanager support. I dont want embedded brokers in these service > modules, if it is possible? > > Can I deploy a broker as a separate WAR module (and classloader), which > exposes a vm:// transport to the service modules? Reading from the > documentation it seems as if this would work, as long as i send > ObjectMessage messages between the service modules. Is this correct? > > I was also thinking of using Lingo so that i can have message driven pojos > interfaces between the service modules. Does lingo always use > ObjectMessage to communicate with the broker, or is there some way i can > force this behaviour? > > One "problem" i realized (not really related to this) is that since the > broker WAR need to be deployed before the service modules i need some > mechanism of setting deployment dependencies between the broker and > service modules. Possibly between service modules aswell. I know weblogic > and Jboss have a loadorder feature, but have yet to find one in for > example jetty or tomcat? Anyone have a tip? > > As a future requirement i want to be able to scale up with multiple > servlet containers that should share load between eachother, both on HTTP > request level (with a loadbalancer), but also between brokers. > > Please correct me if i missunderstood how to use activemq in the best way. > > keep up the good work! > > cheers, > -Kristoffer > -- View this message in context: http://www.nabble.com/Jecks%2C-Lingo-and-vm%3A---tf2479865.html#a6917416 Sent from the ActiveMQ - User mailing list archive at Nabble.com.
-- Cheers, Guillaume Nodet
