Just to add a bit to this, I've created a script for starting multiple JBoss instances on a single server. I am still working on it, as I am a beginning shell scriptor, and for the most part this is a heavily modified version of the redhat script that comes with the 4.0.2 distribution. - redhat because I am currently working on a redhat ES3 server.
I would gladly take suggestions for this script and upload any changes for all to share. It's being housed in a Subversion repository at the following link:
The user is "jbossusr" and the password is the same.
I think the hell I've had to go through so far to get the right settings for relocating and starting multiple JBoss configurations, each in it's own separate JVM but sharing the same base libraries is a testiment to how virtual-hosting-hostile JBoss currently is. That said, I wouldn't have spent so much of my free time trying to get this right and learning shell scripting if I didn't like JBoss so much. Any help with this - and most importantly right now help with figuring out how to target specific running instances for shutdown, would be greatly appreciated.
You will have to specify the virtual host hostile issues in more detail. The shutdown command shown is correct, so if its throwing an error you most likely do not have the jmx invoker configured.
Hey Scott. Here's a list of the issues I've run across.
1.) The latest documentation (http://docs.jboss.org/jbossas/jboss4guide/r3/html/ch01.html) doesn't state anywhere exactly what needs to be done to relocate a configuration folder outside the "[jboss_home]/server" directory. One glaring omission is in Figure 1.1, where "jboss.server.base.url" is listed, but is completely useless without knowing that you would also have to set "jboss.server.base.dir" to get JBoss to recognise a configuration home outside the server directory.
2.) The current virtual host configuration for JBoss (http://docs.jboss.org/jbossas/jboss4guide/r3/html/ch9.chapt.html#d0e22095) is only good if there is only one party responsible for deploying web applications to specific domains. It would be impossible to use this in a true virtual hosting environment because it would not only require shared access to the deploy directory by all domain owners (to be able to deploy wars to their domain), but as the documentation states:
To deploy a WAR to a specific virtual host you need to specify an appropriate virtual-host definition in your jboss-web.xml descriptor.
... a malicious domain owner could set the war to be deployed to someone elses domain, causing conflicts or worse. This is not to mention that two domains could not run the same application unless the application was specifically coded to handle input from two domains simultaneously.
That covers the gist of it for now. Along the lines of feature requests, it would also be nice to allow for a shared deploy directory where a server administrator could put WARs that would be deployed to all configurations (id est - domains, virtual hosts), but would be run as if the WARs had been added to each of the configuration's deploy directories separately. Forgive me if the "all" configuration does this already. I'd check the documentation to be sure, but the "all" configuration, its purpose, and how it interacts with the other configurations is never addressed in the docs except for passing references. Googling gives me a firm "the all configuration in 4.x does the same stuff it does in 3.2.x". Gee, thanks.
Regarding the shutdown command, I mentioned in the first post in this thread that I was using copies of the "minimal" configuration for testing, which does not have any services in the deploy directory - include the jmx related services. So are you telling me that if you want to stop a server via the command line without using kill -9, you are forced to include the jmx services in your configuration even if you do not want them?
If you want to use the shutdown command, you need the jmx invoker it uses. Your free to write another mbean service which uses an alternate mechanism.
What you're saying is that if you want to be able to shut down any given running instance of JBoss, you are forced to run the JMX service, whether you want it or not? Or is there some other way of targeting a server instance dirctory to specifically shut it down?
You can run jmx over an http invoker, custom invoker, etc. JMX is the mechanism, you need some way to provide remote access.