You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by Jeremy Boynes <je...@coredevelopers.net> on 2004/04/19 03:26:40 UTC
Hot deployment
Quick summary of a conversation between dblevins and I on deployment...
Although the infrastructure is there, we currently don't support hot
deployment as there is no way of notifying the kernel to install/load a
new Configuration.
We currently do cold deployment by pointing the deployer and the server
at the same ConfigurationStore - this works, but is not very safe as the
store does not support concurrent access. To avoid that, you need to
stop the server to do deployment.
To allow hot deployment, there are a few options:
1) Use MBean remoting to invoke the appropriate GBeans in a running
server to cause it to install and load a new configuration. This
should be trival if MBean remoting works.
2) Provide a servlet that allows a CAR to be posted to the server and
which uses the GBeans locally to install/load the new config. This
is firewall friendly but requires a web container
3) Use the JSR77 MEJB to invoke the GBeans. This would only require the
EJB container and MEJB, but may eat memory as the CAR would need to
be passed in a EJBInvocation.
4) A variant of 2 and 3 where the servlet receives the CAR in a POST
and streams it to local disk, then uses the MEJB to install it.
Avoids having to talk raw JMX but other than that seems clunky.
5) Allow deployer and server to have concurrent access to a config
store and send the commands over JMX Remoting, HTTP, EJB-RPC or
whatever.
None of these are particularly hard to do - any preferences?
Irrespective of which of these we pick, the only change to the deployer
seems to be an additional --distribute option that takes the URL of the
target server e.g.
java -jar deployer.jar
--distribute http://server/installer
--module app.ear
--plan plan.xml
or the equivalent ant/maven task.
Can someone give us a quick update on where JMX Remoting is with the new
network transport (not RMI) ?
--
Jeremy