[Design of Messaging on JBoss (Messaging/JBoss)] - MessagingServer deployment
by jmesnil
I'm looking at the deployment issues when starting MessagingServer.
The root problem we have is that the queues created from the bindings loaded by the journal do not use the correct address settings because these settings are set later when the deploymentManager is started (and the address settings deployer is deployed).
My first solution was to start the deployment manager *before* creating the queues from the bindings.
Tim objected that it may have side-effects as "things" could be deployed before the server is still starting and not ready to use.
After a closer look, I don't think it is currently the case. The queues are not deployed when the QueueDeployer is deployed (I really need to change the name). They are deployed afterwards at the proper place.
Other resources deployed (address settings, security) are not a problem: they can be deployed while the server is starting.
However, Tim's point is valid: we shouldn't deploy unilaterally while the server is starting.
I'm drawing the dependencies order between the various component created/deployed by MessagingServer but it might take some time to have it right (we have some cycles betwen the components).
Since we're short on time for beta, we can fix our current issue by starting the deployment manager sooner.
But the correct fix is to untangle our dependencies and create/start/deploy things at the proper place in the proper order. This will take more time.
wdyt?
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4226223#4226223
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4226223
16 years, 11 months
[Design of JBoss ESB] - Re: ESB4.x/AS 5 classloading
by beve
anonymous wrote : You can still use your mechanism,
| but then the demand must have whenRequired before or equal PreInstall.
I've modified the EsbDeployer and we now set the demands like this:
| bmdBuilder.addDemand(objectName.toString(), ControllerState.PRE_INSTALL, ControllerState.INSTALLED, null);
|
What I think I'm saying here is that this deployment demands objectName.toString(), and it requires that when this deploment is at the PRE_INSTALL stage, that objectName().toString() is INSTALLED. Have I understood that correctly?
I'm getting the same error with the above code but it might not be correct.
If I look at the classloader used in ClassUtil.forName, the thread context classloader is first used to try to locate the resource:
final ClassLoader threadClassLoader = Thread.currentThread().getContextClassLoader() ;
|
The classloader returned is :
BaseClassLoader@215548{vfszip:/opt/jboss/as/jboss-5.0.1.GA/server/default/deploy/transformation-pojo-quickstart.esb/}
Since this is the deployment units classloader and the deployment has a demands on smooks.esb should it not be able to access and load the SmooksAction in smooks.esb/jbossesb-smooks.jar, which is in smook.esb. I'm not using any explicit classloading configuration here going with the "big ball of mud" option :)
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4226212#4226212
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4226212
16 years, 11 months