On Oct 16, 2008, at 11:56 AM, randersen wrote:



djencks wrote:


In the WASCE_HOME directory, there is the main repository and var
directories, what I would like to do is to create a local
repository, and
start several instances that use that repository.  So I think I am
after a
structure like this:

WASCE_HOME
  repo1
      instance1
      instance2
      instance3
  repo2
      instance1
      instance2
      instance3
  repo3
      instance1
      instance2
      instance3

Is this possible?  If so, how would I do this?

I'm not sure why you want mutliple repositories.  I think you can do
what you want with only the default repository.

We actually have sort of a sample of multiple servers sharing a
repository.  One version that may be usable is at
http://people.apache.org/~djencks/failover2.tar.gz
To build it yourself build serve/trunk, then checkout

svn co https://svn.apache.org/repos/asf/geronimo/sandbox/failover

and build the pieces independently.

There's a linux script that makes a bunch of server copies (copying
the var directory) and a couple scripts that start the servers on
different ports.  This sample works on plugins so you can see plugins
installed on each of the "servers".  The first time a plugin is
installed it actually gets into the repository and the installation
process may unpack stuff into that server's var dir.  When the plugin
is installed on the other servers sharing the repo the only thing that
happens is the unpacking into the var dir.

You can do something similar with apps that you aren't thinking of as
plugins by deploying the app into the appropriate first server, then
starting the app in the other servers you want it running in.

Productive use of this feature is just starting so please let us know
what is unclear or if you run into problems or have more questions.

many thanks
david jencks



The structure would be more like:

WASCE_HOME
   customers
       customer1
           customer1-repo
           instance1
               var
           instance2
               var
       customer2
           customer2-repo
           instance1
             var

This would allow the deployment of multiple customers on 1 machine that use different databases to use the same database pool without having to deploy a second repository in each instance for the database pool. Is there a system property for the repository directory like there is for the var directory?

I'd like to know more about what you are trying to do. If each customer is using the same applications and the only difference between them is which database their copy of the app needs to connect to then you only need one repo. The only reason I can think of to have one repo for each customer is if you have apps for one customer that you need to prevent being started on other customer's servers.

In the unlikely event you are using derby or another db that stores data inside geronimo's var dir then each customer will already get a new copy of derby simply because they have their own var dir.

In the more likely event you are using an external db and each customer has their own copy you have at least these two options:

1. use a config.xml snippet with a config-substitutions variable for the db name or url (and user/pw presumably) and set these in each server's var/config/config-substitutions.properties

2. deploy a fully configured db pool on each customer's server pointing to the appropriate db and use artifact-aliases to have it replace a standard or dummy db pool.

still trying to understand what you are trying to do....
thanks
david jencks


--
View this message in context: 
http://www.nabble.com/Multiple-Instances-With-One-Repository-tp20001882s134p20016177.html
Sent from the Apache Geronimo - Dev mailing list archive at Nabble.com.


Reply via email to