You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by edponce <ed...@appslm.com> on 2008/08/21 00:31:58 UTC

HOW TO install/setup 2 instances of tomcat on same server

I know this question has been asked a lot but I've read different solutions
depending on the needs of the problem. I need to have 2 instances of tomcat
on the same server for the same application. One would be for production and
the other for development (which can be start and stopped whenever without
affecting the production one).
>From my understanding i need to have each instance on different ports and
modifying some other files but what I am missing is the technical things.
Can any one please guide me on the correct direction so that i don't mess up
anything! I've never worked with Tomcat that is why i have no idea on how to
do it.
Thanks in advance 
-- 
View this message in context: http://www.nabble.com/HOW-TO-install-setup-2-instances-of-tomcat-on-same-server-tp19079289p19079289.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by edponce <ed...@appslm.com>.
ive duplicated my folder...modified the specif files created a script for
starting up the 2nd instance and when i start it i get this error, but cant
debut it... any ideas anybody?


[root@balder312 ~]# tomcat5-test start
In the config file
Starting tomcat5-test:                                     [  FAILED  ]


Thank you,


edponce wrote:
> 
> I know this question has been asked a lot but I've read different
> solutions depending on the needs of the problem. I need to have 2
> instances of tomcat on the same server for the same application. One would
> be for production and the other for development (which can be start and
> stopped whenever without affecting the production one).
> From my understanding i need to have each instance on different ports and
> modifying some other files but what I am missing is the technical things.
> Can any one please guide me on the correct direction so that i don't mess
> up anything! I've never worked with Tomcat that is why i have no idea on
> how to do it.
> Thanks in advance 
> 

-- 
View this message in context: http://www.nabble.com/HOW-TO-install-setup-2-instances-of-tomcat-on-same-server-tp19079289p19187640.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: increase memory in tomcat

Posted by Mark Thomas <ma...@apache.org>.
Frank Uccello wrote:
> How do I increase memory in tomcat on linux

Please don't hijack threads.

Mark



---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


increase memory in tomcat

Posted by Frank Uccello <fr...@phantomfiber.com>.
How do I increase memory in tomcat on linux


I used my catalina.bat in windows to set 

 

set JAVA_OPTS= -Xms256m -Xmx512m


How do I do this in linux


Thanks


Frank


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by "Mark H. Wood" <mw...@IUPUI.Edu>.
On Thu, Aug 21, 2008 at 02:31:41AM +0200, André Warnier wrote:
> Markus Schönhaber wrote:
[snip]
>> Furthermore, if I understand the OP's statement above correctly, he wants 
>> to be able to restart the development Tomcat without affecting the 
>> production Tomcat. That's not possible with either of those two solutions.
>
> True. But I was wondering why he said that he needed to restart Tomcat.  
> Considering that he mentioned he knows not much about it, the OP may be 
> unaware that it is not necessary to restart Tomcat, if the reason is just to 
> re-install/re-start a new version of the test application.

Why?  Because, however good Tomcat is, webapp.s are notorious for
leaking (and occasionally gushing) Tomcat's resources as they stop and
start.  Particularly with software under active development, there is
the real possibility that app A will run Tomcat out of some vital
memory pool and precipitate the crash of app B, though B be coded ever
so carefully.

Here our production Tomcats run pretty well.  The development Tomcat
can lock up several times a day, spinning at 100% CPU and unable to
execute a controlled shutdown, as we update a developing app. a mere
dozen times.  I am ever so happy to have not just separate production
and development containers, but separate hosts, to contain the
problems of unfinished software until they can be fixed.

-- 
Mark H. Wood, Lead System Programmer   mwood@IUPUI.Edu
Typically when a software vendor says that a product is "intuitive" he
means the exact opposite.


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by André Warnier <aw...@ice-sa.com>.
Markus Schönhaber wrote:
> André Warnier wrote:
> 
>>> edponce wrote:
> 
>>>> depending on the needs of the problem. I need to have 2 instances of 
>>>> tomcat
>>>> on the same server for the same application. One would be for 
>>>> production and
>>>> the other for development (which can be start and stopped whenever 
>>>> without
>>>> affecting the production one).
> 
>> You do not necessarily need two separate instances of Tomcat.
>> Under Tomcat, each application can be started and stopped (and even a 
>> new version reloaded) without stopping the Tomcat server.
>> You would just need to "name" your applications differently.
>> (like "http://host.mycompany.com/real-app" and 
>> "http://host.mycompany.com/test-app").
> 
> Yes, that's possible.
> 
>> There also exists the possibility to run one Tomcat with different 
>> "Virtual Hosts", on the same port 80.
>> Each one of these virtual hosts would have a different "DNS name" 
>> (like   "realserver.mycompany.com" and "testserver.mycompany.com") and 
>> could have a different directory where the applications reside, but 
>> the application itself would be named the same way.
> 
> Yes, that's also possible.
> 
>> I am mentioning the above two possibilities because, you knowing not 
>> much about Tomcat to start witj, either one of the above is probably 
>> easier to set up than two separate Tomcat instances.
> 
> I don't see what's difficult with creating two separate Tomcats. Just 
> unpack the Tomcat archive two times to different directories[1] and 
> change the ports used in one of them so that they are unique. Looking at 
> the default server.xml, there are three numbers to be changed (YMMV if 
> you add/remove Connectors).
> 
>> The difference between the above solutions and two really separate 
>> Tomcat instances would be if the test application could really crash 
>> the whole server, in which case you may not like one of the above 
>> solutions.
> 
> Exactly.
> Furthermore, if I understand the OP's statement above correctly, he 
> wants to be able to restart the development Tomcat without affecting the 
> production Tomcat. That's not possible with either of those two solutions.

True. But I was wondering why he said that he needed to restart Tomcat. 
  Considering that he mentioned he knows not much about it, the OP may 
be unaware that it is not necessary to restart Tomcat, if the reason is 
just to re-install/re-start a new version of the test application.

To the OP : at least until Tomcat version 5.5, there is an integrated 
web-accessible "Manager" application, through which you can start and 
stop any application, and upload a new version and restart it.  All this 
through a web form, and without restarting Tomcat.

> 
>> Comments anyone ?
> 
> No matter which possibilities exist to set up multiple Tomcat instances 
> on a single machine, I would *never* use a production server for 
> development. If I was in the OP's shoes, I'd rethink this requirement 
> (if it indeed is one).

Me too.
To the OP : it would really be more secure and stable to use two 
different servers, on which you could install two exactly identical 
Tomcat's.  A test Tomcat does not necessarily need a big server, and 
your average clunky PC running Linux would probably do fine.
(It does need some RAM though).
That would be a lot easier to install, because you could have on each 
just a Tomcat out-of-the-box.
(Also, whether you run Tomcat under Linux or Windows, from a pure-Java 
application point of view it is much the same.)


> 
> Regards
>   mks
> 
> [1] Of course, one can create multiple Tomcat instances from a single 
> binary by using multiple different CATALINA_BASEs. But that might be 
> unnecessary complex in this case.
> 
Now, edponce, after reading the above and thinking about it, where do 
you incline ?
And please, tell us some more about your exact environment if you can.
Like, what is the server, what is the Tomcat version, where do you get 
it from, how do you install it, etc..
That would help us a lot to narrow down the possibilities.



---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by Markus Schönhaber <to...@list-post.mks-mail.de>.
André Warnier wrote:

>> edponce wrote:

>>> depending on the needs of the problem. I need to have 2 instances of 
>>> tomcat
>>> on the same server for the same application. One would be for 
>>> production and
>>> the other for development (which can be start and stopped whenever 
>>> without
>>> affecting the production one).

> You do not necessarily need two separate instances of Tomcat.
> Under Tomcat, each application can be started and stopped (and even a 
> new version reloaded) without stopping the Tomcat server.
> You would just need to "name" your applications differently.
> (like "http://host.mycompany.com/real-app" and 
> "http://host.mycompany.com/test-app").

Yes, that's possible.

> There also exists the possibility to run one Tomcat with different 
> "Virtual Hosts", on the same port 80.
> Each one of these virtual hosts would have a different "DNS name" (like 
>   "realserver.mycompany.com" and "testserver.mycompany.com") and could 
> have a different directory where the applications reside, but the 
> application itself would be named the same way.

Yes, that's also possible.

> I am mentioning the above two possibilities because, you knowing not 
> much about Tomcat to start witj, either one of the above is probably 
> easier to set up than two separate Tomcat instances.

I don't see what's difficult with creating two separate Tomcats. Just 
unpack the Tomcat archive two times to different directories[1] and 
change the ports used in one of them so that they are unique. Looking at 
the default server.xml, there are three numbers to be changed (YMMV if 
you add/remove Connectors).

> The difference between the above solutions and two really separate 
> Tomcat instances would be if the test application could really crash the 
> whole server, in which case you may not like one of the above solutions.

Exactly.
Furthermore, if I understand the OP's statement above correctly, he 
wants to be able to restart the development Tomcat without affecting the 
production Tomcat. That's not possible with either of those two solutions.

> Comments anyone ?

No matter which possibilities exist to set up multiple Tomcat instances 
on a single machine, I would *never* use a production server for 
development. If I was in the OP's shoes, I'd rethink this requirement 
(if it indeed is one).

Regards
   mks

[1] Of course, one can create multiple Tomcat instances from a single 
binary by using multiple different CATALINA_BASEs. But that might be 
unnecessary complex in this case.

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by edponce <ed...@appslm.com>.
that is on windows... I am working on linux via ssh! I dont have anything
installed on my PC...



David Smith-2 wrote:
> 
> If you installed tomcat using the .exe installer, go get the .zip 
> download and grab the service.bat file from it's bin directory.  If you 
> installed .zip version of tomcat, you should have a file in the bin 
> directory named service.bat.  Service.bat can help you create new tomcat 
> services in the Windows environment, each with their own name for 
> start/stop/restart. If you want to get custom with the setup, just take 
> a look at how the bat file creates a new service and then roll your own 
> from the command line.
> 
> --David
> 
> edponce wrote:
>> DAvid
>> I am on windows, but i connect to the server via ssh so all the commands
>> are
>> just like in Linux.
>> I've tried tomcat5 start, but i think that just works for the original
>> tomcat, also, how can i check that when i start the 2nd instsance of
>> tomcat
>> it start with no errors.
>> Thank you
>> Eduardo
>>
>>
>> David Smith-2 wrote:
>>   
>>> Ok ... forgive me if this was posted already, but what OS do you have 
>>> and how are you starting the production instance?  Windows systems 
>>> starting the production tomcat as a service is different than Linux/Unix 
>>> systems starting tomcat with jsvc or a service script.
>>>
>>> --David
>>>
>>> edponce wrote:
>>>     
>>>> David,
>>>> Thanks for replying. I've duplicated my tomcat folder and renamed it
>>>> and
>>>> ive
>>>> changed the 2 <connector> and the <server> shut down port. But i dunno
>>>> how
>>>> to start the duplicate instance. how can i do that!
>>>> Thank you,
>>>> Eduardo
>>>>
>>>>
>>>> David Smith-2 wrote:
>>>>   
>>>>       
>>>>>> Can any one please guide me on the correct direction so that i don't 
>>>>>> mess up
>>>>>> anything! I've never worked with Tomcat that is why i have no idea on 
>>>>>> how to
>>>>>> do it. 
>>>>>>       
>>>>>>           
>>>>> Yes.  Just open the server.xml file in tomcat's conf directory and
>>>>> look 
>>>>> for the <Connector ... /> elements that aren't wrapped in xml comments
>>>>> ( 
>>>>> <!-- --> ).  In those you will see port="8009" or whatever.  Just make 
>>>>> sure they are all unique in both server.xmls.  Also change the port 
>>>>> number in the <Server ... > element so it doesn't conflict with the 
>>>>> other.  As an aside, I would recommend putting together a new 
>>>>> server.xml, removing all the xml comments to make an easier to read 
>>>>> server.xml.  Keep the original around for documentation/reference as 
>>>>> server.original.xml or whatever you like.
>>>>>
>>>>>     
>>>>>         
>>>>>> You do not necessarily need two separate instances of Tomcat.
>>>>>> Under Tomcat, each application can be started and stopped (and even a 
>>>>>> new version reloaded) without stopping the Tomcat server. 
>>>>>>       
>>>>>>           
>>>>> Technically yes, but if you restart the app enough times you will run 
>>>>> out of memory and need to restart the service.  The max webapp restart 
>>>>> count is dependent on how big the webapp is as well as how much extra 
>>>>> memory tomcat has.  It's better to occasionally restart a dev instance 
>>>>> of tomcat than bounce a production instance when it stops responding.
>>>>>
>>>>> --David
>>>>>
>>>>> André Warnier wrote:
>>>>>     
>>>>>         
>>>>>> André Warnier wrote:
>>>>>>       
>>>>>>           
>>>>>>> edponce wrote:
>>>>>>>         
>>>>>>>             
>>>>>>>> I know this question has been asked a lot but I've read different 
>>>>>>>> solutions
>>>>>>>> depending on the needs of the problem. I need to have 2 instances
>>>>>>>> of 
>>>>>>>> tomcat
>>>>>>>> on the same server for the same application. One would be for 
>>>>>>>> production and
>>>>>>>> the other for development (which can be start and stopped whenever 
>>>>>>>> without
>>>>>>>> affecting the production one).
>>>>>>>>           
>>>>>>>>               
>>>>>>>>> From my understanding i need to have each instance on different 
>>>>>>>>> ports and
>>>>>>>>>             
>>>>>>>>>                 
>>>>>>>> modifying some other files but what I am missing is the technical 
>>>>>>>> things.
>>>>>>>> Can any one please guide me on the correct direction so that i
>>>>>>>> don't 
>>>>>>>> mess up
>>>>>>>> anything! I've never worked with Tomcat that is why i have no idea 
>>>>>>>> on how to
>>>>>>>> do it.
>>>>>>>>           
>>>>>>>>               
>>>>>> Ok, serious now.
>>>>>> This is at the same time some information for you, the Original
>>>>>> Poster 
>>>>>> (OP), and a question for the others on this list more
>>>>>> Tomcat-qualified 
>>>>>> than I am.  But we've got to start somewhere...
>>>>>>
>>>>>> To the OP (and the others to contradict me if I'm wrong) :
>>>>>>
>>>>>> You do not necessarily need two separate instances of Tomcat.
>>>>>> Under Tomcat, each application can be started and stopped (and even a 
>>>>>> new version reloaded) without stopping the Tomcat server.
>>>>>> You would just need to "name" your applications differently.
>>>>>> (like "http://host.mycompany.com/real-app" and 
>>>>>> "http://host.mycompany.com/test-app").
>>>>>>
>>>>>> There also exists the possibility to run one Tomcat with different 
>>>>>> "Virtual Hosts", on the same port 80.
>>>>>> Each one of these virtual hosts would have a different "DNS name" 
>>>>>> (like  "realserver.mycompany.com" and "testserver.mycompany.com") and 
>>>>>> could have a different directory where the applications reside, but 
>>>>>> the application itself would be named the same way.
>>>>>>
>>>>>> I am mentioning the above two possibilities because, you knowing not 
>>>>>> much about Tomcat to start witj, either one of the above is probably 
>>>>>> easier to set up than two separate Tomcat instances.
>>>>>>
>>>>>> The difference between the above solutions and two really separate 
>>>>>> Tomcat instances would be if the test application could really crash 
>>>>>> the whole server, in which case you may not like one of the above 
>>>>>> solutions.
>>>>>>
>>>>>> Comments anyone ?
>>>>>>
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To start a new topic, e-mail: users@tomcat.apache.org
>>>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>>>>
>>>>>>       
>>>>>>           
>>>>> ---------------------------------------------------------------------
>>>>> To start a new topic, e-mail: users@tomcat.apache.org
>>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>>>
>>>>>
>>>>>
>>>>>     
>>>>>         
>>>>   
>>>>       
>>> -- 
>>> David Smith
>>> Programmer/Analyst
>>> College of Agriculture and Life Sciences
>>> Cornell University
>>> B32 Morrison Hall
>>> Ithaca, NY 14853
>>> Phone: (607) 255-4521
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To start a new topic, e-mail: users@tomcat.apache.org
>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>
>>>
>>>
>>>     
>>
>>   
> 
> 
> -- 
> David Smith
> Programmer/Analyst
> College of Agriculture and Life Sciences
> Cornell University
> B32 Morrison Hall
> Ithaca, NY 14853
> Phone: (607) 255-4521
> 
> 
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/HOW-TO-install-setup-2-instances-of-tomcat-on-same-server-tp19079289p19182454.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by David Smith <dn...@cornell.edu>.
If you installed tomcat using the .exe installer, go get the .zip 
download and grab the service.bat file from it's bin directory.  If you 
installed .zip version of tomcat, you should have a file in the bin 
directory named service.bat.  Service.bat can help you create new tomcat 
services in the Windows environment, each with their own name for 
start/stop/restart. If you want to get custom with the setup, just take 
a look at how the bat file creates a new service and then roll your own 
from the command line.

--David

edponce wrote:
> DAvid
> I am on windows, but i connect to the server via ssh so all the commands are
> just like in Linux.
> I've tried tomcat5 start, but i think that just works for the original
> tomcat, also, how can i check that when i start the 2nd instsance of tomcat
> it start with no errors.
> Thank you
> Eduardo
>
>
> David Smith-2 wrote:
>   
>> Ok ... forgive me if this was posted already, but what OS do you have 
>> and how are you starting the production instance?  Windows systems 
>> starting the production tomcat as a service is different than Linux/Unix 
>> systems starting tomcat with jsvc or a service script.
>>
>> --David
>>
>> edponce wrote:
>>     
>>> David,
>>> Thanks for replying. I've duplicated my tomcat folder and renamed it and
>>> ive
>>> changed the 2 <connector> and the <server> shut down port. But i dunno
>>> how
>>> to start the duplicate instance. how can i do that!
>>> Thank you,
>>> Eduardo
>>>
>>>
>>> David Smith-2 wrote:
>>>   
>>>       
>>>>> Can any one please guide me on the correct direction so that i don't 
>>>>> mess up
>>>>> anything! I've never worked with Tomcat that is why i have no idea on 
>>>>> how to
>>>>> do it. 
>>>>>       
>>>>>           
>>>> Yes.  Just open the server.xml file in tomcat's conf directory and look 
>>>> for the <Connector ... /> elements that aren't wrapped in xml comments ( 
>>>> <!-- --> ).  In those you will see port="8009" or whatever.  Just make 
>>>> sure they are all unique in both server.xmls.  Also change the port 
>>>> number in the <Server ... > element so it doesn't conflict with the 
>>>> other.  As an aside, I would recommend putting together a new 
>>>> server.xml, removing all the xml comments to make an easier to read 
>>>> server.xml.  Keep the original around for documentation/reference as 
>>>> server.original.xml or whatever you like.
>>>>
>>>>     
>>>>         
>>>>> You do not necessarily need two separate instances of Tomcat.
>>>>> Under Tomcat, each application can be started and stopped (and even a 
>>>>> new version reloaded) without stopping the Tomcat server. 
>>>>>       
>>>>>           
>>>> Technically yes, but if you restart the app enough times you will run 
>>>> out of memory and need to restart the service.  The max webapp restart 
>>>> count is dependent on how big the webapp is as well as how much extra 
>>>> memory tomcat has.  It's better to occasionally restart a dev instance 
>>>> of tomcat than bounce a production instance when it stops responding.
>>>>
>>>> --David
>>>>
>>>> André Warnier wrote:
>>>>     
>>>>         
>>>>> André Warnier wrote:
>>>>>       
>>>>>           
>>>>>> edponce wrote:
>>>>>>         
>>>>>>             
>>>>>>> I know this question has been asked a lot but I've read different 
>>>>>>> solutions
>>>>>>> depending on the needs of the problem. I need to have 2 instances of 
>>>>>>> tomcat
>>>>>>> on the same server for the same application. One would be for 
>>>>>>> production and
>>>>>>> the other for development (which can be start and stopped whenever 
>>>>>>> without
>>>>>>> affecting the production one).
>>>>>>>           
>>>>>>>               
>>>>>>>> From my understanding i need to have each instance on different 
>>>>>>>> ports and
>>>>>>>>             
>>>>>>>>                 
>>>>>>> modifying some other files but what I am missing is the technical 
>>>>>>> things.
>>>>>>> Can any one please guide me on the correct direction so that i don't 
>>>>>>> mess up
>>>>>>> anything! I've never worked with Tomcat that is why i have no idea 
>>>>>>> on how to
>>>>>>> do it.
>>>>>>>           
>>>>>>>               
>>>>> Ok, serious now.
>>>>> This is at the same time some information for you, the Original Poster 
>>>>> (OP), and a question for the others on this list more Tomcat-qualified 
>>>>> than I am.  But we've got to start somewhere...
>>>>>
>>>>> To the OP (and the others to contradict me if I'm wrong) :
>>>>>
>>>>> You do not necessarily need two separate instances of Tomcat.
>>>>> Under Tomcat, each application can be started and stopped (and even a 
>>>>> new version reloaded) without stopping the Tomcat server.
>>>>> You would just need to "name" your applications differently.
>>>>> (like "http://host.mycompany.com/real-app" and 
>>>>> "http://host.mycompany.com/test-app").
>>>>>
>>>>> There also exists the possibility to run one Tomcat with different 
>>>>> "Virtual Hosts", on the same port 80.
>>>>> Each one of these virtual hosts would have a different "DNS name" 
>>>>> (like  "realserver.mycompany.com" and "testserver.mycompany.com") and 
>>>>> could have a different directory where the applications reside, but 
>>>>> the application itself would be named the same way.
>>>>>
>>>>> I am mentioning the above two possibilities because, you knowing not 
>>>>> much about Tomcat to start witj, either one of the above is probably 
>>>>> easier to set up than two separate Tomcat instances.
>>>>>
>>>>> The difference between the above solutions and two really separate 
>>>>> Tomcat instances would be if the test application could really crash 
>>>>> the whole server, in which case you may not like one of the above 
>>>>> solutions.
>>>>>
>>>>> Comments anyone ?
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To start a new topic, e-mail: users@tomcat.apache.org
>>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>>>
>>>>>       
>>>>>           
>>>> ---------------------------------------------------------------------
>>>> To start a new topic, e-mail: users@tomcat.apache.org
>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>>
>>>>
>>>>
>>>>     
>>>>         
>>>   
>>>       
>> -- 
>> David Smith
>> Programmer/Analyst
>> College of Agriculture and Life Sciences
>> Cornell University
>> B32 Morrison Hall
>> Ithaca, NY 14853
>> Phone: (607) 255-4521
>>
>>
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail: users@tomcat.apache.org
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>>
>>     
>
>   


-- 
David Smith
Programmer/Analyst
College of Agriculture and Life Sciences
Cornell University
B32 Morrison Hall
Ithaca, NY 14853
Phone: (607) 255-4521


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by edponce <ed...@appslm.com>.
DAvid
I am on windows, but i connect to the server via ssh so all the commands are
just like in Linux.
I've tried tomcat5 start, but i think that just works for the original
tomcat, also, how can i check that when i start the 2nd instsance of tomcat
it start with no errors.
Thank you
Eduardo


David Smith-2 wrote:
> 
> Ok ... forgive me if this was posted already, but what OS do you have 
> and how are you starting the production instance?  Windows systems 
> starting the production tomcat as a service is different than Linux/Unix 
> systems starting tomcat with jsvc or a service script.
> 
> --David
> 
> edponce wrote:
>> David,
>> Thanks for replying. I've duplicated my tomcat folder and renamed it and
>> ive
>> changed the 2 <connector> and the <server> shut down port. But i dunno
>> how
>> to start the duplicate instance. how can i do that!
>> Thank you,
>> Eduardo
>>
>>
>> David Smith-2 wrote:
>>   
>>>> Can any one please guide me on the correct direction so that i don't 
>>>> mess up
>>>> anything! I've never worked with Tomcat that is why i have no idea on 
>>>> how to
>>>> do it. 
>>>>       
>>> Yes.  Just open the server.xml file in tomcat's conf directory and look 
>>> for the <Connector ... /> elements that aren't wrapped in xml comments ( 
>>> <!-- --> ).  In those you will see port="8009" or whatever.  Just make 
>>> sure they are all unique in both server.xmls.  Also change the port 
>>> number in the <Server ... > element so it doesn't conflict with the 
>>> other.  As an aside, I would recommend putting together a new 
>>> server.xml, removing all the xml comments to make an easier to read 
>>> server.xml.  Keep the original around for documentation/reference as 
>>> server.original.xml or whatever you like.
>>>
>>>     
>>>> You do not necessarily need two separate instances of Tomcat.
>>>> Under Tomcat, each application can be started and stopped (and even a 
>>>> new version reloaded) without stopping the Tomcat server. 
>>>>       
>>> Technically yes, but if you restart the app enough times you will run 
>>> out of memory and need to restart the service.  The max webapp restart 
>>> count is dependent on how big the webapp is as well as how much extra 
>>> memory tomcat has.  It's better to occasionally restart a dev instance 
>>> of tomcat than bounce a production instance when it stops responding.
>>>
>>> --David
>>>
>>> André Warnier wrote:
>>>     
>>>> André Warnier wrote:
>>>>       
>>>>> edponce wrote:
>>>>>         
>>>>>> I know this question has been asked a lot but I've read different 
>>>>>> solutions
>>>>>> depending on the needs of the problem. I need to have 2 instances of 
>>>>>> tomcat
>>>>>> on the same server for the same application. One would be for 
>>>>>> production and
>>>>>> the other for development (which can be start and stopped whenever 
>>>>>> without
>>>>>> affecting the production one).
>>>>>>           
>>>>>>> From my understanding i need to have each instance on different 
>>>>>>> ports and
>>>>>>>             
>>>>>> modifying some other files but what I am missing is the technical 
>>>>>> things.
>>>>>> Can any one please guide me on the correct direction so that i don't 
>>>>>> mess up
>>>>>> anything! I've never worked with Tomcat that is why i have no idea 
>>>>>> on how to
>>>>>> do it.
>>>>>>           
>>>> Ok, serious now.
>>>> This is at the same time some information for you, the Original Poster 
>>>> (OP), and a question for the others on this list more Tomcat-qualified 
>>>> than I am.  But we've got to start somewhere...
>>>>
>>>> To the OP (and the others to contradict me if I'm wrong) :
>>>>
>>>> You do not necessarily need two separate instances of Tomcat.
>>>> Under Tomcat, each application can be started and stopped (and even a 
>>>> new version reloaded) without stopping the Tomcat server.
>>>> You would just need to "name" your applications differently.
>>>> (like "http://host.mycompany.com/real-app" and 
>>>> "http://host.mycompany.com/test-app").
>>>>
>>>> There also exists the possibility to run one Tomcat with different 
>>>> "Virtual Hosts", on the same port 80.
>>>> Each one of these virtual hosts would have a different "DNS name" 
>>>> (like  "realserver.mycompany.com" and "testserver.mycompany.com") and 
>>>> could have a different directory where the applications reside, but 
>>>> the application itself would be named the same way.
>>>>
>>>> I am mentioning the above two possibilities because, you knowing not 
>>>> much about Tomcat to start witj, either one of the above is probably 
>>>> easier to set up than two separate Tomcat instances.
>>>>
>>>> The difference between the above solutions and two really separate 
>>>> Tomcat instances would be if the test application could really crash 
>>>> the whole server, in which case you may not like one of the above 
>>>> solutions.
>>>>
>>>> Comments anyone ?
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To start a new topic, e-mail: users@tomcat.apache.org
>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>>
>>>>       
>>> ---------------------------------------------------------------------
>>> To start a new topic, e-mail: users@tomcat.apache.org
>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>
>>>
>>>
>>>     
>>
>>   
> 
> 
> -- 
> David Smith
> Programmer/Analyst
> College of Agriculture and Life Sciences
> Cornell University
> B32 Morrison Hall
> Ithaca, NY 14853
> Phone: (607) 255-4521
> 
> 
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/HOW-TO-install-setup-2-instances-of-tomcat-on-same-server-tp19079289p19162771.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by edponce <ed...@appslm.com>.
is that something like this...

ln -s /etc/tomcat5-test  S71tomcat5-test?



David Smith-2 wrote:
> 
>>
>> [root@balder312 rc5.d]# tomcat5-test start
>> -bash: /usr/bin/tomcat5-test: Permission denied
> You need to add the execute privilege to your tomcat5-test script.  Take 
> a look at the man page for chmod.
> 
>> ...
>> wich was /etc/tomcat5 (where i have the catalina policies and
>> jkproperties,
>> etc) for /etc/tomcat5-test....but that raised other questions should i be
>> duplicating that folder or my CATALINA_HOME which is /usr/share/tomcat5
> I suspect there are soft links in /etc/tomcat5 (or /etc/tomcat5 itself 
> is a softlink) to /usr/share/tomcat5.  In that case, duplicate both.  
> Disk space is generally cheap and tomcat doesn't take that much room.  
> That would also bolster separation of the dev and production 
> environments as each should have their own log directories.
> 
> --David
> 
> edponce wrote:
>> ive created this start script in the /usr/bin/ folder...what i did is
>> modified the previous path of the original tomcat instance to the new
>> one...
>> wich was /etc/tomcat5 (where i have the catalina policies and
>> jkproperties,
>> etc) for /etc/tomcat5-test....but that raised other questions should i be
>> duplicating that folder or my CATALINA_HOME which is /usr/share/tomcat5
>> and
>> when I try running the following start up script i am getting this.. any
>> ideas why?
>>
>> [root@balder312 rc5.d]# tomcat5-test start
>> -bash: /usr/bin/tomcat5-test: Permission denied
>>
>> THIS IS MY START UP SCRIPT...which is a modified copy of the original
>> script
>> to startup tomcat
>>
>> #!/bin/bash
>> #
>> # tomcat5      This shell script takes care of starting and stopping
>> Tomcat
>> #
>> # chkconfig: - 80 20
>> #
>> ### BEGIN INIT INFO
>> # Provides: tomcat5
>> # Required-Start: $network $syslog
>> # Required-Stop: $network $syslog
>> # Default-Start:
>> # Default-Stop:
>> # Description: Release implementation for Servlet 2.4 and JSP 2.0
>> # Short-Description: start and stop tomcat
>> ### END INIT INFO
>> #
>> # - originally written by Henri Gomez, Keith Irwin, and Nicolas Mailhot
>> # - heavily rewritten by Deepak Bhole and Jason Corley
>> #
>>
>> # commented out until the RHEL and FC daemon functions converge
>> # Source the function library
>> #if [ -r "/etc/rc.d/init.d/functions" ]; then
>>     #. /etc/rc.d/init.d/functions
>> #fi
>>
>> NAME="$(basename $0)"
>> unset ISBOOT
>> if [ "${NAME:0:1}" = "S" -o "${NAME:0:1}" = "K" ]; then
>>     NAME="${NAME:3}"
>>     ISBOOT="1"
>> fi
>>
>> # For SELinux we need to use 'runuser' not 'su'
>> if [ -x "/sbin/runuser" ]; then
>>     SU="/sbin/runuser"
>> else
>>     SU="su"
>> fi
>>
>> # Get the tomcat config (use this for environment specific settings)
>> TOMCAT_CFG="/etc/tomcat5/tomcat5.conf"
>> if [ -r "$TOMCAT_CFG" ]; then
>>     . ${TOMCAT_CFG}
>> fi
>>
>> # Get instance specific config file
>> if [ -r "/etc/sysconfig/${NAME}" ]; then
>>     . /etc/sysconfig/${NAME}
>> fi
>>
>> # Define which connector port to use
>> CONNECTOR_PORT="${CONNECTOR_PORT:-8080}"
>>
>> # Path to the tomcat launch script
>> TOMCAT_SCRIPT="/usr/bin/tomcat5-test"
>>
>> # Path to the script that will refresh jar symlinks on startup
>> TOMCAT_RELINK_SCRIPT="${CATALINA_HOME}/bin/relink"
>>
>> # Tomcat program name
>> TOMCAT_PROG="$NAME"
>>        
>> # Define the tomcat username
>> TOMCAT_USER="${TOMCAT_USER:-tomcat}"
>>
>> # Define the tomcat log file
>> TOMCAT_LOG="${TOMCAT_LOG:-/etc/tomcat5-test/logs/catalina.out}"
>>
>> RETVAL="0"
>>
>> # remove when the RHEL and FC daemon functions converge
>> # (pulled from /etc/rc.d/init.d/functions)
>> function checkpid() {
>>     local i
>>     for i in $* ; do
>>         if [ -d "/proc/${i}" ]; then
>>             return 0
>>         fi
>>     done
>>     return 1
>> }
>>
>> # remove when the RHEL and FC daemon functions converge
>> # (pulled from /etc/rc.d/init.d/functions)
>> function echo_failure() {
>>     echo -en "\\033[60G"
>>     echo -n "[  "
>>     echo -n $"FAILED"
>>     echo -n "  ]"
>>     echo -ne "\r"
>>     return 1
>> }
>>
>> # remove when the RHEL and FC daemon functions converge
>> # (pulled from /etc/rc.d/init.d/functions)
>> function echo_success() {
>>     echo -en "\\033[60G"
>>     echo -n "[  "
>>     echo -n $"OK"
>>     echo -n "  ]"
>>     echo -ne "\r"
>>     return 0
>> }
>>
>> # Look for open ports, as the function name might imply
>> function findFreePorts() {
>>     local isSet1="false"
>>     local isSet2="false"
>>     local isSet3="false"
>>     local lower="8000"
>>     randomPort1="0"
>>     randomPort2="0"
>>     randomPort3="0"
>>     local -a listeners="( $(
>>                         netstat -ntl | \
>>                         awk '/^tcp/ {gsub("(.)*:", "", $4); print $4}'
>>                     ) )"
>>     while [ "$isSet1" = "false" ] || \
>>           [ "$isSet2" = "false" ] || \
>>           [ "$isSet3" = "false" ]; do
>>         let port="${lower}+${RANDOM:0:4}"
>>         if [ -z `expr " ${listeners[*]} " : ".*\( $port \).*"` ]; then
>>             if [ "$isSet1" = "false" ]; then
>>                 export randomPort1="$port"
>>                 isSet1="true"
>>             elif [ "$isSet2" = "false" ]; then
>>                 export randomPort2="$port"
>>                 isSet2="true"
>>             elif [ "$isSet3" = "false" ]; then
>>                 export randomPort3="$port"
>>                 isSet3="true"
>>             fi
>>         fi
>>     done
>> }
>>
>> function makeHomeDir() {
>>     if [ ! -d "$CATALINA_HOME" ]; then
>>         echo "$CATALINA_HOME does not exist, creating"
>>         if [ ! -d "/var/lib/${NAME}" ]; then
>>             mkdir -p /var/lib/${NAME}
>>             cp -pLR /var/lib/tomcat5-test/* /var/lib/${NAME}
>>         fi
>>         mkdir -p $CATALINA_HOME ${CATALINA_HOME}/conf
>> /var/cache/${NAME}/temp \
>>             /var/cache/${NAME}/work /var/log/${NAME}
>>         for i in temp work; do
>>             ln -fs /var/cache/${NAME}/${i} ${CATALINA_HOME}/${i}
>>         done
>>         for i in common server shared webapps; do
>>             ln -fs /var/lib/${NAME}/${i} ${CATALINA_HOME}/${i}
>>         done
>>         ln -fs /var/log/${NAME} ${CATALINA_HOME}/logs
>>         cp -pLR /etc/tomcat5-test/* ${CATALINA_HOME}/conf/
>>         cp -pLR /usr/share/tomcat5-test/bin $CATALINA_HOME
>>         cp -pLR /etc/tomcat5-test/work/* ${CATALINA_HOME}/work/
>>         chown ${TOMCAT_USER}:${TOMCAT_USER} /var/log/${NAME}
>>     fi
>> }
>>
>> function parseOptions() {
>>     options=""
>>     options="$options $(
>>                  awk '!/^#/ && !/^$/ { ORS=" "; print "export ", $0, ";"
>> }'
>> \
>>                  $TOMCAT_CFG
>>              )"
>>     if [ -r "/etc/sysconfig/${NAME}" ]; then
>>         options="$options $(
>>                      awk '!/^#/ && !/^$/ { ORS=" ";
>>                                            print "export ", $0, ";" }' \
>>                      /etc/sysconfig/${NAME}
>>                  )"
>>     fi
>>     TOMCAT_SCRIPT="$options $TOMCAT_SCRIPT"
>> }
>>
>> # See how we were called.
>> function start() {
>>     echo -n "Starting ${TOMCAT_PROG}: "
>>     if [ -f "/var/lock/subsys/${NAME}" ] ; then
>>         if [ -f "/var/run/${NAME}.pid" ]; then
>>             read kpid < /var/run/${NAME}.pid
>>                 if checkpid $kpid 2>&1; then
>>                     echo "$NAME process already running"
>>                         return -1
>>                     else
>>                         echo "lock file found but no process running for"
>>                         echo "pid $kpid, continuing"
>>                 fi
>>         fi
>>     fi
>>     export CATALINA_PID="/var/run/${NAME}.pid"
>>     touch $CATALINA_PID
>>     chown ${TOMCAT_USER}:${TOMCAT_USER} $CATALINA_PID
>>     if [ "$CATALINA_HOME" != "/etc/tomcat5-test" ]; then
>>         # Create a tomcat directory if it doesn't exist
>>         makeHomeDir
>>         # If CATALINA_HOME doesn't exist modify port number so that
>>         # multiple instances don't interfere with each other
>>         findFreePorts
>>         sed -i -e "s/8005/${randomPort1}/g" -e
>> "s/8080/${CONNECTOR_PORT}/g"
>> \
>>             -e "s/8009/${randomPort2}/g" -e "s/8443/${randomPort3}/g" \
>>             ${CATALINA_HOME}/conf/server.xml
>>     fi
>>     $TOMCAT_RELINK_SCRIPT
>>     $SU - $TOMCAT_USER -c "$TOMCAT_SCRIPT start" >> $TOMCAT_LOG 2>&1
>>     RETVAL="$?"
>>     if [ "$RETVAL" -eq 0 ]; then
>>         echo_success
>>         touch /var/lock/subsys/${NAME}
>>     else
>>         echo_failure
>>     fi
>>     echo
>>     return $RETVAL
>> }
>>
>> function status() {
>>     RETVAL="1"
>>     if [ -f "/var/run/${NAME}.pid" ]; then
>>         read kpid < /var/run/${NAME}.pid
>>         if checkpid $kpid 2>&1; then
>>             echo "$0 is already running (${kpid})"
>>             RETVAL="0"
>>         else
>>             echo "lock file found but no process running for pid $kpid"
>>         fi
>>     else
>>         pid="$(pgrep -u tomcat java)"
>>         if [ -n "$pid" ]; then
>>             echo "$0 running (${pid}) but no PID file exists"
>>             RETVAL="0"
>>         else
>>             echo "$0 is stopped"
>>         fi
>>     fi
>>     return $RETVAL
>> }
>>
>> function stop() {
>>     local STOP_VERBOSE="false"
>>     echo -n "Stopping $TOMCAT_PROG: "
>>     if [ -f "/var/lock/subsys/${NAME}" ]; then
>>         $SU - $TOMCAT_USER -c "$TOMCAT_SCRIPT stop" >> $TOMCAT_LOG 2>&1
>>         RETVAL="$?"
>>         if [ "$RETVAL" -eq "0" ]; then
>>             count="0"
>>             if [ -f "/var/run/${NAME}.pid" ]; then
>>                 read kpid < /var/run/${NAME}.pid
>>                 until [ "$(ps --pid $kpid | grep -c $kpid)" -eq "0" ] ||
>> \
>>                       [ "$count" -gt "$SHUTDOWN_WAIT" ]; do
>>                     if [ "$STOP_VERBOSE" = "true" ]; then
>>                         echo -n -e "\nwaiting for processes $kpid to
>> exit"
>>                     fi
>>                     sleep 1
>>                     let count="${count}+1"
>>                 done
>>                 if [ "$count" -gt "$SHUTDOWN_WAIT" ]; then
>>                     if [ "$STOP_VERBOSE" = "true" ]; then
>>                         echo -n -e "\nkilling processes which didn't
>> stop"
>>                         echo -n -e "after "
>>                         echo -n "$SHUTDOWN_WAIT seconds"
>>                     fi
>>                     kill -9 $kpid
>>                 fi
>>                 echo_success
>>                 if [ "$count" -gt "0" ]; then
>>                     echo -n -e "\n"
>>                 fi
>>             fi
>>             rm -f /var/lock/subsys/$NAME /var/run/$NAME.pid
>>         else
>>             echo_failure
>>         fi
>>     fi
>> }
>>
>>
>> # See how we were called.
>> case "$1" in
>>     start)
>>         parseOptions
>>         start
>>         ;;
>>     stop)
>>         parseOptions
>>         stop
>>         ;;
>>     restart)
>>         parseOptions
>>         stop
>>         sleep 2    
>>         start
>>         ;;
>>     condrestart)
>>         if [ -f "/var/run/${NAME}.pid" ]; then
>>             parseOptions
>>             stop
>>             start
>>         fi
>>         ;;
>>     status)
>>         status
>>         ;;
>>     version)
>>         parseOptions
>>         "${JAVA_HOME}/bin/java" \
>>             -classpath "${CATALINA_HOME}/server/lib/catalina.jar" \
>>             org.apache.catalina.util.ServerInfo
>>         ;;
>>     *)
>>         echo "Usage: $TOMCAT_PROG
>> {start|stop|restart|condrestart|status|version}"
>>         exit 1
>> esac
>>
>> exit $RETVAL
>>
>>   
> 
> 
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/HOW-TO-install-setup-2-instances-of-tomcat-on-same-server-tp19079289p19183599.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


RE: HOW TO install/setup 2 instances of tomcat on same server

Posted by Martin Gainty <mg...@hotmail.com>.
make sure you have the full path for bash on the first line
you have
#!/bin/bash

i have 
#!/usr/bin/bash

also..
set -vset -o verbosePrints shell input lines as they are read.set -xset -o xtracePrint command traces before executing command.
take every opportunity to debug your bash script with echo statements.
http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_03.html

Martin 
______________________________________________ 
Disclaimer and confidentiality note 
Everything in this e-mail and any attachments relates to the official business of Sender. This transmission is of a confidential nature and Sender does not endorse distribution to any party other than intended recipient. Sender does not necessarily endorse content contained within this transmission. 


> Date: Wed, 27 Aug 2008 21:00:12 -0400
> From: dns4@cornell.edu
> To: users@tomcat.apache.org
> Subject: Re: HOW TO install/setup 2 instances of tomcat on same server
> 
> This error looks like an error in your shell script.  Maybe someone else 
> can offer up some help with this.  I use jsvc in my environment.
> 
> --David
> 
> edponce wrote:
> > just that....
> >
> > -sh: line 0: export: `In the config file': not a valid identifier
> > /bin/bash: /usr/bin/tomcat5-test: Permission denied
> > -sh: line 0: export: `In the config file': not a valid identifier
> > /bin/bash: /usr/bin/tomcat5-test: Permission denied
> >
> >
> >
> > David Smith-2 wrote:
> >   
> >> Anything in catalina.out related to the failed startup?
> >>
> >> --David
> >>
> >> edponce wrote:
> >>     
> >>> david...
> >>> my only problem now is ....
> >>>
> >>> [root@balder312 ~]# tomcat5-test start
> >>> In the config file
> >>> Starting tomcat5-test:                                     [  FAILED  ]
> >>>
> >>> i cant find what is the problem in the config file? any ideas?
> >>>
> >>>
> >>>
> >>> David Smith-2 wrote:
> >>>   
> >>>       
> >>>>> [root@balder312 rc5.d]# tomcat5-test start
> >>>>> -bash: /usr/bin/tomcat5-test: Permission denied
> >>>>>       
> >>>>>           
> >>>> You need to add the execute privilege to your tomcat5-test script.  Take 
> >>>> a look at the man page for chmod.
> >>>>
> >>>>     
> >>>>         
> >>>>> ...
> >>>>> wich was /etc/tomcat5 (where i have the catalina policies and
> >>>>> jkproperties,
> >>>>> etc) for /etc/tomcat5-test....but that raised other questions should i
> >>>>> be
> >>>>> duplicating that folder or my CATALINA_HOME which is /usr/share/tomcat5
> >>>>>       
> >>>>>           
> >>>> I suspect there are soft links in /etc/tomcat5 (or /etc/tomcat5 itself 
> >>>> is a softlink) to /usr/share/tomcat5.  In that case, duplicate both.  
> >>>> Disk space is generally cheap and tomcat doesn't take that much room.  
> >>>> That would also bolster separation of the dev and production 
> >>>> environments as each should have their own log directories.
> >>>>
> >>>> --David
> >>>>
> >>>> edponce wrote:
> >>>>     
> >>>>         
> >>>>> ive created this start script in the /usr/bin/ folder...what i did is
> >>>>> modified the previous path of the original tomcat instance to the new
> >>>>> one...
> >>>>> wich was /etc/tomcat5 (where i have the catalina policies and
> >>>>> jkproperties,
> >>>>> etc) for /etc/tomcat5-test....but that raised other questions should i
> >>>>> be
> >>>>> duplicating that folder or my CATALINA_HOME which is /usr/share/tomcat5
> >>>>> and
> >>>>> when I try running the following start up script i am getting this..
> >>>>> any
> >>>>> ideas why?
> >>>>>
> >>>>> [root@balder312 rc5.d]# tomcat5-test start
> >>>>> -bash: /usr/bin/tomcat5-test: Permission denied
> >>>>>
> >>>>> THIS IS MY START UP SCRIPT...which is a modified copy of the original
> >>>>> script
> >>>>> to startup tomcat
> >>>>>
> >>>>> #!/bin/bash
> >>>>> #
> >>>>> # tomcat5      This shell script takes care of starting and stopping
> >>>>> Tomcat
> >>>>> #
> >>>>> # chkconfig: - 80 20
> >>>>> #
> >>>>> ### BEGIN INIT INFO
> >>>>> # Provides: tomcat5
> >>>>> # Required-Start: $network $syslog
> >>>>> # Required-Stop: $network $syslog
> >>>>> # Default-Start:
> >>>>> # Default-Stop:
> >>>>> # Description: Release implementation for Servlet 2.4 and JSP 2.0
> >>>>> # Short-Description: start and stop tomcat
> >>>>> ### END INIT INFO
> >>>>> #
> >>>>> # - originally written by Henri Gomez, Keith Irwin, and Nicolas Mailhot
> >>>>> # - heavily rewritten by Deepak Bhole and Jason Corley
> >>>>> #
> >>>>>
> >>>>> # commented out until the RHEL and FC daemon functions converge
> >>>>> # Source the function library
> >>>>> #if [ -r "/etc/rc.d/init.d/functions" ]; then
> >>>>>     #. /etc/rc.d/init.d/functions
> >>>>> #fi
> >>>>>
> >>>>> NAME="$(basename $0)"
> >>>>> unset ISBOOT
> >>>>> if [ "${NAME:0:1}" = "S" -o "${NAME:0:1}" = "K" ]; then
> >>>>>     NAME="${NAME:3}"
> >>>>>     ISBOOT="1"
> >>>>> fi
> >>>>>
> >>>>> # For SELinux we need to use 'runuser' not 'su'
> >>>>> if [ -x "/sbin/runuser" ]; then
> >>>>>     SU="/sbin/runuser"
> >>>>> else
> >>>>>     SU="su"
> >>>>> fi
> >>>>>
> >>>>> # Get the tomcat config (use this for environment specific settings)
> >>>>> TOMCAT_CFG="/etc/tomcat5/tomcat5.conf"
> >>>>> if [ -r "$TOMCAT_CFG" ]; then
> >>>>>     . ${TOMCAT_CFG}
> >>>>> fi
> >>>>>
> >>>>> # Get instance specific config file
> >>>>> if [ -r "/etc/sysconfig/${NAME}" ]; then
> >>>>>     . /etc/sysconfig/${NAME}
> >>>>> fi
> >>>>>
> >>>>> # Define which connector port to use
> >>>>> CONNECTOR_PORT="${CONNECTOR_PORT:-8080}"
> >>>>>
> >>>>> # Path to the tomcat launch script
> >>>>> TOMCAT_SCRIPT="/usr/bin/tomcat5-test"
> >>>>>
> >>>>> # Path to the script that will refresh jar symlinks on startup
> >>>>> TOMCAT_RELINK_SCRIPT="${CATALINA_HOME}/bin/relink"
> >>>>>
> >>>>> # Tomcat program name
> >>>>> TOMCAT_PROG="$NAME"
> >>>>>        
> >>>>> # Define the tomcat username
> >>>>> TOMCAT_USER="${TOMCAT_USER:-tomcat}"
> >>>>>
> >>>>> # Define the tomcat log file
> >>>>> TOMCAT_LOG="${TOMCAT_LOG:-/etc/tomcat5-test/logs/catalina.out}"
> >>>>>
> >>>>> RETVAL="0"
> >>>>>
> >>>>> # remove when the RHEL and FC daemon functions converge
> >>>>> # (pulled from /etc/rc.d/init.d/functions)
> >>>>> function checkpid() {
> >>>>>     local i
> >>>>>     for i in $* ; do
> >>>>>         if [ -d "/proc/${i}" ]; then
> >>>>>             return 0
> >>>>>         fi
> >>>>>     done
> >>>>>     return 1
> >>>>> }
> >>>>>
> >>>>> # remove when the RHEL and FC daemon functions converge
> >>>>> # (pulled from /etc/rc.d/init.d/functions)
> >>>>> function echo_failure() {
> >>>>>     echo -en "\\033[60G"
> >>>>>     echo -n "[  "
> >>>>>     echo -n $"FAILED"
> >>>>>     echo -n "  ]"
> >>>>>     echo -ne "\r"
> >>>>>     return 1
> >>>>> }
> >>>>>
> >>>>> # remove when the RHEL and FC daemon functions converge
> >>>>> # (pulled from /etc/rc.d/init.d/functions)
> >>>>> function echo_success() {
> >>>>>     echo -en "\\033[60G"
> >>>>>     echo -n "[  "
> >>>>>     echo -n $"OK"
> >>>>>     echo -n "  ]"
> >>>>>     echo -ne "\r"
> >>>>>     return 0
> >>>>> }
> >>>>>
> >>>>> # Look for open ports, as the function name might imply
> >>>>> function findFreePorts() {
> >>>>>     local isSet1="false"
> >>>>>     local isSet2="false"
> >>>>>     local isSet3="false"
> >>>>>     local lower="8000"
> >>>>>     randomPort1="0"
> >>>>>     randomPort2="0"
> >>>>>     randomPort3="0"
> >>>>>     local -a listeners="( $(
> >>>>>                         netstat -ntl | \
> >>>>>                         awk '/^tcp/ {gsub("(.)*:", "", $4); print $4}'
> >>>>>                     ) )"
> >>>>>     while [ "$isSet1" = "false" ] || \
> >>>>>           [ "$isSet2" = "false" ] || \
> >>>>>           [ "$isSet3" = "false" ]; do
> >>>>>         let port="${lower}+${RANDOM:0:4}"
> >>>>>         if [ -z `expr " ${listeners[*]} " : ".*\( $port \).*"` ]; then
> >>>>>             if [ "$isSet1" = "false" ]; then
> >>>>>                 export randomPort1="$port"
> >>>>>                 isSet1="true"
> >>>>>             elif [ "$isSet2" = "false" ]; then
> >>>>>                 export randomPort2="$port"
> >>>>>                 isSet2="true"
> >>>>>             elif [ "$isSet3" = "false" ]; then
> >>>>>                 export randomPort3="$port"
> >>>>>                 isSet3="true"
> >>>>>             fi
> >>>>>         fi
> >>>>>     done
> >>>>> }
> >>>>>
> >>>>> function makeHomeDir() {
> >>>>>     if [ ! -d "$CATALINA_HOME" ]; then
> >>>>>         echo "$CATALINA_HOME does not exist, creating"
> >>>>>         if [ ! -d "/var/lib/${NAME}" ]; then
> >>>>>             mkdir -p /var/lib/${NAME}
> >>>>>             cp -pLR /var/lib/tomcat5-test/* /var/lib/${NAME}
> >>>>>         fi
> >>>>>         mkdir -p $CATALINA_HOME ${CATALINA_HOME}/conf
> >>>>> /var/cache/${NAME}/temp \
> >>>>>             /var/cache/${NAME}/work /var/log/${NAME}
> >>>>>         for i in temp work; do
> >>>>>             ln -fs /var/cache/${NAME}/${i} ${CATALINA_HOME}/${i}
> >>>>>         done
> >>>>>         for i in common server shared webapps; do
> >>>>>             ln -fs /var/lib/${NAME}/${i} ${CATALINA_HOME}/${i}
> >>>>>         done
> >>>>>         ln -fs /var/log/${NAME} ${CATALINA_HOME}/logs
> >>>>>         cp -pLR /etc/tomcat5-test/* ${CATALINA_HOME}/conf/
> >>>>>         cp -pLR /usr/share/tomcat5-test/bin $CATALINA_HOME
> >>>>>         cp -pLR /etc/tomcat5-test/work/* ${CATALINA_HOME}/work/
> >>>>>         chown ${TOMCAT_USER}:${TOMCAT_USER} /var/log/${NAME}
> >>>>>     fi
> >>>>> }
> >>>>>
> >>>>> function parseOptions() {
> >>>>>     options=""
> >>>>>     options="$options $(
> >>>>>                  awk '!/^#/ && !/^$/ { ORS=" "; print "export ", $0,
> >>>>> ";"
> >>>>> }'
> >>>>> \
> >>>>>                  $TOMCAT_CFG
> >>>>>              )"
> >>>>>     if [ -r "/etc/sysconfig/${NAME}" ]; then
> >>>>>         options="$options $(
> >>>>>                      awk '!/^#/ && !/^$/ { ORS=" ";
> >>>>>                                            print "export ", $0, ";" }'
> >>>>> \
> >>>>>                      /etc/sysconfig/${NAME}
> >>>>>                  )"
> >>>>>     fi
> >>>>>     TOMCAT_SCRIPT="$options $TOMCAT_SCRIPT"
> >>>>> }
> >>>>>
> >>>>> # See how we were called.
> >>>>> function start() {
> >>>>>     echo -n "Starting ${TOMCAT_PROG}: "
> >>>>>     if [ -f "/var/lock/subsys/${NAME}" ] ; then
> >>>>>         if [ -f "/var/run/${NAME}.pid" ]; then
> >>>>>             read kpid < /var/run/${NAME}.pid
> >>>>>                 if checkpid $kpid 2>&1; then
> >>>>>                     echo "$NAME process already running"
> >>>>>                         return -1
> >>>>>                     else
> >>>>>                         echo "lock file found but no process running
> >>>>> for"
> >>>>>                         echo "pid $kpid, continuing"
> >>>>>                 fi
> >>>>>         fi
> >>>>>     fi
> >>>>>     export CATALINA_PID="/var/run/${NAME}.pid"
> >>>>>     touch $CATALINA_PID
> >>>>>     chown ${TOMCAT_USER}:${TOMCAT_USER} $CATALINA_PID
> >>>>>     if [ "$CATALINA_HOME" != "/etc/tomcat5-test" ]; then
> >>>>>         # Create a tomcat directory if it doesn't exist
> >>>>>         makeHomeDir
> >>>>>         # If CATALINA_HOME doesn't exist modify port number so that
> >>>>>         # multiple instances don't interfere with each other
> >>>>>         findFreePorts
> >>>>>         sed -i -e "s/8005/${randomPort1}/g" -e
> >>>>> "s/8080/${CONNECTOR_PORT}/g"
> >>>>> \
> >>>>>             -e "s/8009/${randomPort2}/g" -e "s/8443/${randomPort3}/g" \
> >>>>>             ${CATALINA_HOME}/conf/server.xml
> >>>>>     fi
> >>>>>     $TOMCAT_RELINK_SCRIPT
> >>>>>     $SU - $TOMCAT_USER -c "$TOMCAT_SCRIPT start" >> $TOMCAT_LOG 2>&1
> >>>>>     RETVAL="$?"
> >>>>>     if [ "$RETVAL" -eq 0 ]; then
> >>>>>         echo_success
> >>>>>         touch /var/lock/subsys/${NAME}
> >>>>>     else
> >>>>>         echo_failure
> >>>>>     fi
> >>>>>     echo
> >>>>>     return $RETVAL
> >>>>> }
> >>>>>
> >>>>> function status() {
> >>>>>     RETVAL="1"
> >>>>>     if [ -f "/var/run/${NAME}.pid" ]; then
> >>>>>         read kpid < /var/run/${NAME}.pid
> >>>>>         if checkpid $kpid 2>&1; then
> >>>>>             echo "$0 is already running (${kpid})"
> >>>>>             RETVAL="0"
> >>>>>         else
> >>>>>             echo "lock file found but no process running for pid $kpid"
> >>>>>         fi
> >>>>>     else
> >>>>>         pid="$(pgrep -u tomcat java)"
> >>>>>         if [ -n "$pid" ]; then
> >>>>>             echo "$0 running (${pid}) but no PID file exists"
> >>>>>             RETVAL="0"
> >>>>>         else
> >>>>>             echo "$0 is stopped"
> >>>>>         fi
> >>>>>     fi
> >>>>>     return $RETVAL
> >>>>> }
> >>>>>
> >>>>> function stop() {
> >>>>>     local STOP_VERBOSE="false"
> >>>>>     echo -n "Stopping $TOMCAT_PROG: "
> >>>>>     if [ -f "/var/lock/subsys/${NAME}" ]; then
> >>>>>         $SU - $TOMCAT_USER -c "$TOMCAT_SCRIPT stop" >> $TOMCAT_LOG 2>&1
> >>>>>         RETVAL="$?"
> >>>>>         if [ "$RETVAL" -eq "0" ]; then
> >>>>>             count="0"
> >>>>>             if [ -f "/var/run/${NAME}.pid" ]; then
> >>>>>                 read kpid < /var/run/${NAME}.pid
> >>>>>                 until [ "$(ps --pid $kpid | grep -c $kpid)" -eq "0" ]
> >>>>> ||
> >>>>> \
> >>>>>                       [ "$count" -gt "$SHUTDOWN_WAIT" ]; do
> >>>>>                     if [ "$STOP_VERBOSE" = "true" ]; then
> >>>>>                         echo -n -e "\nwaiting for processes $kpid to
> >>>>> exit"
> >>>>>                     fi
> >>>>>                     sleep 1
> >>>>>                     let count="${count}+1"
> >>>>>                 done
> >>>>>                 if [ "$count" -gt "$SHUTDOWN_WAIT" ]; then
> >>>>>                     if [ "$STOP_VERBOSE" = "true" ]; then
> >>>>>                         echo -n -e "\nkilling processes which didn't
> >>>>> stop"
> >>>>>                         echo -n -e "after "
> >>>>>                         echo -n "$SHUTDOWN_WAIT seconds"
> >>>>>                     fi
> >>>>>                     kill -9 $kpid
> >>>>>                 fi
> >>>>>                 echo_success
> >>>>>                 if [ "$count" -gt "0" ]; then
> >>>>>                     echo -n -e "\n"
> >>>>>                 fi
> >>>>>             fi
> >>>>>             rm -f /var/lock/subsys/$NAME /var/run/$NAME.pid
> >>>>>         else
> >>>>>             echo_failure
> >>>>>         fi
> >>>>>     fi
> >>>>> }
> >>>>>
> >>>>>
> >>>>> # See how we were called.
> >>>>> case "$1" in
> >>>>>     start)
> >>>>>         parseOptions
> >>>>>         start
> >>>>>         ;;
> >>>>>     stop)
> >>>>>         parseOptions
> >>>>>         stop
> >>>>>         ;;
> >>>>>     restart)
> >>>>>         parseOptions
> >>>>>         stop
> >>>>>         sleep 2    
> >>>>>         start
> >>>>>         ;;
> >>>>>     condrestart)
> >>>>>         if [ -f "/var/run/${NAME}.pid" ]; then
> >>>>>             parseOptions
> >>>>>             stop
> >>>>>             start
> >>>>>         fi
> >>>>>         ;;
> >>>>>     status)
> >>>>>         status
> >>>>>         ;;
> >>>>>     version)
> >>>>>         parseOptions
> >>>>>         "${JAVA_HOME}/bin/java" \
> >>>>>             -classpath "${CATALINA_HOME}/server/lib/catalina.jar" \
> >>>>>             org.apache.catalina.util.ServerInfo
> >>>>>         ;;
> >>>>>     *)
> >>>>>         echo "Usage: $TOMCAT_PROG
> >>>>> {start|stop|restart|condrestart|status|version}"
> >>>>>         exit 1
> >>>>> esac
> >>>>>
> >>>>> exit $RETVAL
> >>>>>
> >>>>>   
> >>>>>       
> >>>>>           
> >> ---------------------------------------------------------------------
> >> To start a new topic, e-mail: users@tomcat.apache.org
> >> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> >> For additional commands, e-mail: users-help@tomcat.apache.org
> >>
> >>
> >>
> >>     
> >
> >   
> 
> 
> -- 
> David Smith
> Programmer/Analyst
> College of Agriculture and Life Sciences
> Cornell University
> B32 Morrison Hall
> Ithaca, NY 14853
> Phone: (607) 255-4521
> 
> 
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 

_________________________________________________________________
See what people are saying about Windows Live.  Check out featured posts.
http://www.windowslive.com/connect?ocid=TXT_TAGLM_WL_connect2_082008

Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by David Smith <dn...@cornell.edu>.
This error looks like an error in your shell script.  Maybe someone else 
can offer up some help with this.  I use jsvc in my environment.

--David

edponce wrote:
> just that....
>
> -sh: line 0: export: `In the config file': not a valid identifier
> /bin/bash: /usr/bin/tomcat5-test: Permission denied
> -sh: line 0: export: `In the config file': not a valid identifier
> /bin/bash: /usr/bin/tomcat5-test: Permission denied
>
>
>
> David Smith-2 wrote:
>   
>> Anything in catalina.out related to the failed startup?
>>
>> --David
>>
>> edponce wrote:
>>     
>>> david...
>>> my only problem now is ....
>>>
>>> [root@balder312 ~]# tomcat5-test start
>>> In the config file
>>> Starting tomcat5-test:                                     [  FAILED  ]
>>>
>>> i cant find what is the problem in the config file? any ideas?
>>>
>>>
>>>
>>> David Smith-2 wrote:
>>>   
>>>       
>>>>> [root@balder312 rc5.d]# tomcat5-test start
>>>>> -bash: /usr/bin/tomcat5-test: Permission denied
>>>>>       
>>>>>           
>>>> You need to add the execute privilege to your tomcat5-test script.  Take 
>>>> a look at the man page for chmod.
>>>>
>>>>     
>>>>         
>>>>> ...
>>>>> wich was /etc/tomcat5 (where i have the catalina policies and
>>>>> jkproperties,
>>>>> etc) for /etc/tomcat5-test....but that raised other questions should i
>>>>> be
>>>>> duplicating that folder or my CATALINA_HOME which is /usr/share/tomcat5
>>>>>       
>>>>>           
>>>> I suspect there are soft links in /etc/tomcat5 (or /etc/tomcat5 itself 
>>>> is a softlink) to /usr/share/tomcat5.  In that case, duplicate both.  
>>>> Disk space is generally cheap and tomcat doesn't take that much room.  
>>>> That would also bolster separation of the dev and production 
>>>> environments as each should have their own log directories.
>>>>
>>>> --David
>>>>
>>>> edponce wrote:
>>>>     
>>>>         
>>>>> ive created this start script in the /usr/bin/ folder...what i did is
>>>>> modified the previous path of the original tomcat instance to the new
>>>>> one...
>>>>> wich was /etc/tomcat5 (where i have the catalina policies and
>>>>> jkproperties,
>>>>> etc) for /etc/tomcat5-test....but that raised other questions should i
>>>>> be
>>>>> duplicating that folder or my CATALINA_HOME which is /usr/share/tomcat5
>>>>> and
>>>>> when I try running the following start up script i am getting this..
>>>>> any
>>>>> ideas why?
>>>>>
>>>>> [root@balder312 rc5.d]# tomcat5-test start
>>>>> -bash: /usr/bin/tomcat5-test: Permission denied
>>>>>
>>>>> THIS IS MY START UP SCRIPT...which is a modified copy of the original
>>>>> script
>>>>> to startup tomcat
>>>>>
>>>>> #!/bin/bash
>>>>> #
>>>>> # tomcat5      This shell script takes care of starting and stopping
>>>>> Tomcat
>>>>> #
>>>>> # chkconfig: - 80 20
>>>>> #
>>>>> ### BEGIN INIT INFO
>>>>> # Provides: tomcat5
>>>>> # Required-Start: $network $syslog
>>>>> # Required-Stop: $network $syslog
>>>>> # Default-Start:
>>>>> # Default-Stop:
>>>>> # Description: Release implementation for Servlet 2.4 and JSP 2.0
>>>>> # Short-Description: start and stop tomcat
>>>>> ### END INIT INFO
>>>>> #
>>>>> # - originally written by Henri Gomez, Keith Irwin, and Nicolas Mailhot
>>>>> # - heavily rewritten by Deepak Bhole and Jason Corley
>>>>> #
>>>>>
>>>>> # commented out until the RHEL and FC daemon functions converge
>>>>> # Source the function library
>>>>> #if [ -r "/etc/rc.d/init.d/functions" ]; then
>>>>>     #. /etc/rc.d/init.d/functions
>>>>> #fi
>>>>>
>>>>> NAME="$(basename $0)"
>>>>> unset ISBOOT
>>>>> if [ "${NAME:0:1}" = "S" -o "${NAME:0:1}" = "K" ]; then
>>>>>     NAME="${NAME:3}"
>>>>>     ISBOOT="1"
>>>>> fi
>>>>>
>>>>> # For SELinux we need to use 'runuser' not 'su'
>>>>> if [ -x "/sbin/runuser" ]; then
>>>>>     SU="/sbin/runuser"
>>>>> else
>>>>>     SU="su"
>>>>> fi
>>>>>
>>>>> # Get the tomcat config (use this for environment specific settings)
>>>>> TOMCAT_CFG="/etc/tomcat5/tomcat5.conf"
>>>>> if [ -r "$TOMCAT_CFG" ]; then
>>>>>     . ${TOMCAT_CFG}
>>>>> fi
>>>>>
>>>>> # Get instance specific config file
>>>>> if [ -r "/etc/sysconfig/${NAME}" ]; then
>>>>>     . /etc/sysconfig/${NAME}
>>>>> fi
>>>>>
>>>>> # Define which connector port to use
>>>>> CONNECTOR_PORT="${CONNECTOR_PORT:-8080}"
>>>>>
>>>>> # Path to the tomcat launch script
>>>>> TOMCAT_SCRIPT="/usr/bin/tomcat5-test"
>>>>>
>>>>> # Path to the script that will refresh jar symlinks on startup
>>>>> TOMCAT_RELINK_SCRIPT="${CATALINA_HOME}/bin/relink"
>>>>>
>>>>> # Tomcat program name
>>>>> TOMCAT_PROG="$NAME"
>>>>>        
>>>>> # Define the tomcat username
>>>>> TOMCAT_USER="${TOMCAT_USER:-tomcat}"
>>>>>
>>>>> # Define the tomcat log file
>>>>> TOMCAT_LOG="${TOMCAT_LOG:-/etc/tomcat5-test/logs/catalina.out}"
>>>>>
>>>>> RETVAL="0"
>>>>>
>>>>> # remove when the RHEL and FC daemon functions converge
>>>>> # (pulled from /etc/rc.d/init.d/functions)
>>>>> function checkpid() {
>>>>>     local i
>>>>>     for i in $* ; do
>>>>>         if [ -d "/proc/${i}" ]; then
>>>>>             return 0
>>>>>         fi
>>>>>     done
>>>>>     return 1
>>>>> }
>>>>>
>>>>> # remove when the RHEL and FC daemon functions converge
>>>>> # (pulled from /etc/rc.d/init.d/functions)
>>>>> function echo_failure() {
>>>>>     echo -en "\\033[60G"
>>>>>     echo -n "[  "
>>>>>     echo -n $"FAILED"
>>>>>     echo -n "  ]"
>>>>>     echo -ne "\r"
>>>>>     return 1
>>>>> }
>>>>>
>>>>> # remove when the RHEL and FC daemon functions converge
>>>>> # (pulled from /etc/rc.d/init.d/functions)
>>>>> function echo_success() {
>>>>>     echo -en "\\033[60G"
>>>>>     echo -n "[  "
>>>>>     echo -n $"OK"
>>>>>     echo -n "  ]"
>>>>>     echo -ne "\r"
>>>>>     return 0
>>>>> }
>>>>>
>>>>> # Look for open ports, as the function name might imply
>>>>> function findFreePorts() {
>>>>>     local isSet1="false"
>>>>>     local isSet2="false"
>>>>>     local isSet3="false"
>>>>>     local lower="8000"
>>>>>     randomPort1="0"
>>>>>     randomPort2="0"
>>>>>     randomPort3="0"
>>>>>     local -a listeners="( $(
>>>>>                         netstat -ntl | \
>>>>>                         awk '/^tcp/ {gsub("(.)*:", "", $4); print $4}'
>>>>>                     ) )"
>>>>>     while [ "$isSet1" = "false" ] || \
>>>>>           [ "$isSet2" = "false" ] || \
>>>>>           [ "$isSet3" = "false" ]; do
>>>>>         let port="${lower}+${RANDOM:0:4}"
>>>>>         if [ -z `expr " ${listeners[*]} " : ".*\( $port \).*"` ]; then
>>>>>             if [ "$isSet1" = "false" ]; then
>>>>>                 export randomPort1="$port"
>>>>>                 isSet1="true"
>>>>>             elif [ "$isSet2" = "false" ]; then
>>>>>                 export randomPort2="$port"
>>>>>                 isSet2="true"
>>>>>             elif [ "$isSet3" = "false" ]; then
>>>>>                 export randomPort3="$port"
>>>>>                 isSet3="true"
>>>>>             fi
>>>>>         fi
>>>>>     done
>>>>> }
>>>>>
>>>>> function makeHomeDir() {
>>>>>     if [ ! -d "$CATALINA_HOME" ]; then
>>>>>         echo "$CATALINA_HOME does not exist, creating"
>>>>>         if [ ! -d "/var/lib/${NAME}" ]; then
>>>>>             mkdir -p /var/lib/${NAME}
>>>>>             cp -pLR /var/lib/tomcat5-test/* /var/lib/${NAME}
>>>>>         fi
>>>>>         mkdir -p $CATALINA_HOME ${CATALINA_HOME}/conf
>>>>> /var/cache/${NAME}/temp \
>>>>>             /var/cache/${NAME}/work /var/log/${NAME}
>>>>>         for i in temp work; do
>>>>>             ln -fs /var/cache/${NAME}/${i} ${CATALINA_HOME}/${i}
>>>>>         done
>>>>>         for i in common server shared webapps; do
>>>>>             ln -fs /var/lib/${NAME}/${i} ${CATALINA_HOME}/${i}
>>>>>         done
>>>>>         ln -fs /var/log/${NAME} ${CATALINA_HOME}/logs
>>>>>         cp -pLR /etc/tomcat5-test/* ${CATALINA_HOME}/conf/
>>>>>         cp -pLR /usr/share/tomcat5-test/bin $CATALINA_HOME
>>>>>         cp -pLR /etc/tomcat5-test/work/* ${CATALINA_HOME}/work/
>>>>>         chown ${TOMCAT_USER}:${TOMCAT_USER} /var/log/${NAME}
>>>>>     fi
>>>>> }
>>>>>
>>>>> function parseOptions() {
>>>>>     options=""
>>>>>     options="$options $(
>>>>>                  awk '!/^#/ && !/^$/ { ORS=" "; print "export ", $0,
>>>>> ";"
>>>>> }'
>>>>> \
>>>>>                  $TOMCAT_CFG
>>>>>              )"
>>>>>     if [ -r "/etc/sysconfig/${NAME}" ]; then
>>>>>         options="$options $(
>>>>>                      awk '!/^#/ && !/^$/ { ORS=" ";
>>>>>                                            print "export ", $0, ";" }'
>>>>> \
>>>>>                      /etc/sysconfig/${NAME}
>>>>>                  )"
>>>>>     fi
>>>>>     TOMCAT_SCRIPT="$options $TOMCAT_SCRIPT"
>>>>> }
>>>>>
>>>>> # See how we were called.
>>>>> function start() {
>>>>>     echo -n "Starting ${TOMCAT_PROG}: "
>>>>>     if [ -f "/var/lock/subsys/${NAME}" ] ; then
>>>>>         if [ -f "/var/run/${NAME}.pid" ]; then
>>>>>             read kpid < /var/run/${NAME}.pid
>>>>>                 if checkpid $kpid 2>&1; then
>>>>>                     echo "$NAME process already running"
>>>>>                         return -1
>>>>>                     else
>>>>>                         echo "lock file found but no process running
>>>>> for"
>>>>>                         echo "pid $kpid, continuing"
>>>>>                 fi
>>>>>         fi
>>>>>     fi
>>>>>     export CATALINA_PID="/var/run/${NAME}.pid"
>>>>>     touch $CATALINA_PID
>>>>>     chown ${TOMCAT_USER}:${TOMCAT_USER} $CATALINA_PID
>>>>>     if [ "$CATALINA_HOME" != "/etc/tomcat5-test" ]; then
>>>>>         # Create a tomcat directory if it doesn't exist
>>>>>         makeHomeDir
>>>>>         # If CATALINA_HOME doesn't exist modify port number so that
>>>>>         # multiple instances don't interfere with each other
>>>>>         findFreePorts
>>>>>         sed -i -e "s/8005/${randomPort1}/g" -e
>>>>> "s/8080/${CONNECTOR_PORT}/g"
>>>>> \
>>>>>             -e "s/8009/${randomPort2}/g" -e "s/8443/${randomPort3}/g" \
>>>>>             ${CATALINA_HOME}/conf/server.xml
>>>>>     fi
>>>>>     $TOMCAT_RELINK_SCRIPT
>>>>>     $SU - $TOMCAT_USER -c "$TOMCAT_SCRIPT start" >> $TOMCAT_LOG 2>&1
>>>>>     RETVAL="$?"
>>>>>     if [ "$RETVAL" -eq 0 ]; then
>>>>>         echo_success
>>>>>         touch /var/lock/subsys/${NAME}
>>>>>     else
>>>>>         echo_failure
>>>>>     fi
>>>>>     echo
>>>>>     return $RETVAL
>>>>> }
>>>>>
>>>>> function status() {
>>>>>     RETVAL="1"
>>>>>     if [ -f "/var/run/${NAME}.pid" ]; then
>>>>>         read kpid < /var/run/${NAME}.pid
>>>>>         if checkpid $kpid 2>&1; then
>>>>>             echo "$0 is already running (${kpid})"
>>>>>             RETVAL="0"
>>>>>         else
>>>>>             echo "lock file found but no process running for pid $kpid"
>>>>>         fi
>>>>>     else
>>>>>         pid="$(pgrep -u tomcat java)"
>>>>>         if [ -n "$pid" ]; then
>>>>>             echo "$0 running (${pid}) but no PID file exists"
>>>>>             RETVAL="0"
>>>>>         else
>>>>>             echo "$0 is stopped"
>>>>>         fi
>>>>>     fi
>>>>>     return $RETVAL
>>>>> }
>>>>>
>>>>> function stop() {
>>>>>     local STOP_VERBOSE="false"
>>>>>     echo -n "Stopping $TOMCAT_PROG: "
>>>>>     if [ -f "/var/lock/subsys/${NAME}" ]; then
>>>>>         $SU - $TOMCAT_USER -c "$TOMCAT_SCRIPT stop" >> $TOMCAT_LOG 2>&1
>>>>>         RETVAL="$?"
>>>>>         if [ "$RETVAL" -eq "0" ]; then
>>>>>             count="0"
>>>>>             if [ -f "/var/run/${NAME}.pid" ]; then
>>>>>                 read kpid < /var/run/${NAME}.pid
>>>>>                 until [ "$(ps --pid $kpid | grep -c $kpid)" -eq "0" ]
>>>>> ||
>>>>> \
>>>>>                       [ "$count" -gt "$SHUTDOWN_WAIT" ]; do
>>>>>                     if [ "$STOP_VERBOSE" = "true" ]; then
>>>>>                         echo -n -e "\nwaiting for processes $kpid to
>>>>> exit"
>>>>>                     fi
>>>>>                     sleep 1
>>>>>                     let count="${count}+1"
>>>>>                 done
>>>>>                 if [ "$count" -gt "$SHUTDOWN_WAIT" ]; then
>>>>>                     if [ "$STOP_VERBOSE" = "true" ]; then
>>>>>                         echo -n -e "\nkilling processes which didn't
>>>>> stop"
>>>>>                         echo -n -e "after "
>>>>>                         echo -n "$SHUTDOWN_WAIT seconds"
>>>>>                     fi
>>>>>                     kill -9 $kpid
>>>>>                 fi
>>>>>                 echo_success
>>>>>                 if [ "$count" -gt "0" ]; then
>>>>>                     echo -n -e "\n"
>>>>>                 fi
>>>>>             fi
>>>>>             rm -f /var/lock/subsys/$NAME /var/run/$NAME.pid
>>>>>         else
>>>>>             echo_failure
>>>>>         fi
>>>>>     fi
>>>>> }
>>>>>
>>>>>
>>>>> # See how we were called.
>>>>> case "$1" in
>>>>>     start)
>>>>>         parseOptions
>>>>>         start
>>>>>         ;;
>>>>>     stop)
>>>>>         parseOptions
>>>>>         stop
>>>>>         ;;
>>>>>     restart)
>>>>>         parseOptions
>>>>>         stop
>>>>>         sleep 2    
>>>>>         start
>>>>>         ;;
>>>>>     condrestart)
>>>>>         if [ -f "/var/run/${NAME}.pid" ]; then
>>>>>             parseOptions
>>>>>             stop
>>>>>             start
>>>>>         fi
>>>>>         ;;
>>>>>     status)
>>>>>         status
>>>>>         ;;
>>>>>     version)
>>>>>         parseOptions
>>>>>         "${JAVA_HOME}/bin/java" \
>>>>>             -classpath "${CATALINA_HOME}/server/lib/catalina.jar" \
>>>>>             org.apache.catalina.util.ServerInfo
>>>>>         ;;
>>>>>     *)
>>>>>         echo "Usage: $TOMCAT_PROG
>>>>> {start|stop|restart|condrestart|status|version}"
>>>>>         exit 1
>>>>> esac
>>>>>
>>>>> exit $RETVAL
>>>>>
>>>>>   
>>>>>       
>>>>>           
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail: users@tomcat.apache.org
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>>
>>     
>
>   


-- 
David Smith
Programmer/Analyst
College of Agriculture and Life Sciences
Cornell University
B32 Morrison Hall
Ithaca, NY 14853
Phone: (607) 255-4521


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by edponce <ed...@appslm.com>.
just that....

-sh: line 0: export: `In the config file': not a valid identifier
/bin/bash: /usr/bin/tomcat5-test: Permission denied
-sh: line 0: export: `In the config file': not a valid identifier
/bin/bash: /usr/bin/tomcat5-test: Permission denied



David Smith-2 wrote:
> 
> Anything in catalina.out related to the failed startup?
> 
> --David
> 
> edponce wrote:
>> david...
>> my only problem now is ....
>>
>> [root@balder312 ~]# tomcat5-test start
>> In the config file
>> Starting tomcat5-test:                                     [  FAILED  ]
>>
>> i cant find what is the problem in the config file? any ideas?
>>
>>
>>
>> David Smith-2 wrote:
>>   
>>>> [root@balder312 rc5.d]# tomcat5-test start
>>>> -bash: /usr/bin/tomcat5-test: Permission denied
>>>>       
>>> You need to add the execute privilege to your tomcat5-test script.  Take 
>>> a look at the man page for chmod.
>>>
>>>     
>>>> ...
>>>> wich was /etc/tomcat5 (where i have the catalina policies and
>>>> jkproperties,
>>>> etc) for /etc/tomcat5-test....but that raised other questions should i
>>>> be
>>>> duplicating that folder or my CATALINA_HOME which is /usr/share/tomcat5
>>>>       
>>> I suspect there are soft links in /etc/tomcat5 (or /etc/tomcat5 itself 
>>> is a softlink) to /usr/share/tomcat5.  In that case, duplicate both.  
>>> Disk space is generally cheap and tomcat doesn't take that much room.  
>>> That would also bolster separation of the dev and production 
>>> environments as each should have their own log directories.
>>>
>>> --David
>>>
>>> edponce wrote:
>>>     
>>>> ive created this start script in the /usr/bin/ folder...what i did is
>>>> modified the previous path of the original tomcat instance to the new
>>>> one...
>>>> wich was /etc/tomcat5 (where i have the catalina policies and
>>>> jkproperties,
>>>> etc) for /etc/tomcat5-test....but that raised other questions should i
>>>> be
>>>> duplicating that folder or my CATALINA_HOME which is /usr/share/tomcat5
>>>> and
>>>> when I try running the following start up script i am getting this..
>>>> any
>>>> ideas why?
>>>>
>>>> [root@balder312 rc5.d]# tomcat5-test start
>>>> -bash: /usr/bin/tomcat5-test: Permission denied
>>>>
>>>> THIS IS MY START UP SCRIPT...which is a modified copy of the original
>>>> script
>>>> to startup tomcat
>>>>
>>>> #!/bin/bash
>>>> #
>>>> # tomcat5      This shell script takes care of starting and stopping
>>>> Tomcat
>>>> #
>>>> # chkconfig: - 80 20
>>>> #
>>>> ### BEGIN INIT INFO
>>>> # Provides: tomcat5
>>>> # Required-Start: $network $syslog
>>>> # Required-Stop: $network $syslog
>>>> # Default-Start:
>>>> # Default-Stop:
>>>> # Description: Release implementation for Servlet 2.4 and JSP 2.0
>>>> # Short-Description: start and stop tomcat
>>>> ### END INIT INFO
>>>> #
>>>> # - originally written by Henri Gomez, Keith Irwin, and Nicolas Mailhot
>>>> # - heavily rewritten by Deepak Bhole and Jason Corley
>>>> #
>>>>
>>>> # commented out until the RHEL and FC daemon functions converge
>>>> # Source the function library
>>>> #if [ -r "/etc/rc.d/init.d/functions" ]; then
>>>>     #. /etc/rc.d/init.d/functions
>>>> #fi
>>>>
>>>> NAME="$(basename $0)"
>>>> unset ISBOOT
>>>> if [ "${NAME:0:1}" = "S" -o "${NAME:0:1}" = "K" ]; then
>>>>     NAME="${NAME:3}"
>>>>     ISBOOT="1"
>>>> fi
>>>>
>>>> # For SELinux we need to use 'runuser' not 'su'
>>>> if [ -x "/sbin/runuser" ]; then
>>>>     SU="/sbin/runuser"
>>>> else
>>>>     SU="su"
>>>> fi
>>>>
>>>> # Get the tomcat config (use this for environment specific settings)
>>>> TOMCAT_CFG="/etc/tomcat5/tomcat5.conf"
>>>> if [ -r "$TOMCAT_CFG" ]; then
>>>>     . ${TOMCAT_CFG}
>>>> fi
>>>>
>>>> # Get instance specific config file
>>>> if [ -r "/etc/sysconfig/${NAME}" ]; then
>>>>     . /etc/sysconfig/${NAME}
>>>> fi
>>>>
>>>> # Define which connector port to use
>>>> CONNECTOR_PORT="${CONNECTOR_PORT:-8080}"
>>>>
>>>> # Path to the tomcat launch script
>>>> TOMCAT_SCRIPT="/usr/bin/tomcat5-test"
>>>>
>>>> # Path to the script that will refresh jar symlinks on startup
>>>> TOMCAT_RELINK_SCRIPT="${CATALINA_HOME}/bin/relink"
>>>>
>>>> # Tomcat program name
>>>> TOMCAT_PROG="$NAME"
>>>>        
>>>> # Define the tomcat username
>>>> TOMCAT_USER="${TOMCAT_USER:-tomcat}"
>>>>
>>>> # Define the tomcat log file
>>>> TOMCAT_LOG="${TOMCAT_LOG:-/etc/tomcat5-test/logs/catalina.out}"
>>>>
>>>> RETVAL="0"
>>>>
>>>> # remove when the RHEL and FC daemon functions converge
>>>> # (pulled from /etc/rc.d/init.d/functions)
>>>> function checkpid() {
>>>>     local i
>>>>     for i in $* ; do
>>>>         if [ -d "/proc/${i}" ]; then
>>>>             return 0
>>>>         fi
>>>>     done
>>>>     return 1
>>>> }
>>>>
>>>> # remove when the RHEL and FC daemon functions converge
>>>> # (pulled from /etc/rc.d/init.d/functions)
>>>> function echo_failure() {
>>>>     echo -en "\\033[60G"
>>>>     echo -n "[  "
>>>>     echo -n $"FAILED"
>>>>     echo -n "  ]"
>>>>     echo -ne "\r"
>>>>     return 1
>>>> }
>>>>
>>>> # remove when the RHEL and FC daemon functions converge
>>>> # (pulled from /etc/rc.d/init.d/functions)
>>>> function echo_success() {
>>>>     echo -en "\\033[60G"
>>>>     echo -n "[  "
>>>>     echo -n $"OK"
>>>>     echo -n "  ]"
>>>>     echo -ne "\r"
>>>>     return 0
>>>> }
>>>>
>>>> # Look for open ports, as the function name might imply
>>>> function findFreePorts() {
>>>>     local isSet1="false"
>>>>     local isSet2="false"
>>>>     local isSet3="false"
>>>>     local lower="8000"
>>>>     randomPort1="0"
>>>>     randomPort2="0"
>>>>     randomPort3="0"
>>>>     local -a listeners="( $(
>>>>                         netstat -ntl | \
>>>>                         awk '/^tcp/ {gsub("(.)*:", "", $4); print $4}'
>>>>                     ) )"
>>>>     while [ "$isSet1" = "false" ] || \
>>>>           [ "$isSet2" = "false" ] || \
>>>>           [ "$isSet3" = "false" ]; do
>>>>         let port="${lower}+${RANDOM:0:4}"
>>>>         if [ -z `expr " ${listeners[*]} " : ".*\( $port \).*"` ]; then
>>>>             if [ "$isSet1" = "false" ]; then
>>>>                 export randomPort1="$port"
>>>>                 isSet1="true"
>>>>             elif [ "$isSet2" = "false" ]; then
>>>>                 export randomPort2="$port"
>>>>                 isSet2="true"
>>>>             elif [ "$isSet3" = "false" ]; then
>>>>                 export randomPort3="$port"
>>>>                 isSet3="true"
>>>>             fi
>>>>         fi
>>>>     done
>>>> }
>>>>
>>>> function makeHomeDir() {
>>>>     if [ ! -d "$CATALINA_HOME" ]; then
>>>>         echo "$CATALINA_HOME does not exist, creating"
>>>>         if [ ! -d "/var/lib/${NAME}" ]; then
>>>>             mkdir -p /var/lib/${NAME}
>>>>             cp -pLR /var/lib/tomcat5-test/* /var/lib/${NAME}
>>>>         fi
>>>>         mkdir -p $CATALINA_HOME ${CATALINA_HOME}/conf
>>>> /var/cache/${NAME}/temp \
>>>>             /var/cache/${NAME}/work /var/log/${NAME}
>>>>         for i in temp work; do
>>>>             ln -fs /var/cache/${NAME}/${i} ${CATALINA_HOME}/${i}
>>>>         done
>>>>         for i in common server shared webapps; do
>>>>             ln -fs /var/lib/${NAME}/${i} ${CATALINA_HOME}/${i}
>>>>         done
>>>>         ln -fs /var/log/${NAME} ${CATALINA_HOME}/logs
>>>>         cp -pLR /etc/tomcat5-test/* ${CATALINA_HOME}/conf/
>>>>         cp -pLR /usr/share/tomcat5-test/bin $CATALINA_HOME
>>>>         cp -pLR /etc/tomcat5-test/work/* ${CATALINA_HOME}/work/
>>>>         chown ${TOMCAT_USER}:${TOMCAT_USER} /var/log/${NAME}
>>>>     fi
>>>> }
>>>>
>>>> function parseOptions() {
>>>>     options=""
>>>>     options="$options $(
>>>>                  awk '!/^#/ && !/^$/ { ORS=" "; print "export ", $0,
>>>> ";"
>>>> }'
>>>> \
>>>>                  $TOMCAT_CFG
>>>>              )"
>>>>     if [ -r "/etc/sysconfig/${NAME}" ]; then
>>>>         options="$options $(
>>>>                      awk '!/^#/ && !/^$/ { ORS=" ";
>>>>                                            print "export ", $0, ";" }'
>>>> \
>>>>                      /etc/sysconfig/${NAME}
>>>>                  )"
>>>>     fi
>>>>     TOMCAT_SCRIPT="$options $TOMCAT_SCRIPT"
>>>> }
>>>>
>>>> # See how we were called.
>>>> function start() {
>>>>     echo -n "Starting ${TOMCAT_PROG}: "
>>>>     if [ -f "/var/lock/subsys/${NAME}" ] ; then
>>>>         if [ -f "/var/run/${NAME}.pid" ]; then
>>>>             read kpid < /var/run/${NAME}.pid
>>>>                 if checkpid $kpid 2>&1; then
>>>>                     echo "$NAME process already running"
>>>>                         return -1
>>>>                     else
>>>>                         echo "lock file found but no process running
>>>> for"
>>>>                         echo "pid $kpid, continuing"
>>>>                 fi
>>>>         fi
>>>>     fi
>>>>     export CATALINA_PID="/var/run/${NAME}.pid"
>>>>     touch $CATALINA_PID
>>>>     chown ${TOMCAT_USER}:${TOMCAT_USER} $CATALINA_PID
>>>>     if [ "$CATALINA_HOME" != "/etc/tomcat5-test" ]; then
>>>>         # Create a tomcat directory if it doesn't exist
>>>>         makeHomeDir
>>>>         # If CATALINA_HOME doesn't exist modify port number so that
>>>>         # multiple instances don't interfere with each other
>>>>         findFreePorts
>>>>         sed -i -e "s/8005/${randomPort1}/g" -e
>>>> "s/8080/${CONNECTOR_PORT}/g"
>>>> \
>>>>             -e "s/8009/${randomPort2}/g" -e "s/8443/${randomPort3}/g" \
>>>>             ${CATALINA_HOME}/conf/server.xml
>>>>     fi
>>>>     $TOMCAT_RELINK_SCRIPT
>>>>     $SU - $TOMCAT_USER -c "$TOMCAT_SCRIPT start" >> $TOMCAT_LOG 2>&1
>>>>     RETVAL="$?"
>>>>     if [ "$RETVAL" -eq 0 ]; then
>>>>         echo_success
>>>>         touch /var/lock/subsys/${NAME}
>>>>     else
>>>>         echo_failure
>>>>     fi
>>>>     echo
>>>>     return $RETVAL
>>>> }
>>>>
>>>> function status() {
>>>>     RETVAL="1"
>>>>     if [ -f "/var/run/${NAME}.pid" ]; then
>>>>         read kpid < /var/run/${NAME}.pid
>>>>         if checkpid $kpid 2>&1; then
>>>>             echo "$0 is already running (${kpid})"
>>>>             RETVAL="0"
>>>>         else
>>>>             echo "lock file found but no process running for pid $kpid"
>>>>         fi
>>>>     else
>>>>         pid="$(pgrep -u tomcat java)"
>>>>         if [ -n "$pid" ]; then
>>>>             echo "$0 running (${pid}) but no PID file exists"
>>>>             RETVAL="0"
>>>>         else
>>>>             echo "$0 is stopped"
>>>>         fi
>>>>     fi
>>>>     return $RETVAL
>>>> }
>>>>
>>>> function stop() {
>>>>     local STOP_VERBOSE="false"
>>>>     echo -n "Stopping $TOMCAT_PROG: "
>>>>     if [ -f "/var/lock/subsys/${NAME}" ]; then
>>>>         $SU - $TOMCAT_USER -c "$TOMCAT_SCRIPT stop" >> $TOMCAT_LOG 2>&1
>>>>         RETVAL="$?"
>>>>         if [ "$RETVAL" -eq "0" ]; then
>>>>             count="0"
>>>>             if [ -f "/var/run/${NAME}.pid" ]; then
>>>>                 read kpid < /var/run/${NAME}.pid
>>>>                 until [ "$(ps --pid $kpid | grep -c $kpid)" -eq "0" ]
>>>> ||
>>>> \
>>>>                       [ "$count" -gt "$SHUTDOWN_WAIT" ]; do
>>>>                     if [ "$STOP_VERBOSE" = "true" ]; then
>>>>                         echo -n -e "\nwaiting for processes $kpid to
>>>> exit"
>>>>                     fi
>>>>                     sleep 1
>>>>                     let count="${count}+1"
>>>>                 done
>>>>                 if [ "$count" -gt "$SHUTDOWN_WAIT" ]; then
>>>>                     if [ "$STOP_VERBOSE" = "true" ]; then
>>>>                         echo -n -e "\nkilling processes which didn't
>>>> stop"
>>>>                         echo -n -e "after "
>>>>                         echo -n "$SHUTDOWN_WAIT seconds"
>>>>                     fi
>>>>                     kill -9 $kpid
>>>>                 fi
>>>>                 echo_success
>>>>                 if [ "$count" -gt "0" ]; then
>>>>                     echo -n -e "\n"
>>>>                 fi
>>>>             fi
>>>>             rm -f /var/lock/subsys/$NAME /var/run/$NAME.pid
>>>>         else
>>>>             echo_failure
>>>>         fi
>>>>     fi
>>>> }
>>>>
>>>>
>>>> # See how we were called.
>>>> case "$1" in
>>>>     start)
>>>>         parseOptions
>>>>         start
>>>>         ;;
>>>>     stop)
>>>>         parseOptions
>>>>         stop
>>>>         ;;
>>>>     restart)
>>>>         parseOptions
>>>>         stop
>>>>         sleep 2    
>>>>         start
>>>>         ;;
>>>>     condrestart)
>>>>         if [ -f "/var/run/${NAME}.pid" ]; then
>>>>             parseOptions
>>>>             stop
>>>>             start
>>>>         fi
>>>>         ;;
>>>>     status)
>>>>         status
>>>>         ;;
>>>>     version)
>>>>         parseOptions
>>>>         "${JAVA_HOME}/bin/java" \
>>>>             -classpath "${CATALINA_HOME}/server/lib/catalina.jar" \
>>>>             org.apache.catalina.util.ServerInfo
>>>>         ;;
>>>>     *)
>>>>         echo "Usage: $TOMCAT_PROG
>>>> {start|stop|restart|condrestart|status|version}"
>>>>         exit 1
>>>> esac
>>>>
>>>> exit $RETVAL
>>>>
>>>>   
>>>>       
> 
> 
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/HOW-TO-install-setup-2-instances-of-tomcat-on-same-server-tp19079289p19189074.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by David Smith <dn...@cornell.edu>.
Anything in catalina.out related to the failed startup?

--David

edponce wrote:
> david...
> my only problem now is ....
>
> [root@balder312 ~]# tomcat5-test start
> In the config file
> Starting tomcat5-test:                                     [  FAILED  ]
>
> i cant find what is the problem in the config file? any ideas?
>
>
>
> David Smith-2 wrote:
>   
>>> [root@balder312 rc5.d]# tomcat5-test start
>>> -bash: /usr/bin/tomcat5-test: Permission denied
>>>       
>> You need to add the execute privilege to your tomcat5-test script.  Take 
>> a look at the man page for chmod.
>>
>>     
>>> ...
>>> wich was /etc/tomcat5 (where i have the catalina policies and
>>> jkproperties,
>>> etc) for /etc/tomcat5-test....but that raised other questions should i be
>>> duplicating that folder or my CATALINA_HOME which is /usr/share/tomcat5
>>>       
>> I suspect there are soft links in /etc/tomcat5 (or /etc/tomcat5 itself 
>> is a softlink) to /usr/share/tomcat5.  In that case, duplicate both.  
>> Disk space is generally cheap and tomcat doesn't take that much room.  
>> That would also bolster separation of the dev and production 
>> environments as each should have their own log directories.
>>
>> --David
>>
>> edponce wrote:
>>     
>>> ive created this start script in the /usr/bin/ folder...what i did is
>>> modified the previous path of the original tomcat instance to the new
>>> one...
>>> wich was /etc/tomcat5 (where i have the catalina policies and
>>> jkproperties,
>>> etc) for /etc/tomcat5-test....but that raised other questions should i be
>>> duplicating that folder or my CATALINA_HOME which is /usr/share/tomcat5
>>> and
>>> when I try running the following start up script i am getting this.. any
>>> ideas why?
>>>
>>> [root@balder312 rc5.d]# tomcat5-test start
>>> -bash: /usr/bin/tomcat5-test: Permission denied
>>>
>>> THIS IS MY START UP SCRIPT...which is a modified copy of the original
>>> script
>>> to startup tomcat
>>>
>>> #!/bin/bash
>>> #
>>> # tomcat5      This shell script takes care of starting and stopping
>>> Tomcat
>>> #
>>> # chkconfig: - 80 20
>>> #
>>> ### BEGIN INIT INFO
>>> # Provides: tomcat5
>>> # Required-Start: $network $syslog
>>> # Required-Stop: $network $syslog
>>> # Default-Start:
>>> # Default-Stop:
>>> # Description: Release implementation for Servlet 2.4 and JSP 2.0
>>> # Short-Description: start and stop tomcat
>>> ### END INIT INFO
>>> #
>>> # - originally written by Henri Gomez, Keith Irwin, and Nicolas Mailhot
>>> # - heavily rewritten by Deepak Bhole and Jason Corley
>>> #
>>>
>>> # commented out until the RHEL and FC daemon functions converge
>>> # Source the function library
>>> #if [ -r "/etc/rc.d/init.d/functions" ]; then
>>>     #. /etc/rc.d/init.d/functions
>>> #fi
>>>
>>> NAME="$(basename $0)"
>>> unset ISBOOT
>>> if [ "${NAME:0:1}" = "S" -o "${NAME:0:1}" = "K" ]; then
>>>     NAME="${NAME:3}"
>>>     ISBOOT="1"
>>> fi
>>>
>>> # For SELinux we need to use 'runuser' not 'su'
>>> if [ -x "/sbin/runuser" ]; then
>>>     SU="/sbin/runuser"
>>> else
>>>     SU="su"
>>> fi
>>>
>>> # Get the tomcat config (use this for environment specific settings)
>>> TOMCAT_CFG="/etc/tomcat5/tomcat5.conf"
>>> if [ -r "$TOMCAT_CFG" ]; then
>>>     . ${TOMCAT_CFG}
>>> fi
>>>
>>> # Get instance specific config file
>>> if [ -r "/etc/sysconfig/${NAME}" ]; then
>>>     . /etc/sysconfig/${NAME}
>>> fi
>>>
>>> # Define which connector port to use
>>> CONNECTOR_PORT="${CONNECTOR_PORT:-8080}"
>>>
>>> # Path to the tomcat launch script
>>> TOMCAT_SCRIPT="/usr/bin/tomcat5-test"
>>>
>>> # Path to the script that will refresh jar symlinks on startup
>>> TOMCAT_RELINK_SCRIPT="${CATALINA_HOME}/bin/relink"
>>>
>>> # Tomcat program name
>>> TOMCAT_PROG="$NAME"
>>>        
>>> # Define the tomcat username
>>> TOMCAT_USER="${TOMCAT_USER:-tomcat}"
>>>
>>> # Define the tomcat log file
>>> TOMCAT_LOG="${TOMCAT_LOG:-/etc/tomcat5-test/logs/catalina.out}"
>>>
>>> RETVAL="0"
>>>
>>> # remove when the RHEL and FC daemon functions converge
>>> # (pulled from /etc/rc.d/init.d/functions)
>>> function checkpid() {
>>>     local i
>>>     for i in $* ; do
>>>         if [ -d "/proc/${i}" ]; then
>>>             return 0
>>>         fi
>>>     done
>>>     return 1
>>> }
>>>
>>> # remove when the RHEL and FC daemon functions converge
>>> # (pulled from /etc/rc.d/init.d/functions)
>>> function echo_failure() {
>>>     echo -en "\\033[60G"
>>>     echo -n "[  "
>>>     echo -n $"FAILED"
>>>     echo -n "  ]"
>>>     echo -ne "\r"
>>>     return 1
>>> }
>>>
>>> # remove when the RHEL and FC daemon functions converge
>>> # (pulled from /etc/rc.d/init.d/functions)
>>> function echo_success() {
>>>     echo -en "\\033[60G"
>>>     echo -n "[  "
>>>     echo -n $"OK"
>>>     echo -n "  ]"
>>>     echo -ne "\r"
>>>     return 0
>>> }
>>>
>>> # Look for open ports, as the function name might imply
>>> function findFreePorts() {
>>>     local isSet1="false"
>>>     local isSet2="false"
>>>     local isSet3="false"
>>>     local lower="8000"
>>>     randomPort1="0"
>>>     randomPort2="0"
>>>     randomPort3="0"
>>>     local -a listeners="( $(
>>>                         netstat -ntl | \
>>>                         awk '/^tcp/ {gsub("(.)*:", "", $4); print $4}'
>>>                     ) )"
>>>     while [ "$isSet1" = "false" ] || \
>>>           [ "$isSet2" = "false" ] || \
>>>           [ "$isSet3" = "false" ]; do
>>>         let port="${lower}+${RANDOM:0:4}"
>>>         if [ -z `expr " ${listeners[*]} " : ".*\( $port \).*"` ]; then
>>>             if [ "$isSet1" = "false" ]; then
>>>                 export randomPort1="$port"
>>>                 isSet1="true"
>>>             elif [ "$isSet2" = "false" ]; then
>>>                 export randomPort2="$port"
>>>                 isSet2="true"
>>>             elif [ "$isSet3" = "false" ]; then
>>>                 export randomPort3="$port"
>>>                 isSet3="true"
>>>             fi
>>>         fi
>>>     done
>>> }
>>>
>>> function makeHomeDir() {
>>>     if [ ! -d "$CATALINA_HOME" ]; then
>>>         echo "$CATALINA_HOME does not exist, creating"
>>>         if [ ! -d "/var/lib/${NAME}" ]; then
>>>             mkdir -p /var/lib/${NAME}
>>>             cp -pLR /var/lib/tomcat5-test/* /var/lib/${NAME}
>>>         fi
>>>         mkdir -p $CATALINA_HOME ${CATALINA_HOME}/conf
>>> /var/cache/${NAME}/temp \
>>>             /var/cache/${NAME}/work /var/log/${NAME}
>>>         for i in temp work; do
>>>             ln -fs /var/cache/${NAME}/${i} ${CATALINA_HOME}/${i}
>>>         done
>>>         for i in common server shared webapps; do
>>>             ln -fs /var/lib/${NAME}/${i} ${CATALINA_HOME}/${i}
>>>         done
>>>         ln -fs /var/log/${NAME} ${CATALINA_HOME}/logs
>>>         cp -pLR /etc/tomcat5-test/* ${CATALINA_HOME}/conf/
>>>         cp -pLR /usr/share/tomcat5-test/bin $CATALINA_HOME
>>>         cp -pLR /etc/tomcat5-test/work/* ${CATALINA_HOME}/work/
>>>         chown ${TOMCAT_USER}:${TOMCAT_USER} /var/log/${NAME}
>>>     fi
>>> }
>>>
>>> function parseOptions() {
>>>     options=""
>>>     options="$options $(
>>>                  awk '!/^#/ && !/^$/ { ORS=" "; print "export ", $0, ";"
>>> }'
>>> \
>>>                  $TOMCAT_CFG
>>>              )"
>>>     if [ -r "/etc/sysconfig/${NAME}" ]; then
>>>         options="$options $(
>>>                      awk '!/^#/ && !/^$/ { ORS=" ";
>>>                                            print "export ", $0, ";" }' \
>>>                      /etc/sysconfig/${NAME}
>>>                  )"
>>>     fi
>>>     TOMCAT_SCRIPT="$options $TOMCAT_SCRIPT"
>>> }
>>>
>>> # See how we were called.
>>> function start() {
>>>     echo -n "Starting ${TOMCAT_PROG}: "
>>>     if [ -f "/var/lock/subsys/${NAME}" ] ; then
>>>         if [ -f "/var/run/${NAME}.pid" ]; then
>>>             read kpid < /var/run/${NAME}.pid
>>>                 if checkpid $kpid 2>&1; then
>>>                     echo "$NAME process already running"
>>>                         return -1
>>>                     else
>>>                         echo "lock file found but no process running for"
>>>                         echo "pid $kpid, continuing"
>>>                 fi
>>>         fi
>>>     fi
>>>     export CATALINA_PID="/var/run/${NAME}.pid"
>>>     touch $CATALINA_PID
>>>     chown ${TOMCAT_USER}:${TOMCAT_USER} $CATALINA_PID
>>>     if [ "$CATALINA_HOME" != "/etc/tomcat5-test" ]; then
>>>         # Create a tomcat directory if it doesn't exist
>>>         makeHomeDir
>>>         # If CATALINA_HOME doesn't exist modify port number so that
>>>         # multiple instances don't interfere with each other
>>>         findFreePorts
>>>         sed -i -e "s/8005/${randomPort1}/g" -e
>>> "s/8080/${CONNECTOR_PORT}/g"
>>> \
>>>             -e "s/8009/${randomPort2}/g" -e "s/8443/${randomPort3}/g" \
>>>             ${CATALINA_HOME}/conf/server.xml
>>>     fi
>>>     $TOMCAT_RELINK_SCRIPT
>>>     $SU - $TOMCAT_USER -c "$TOMCAT_SCRIPT start" >> $TOMCAT_LOG 2>&1
>>>     RETVAL="$?"
>>>     if [ "$RETVAL" -eq 0 ]; then
>>>         echo_success
>>>         touch /var/lock/subsys/${NAME}
>>>     else
>>>         echo_failure
>>>     fi
>>>     echo
>>>     return $RETVAL
>>> }
>>>
>>> function status() {
>>>     RETVAL="1"
>>>     if [ -f "/var/run/${NAME}.pid" ]; then
>>>         read kpid < /var/run/${NAME}.pid
>>>         if checkpid $kpid 2>&1; then
>>>             echo "$0 is already running (${kpid})"
>>>             RETVAL="0"
>>>         else
>>>             echo "lock file found but no process running for pid $kpid"
>>>         fi
>>>     else
>>>         pid="$(pgrep -u tomcat java)"
>>>         if [ -n "$pid" ]; then
>>>             echo "$0 running (${pid}) but no PID file exists"
>>>             RETVAL="0"
>>>         else
>>>             echo "$0 is stopped"
>>>         fi
>>>     fi
>>>     return $RETVAL
>>> }
>>>
>>> function stop() {
>>>     local STOP_VERBOSE="false"
>>>     echo -n "Stopping $TOMCAT_PROG: "
>>>     if [ -f "/var/lock/subsys/${NAME}" ]; then
>>>         $SU - $TOMCAT_USER -c "$TOMCAT_SCRIPT stop" >> $TOMCAT_LOG 2>&1
>>>         RETVAL="$?"
>>>         if [ "$RETVAL" -eq "0" ]; then
>>>             count="0"
>>>             if [ -f "/var/run/${NAME}.pid" ]; then
>>>                 read kpid < /var/run/${NAME}.pid
>>>                 until [ "$(ps --pid $kpid | grep -c $kpid)" -eq "0" ] ||
>>> \
>>>                       [ "$count" -gt "$SHUTDOWN_WAIT" ]; do
>>>                     if [ "$STOP_VERBOSE" = "true" ]; then
>>>                         echo -n -e "\nwaiting for processes $kpid to
>>> exit"
>>>                     fi
>>>                     sleep 1
>>>                     let count="${count}+1"
>>>                 done
>>>                 if [ "$count" -gt "$SHUTDOWN_WAIT" ]; then
>>>                     if [ "$STOP_VERBOSE" = "true" ]; then
>>>                         echo -n -e "\nkilling processes which didn't
>>> stop"
>>>                         echo -n -e "after "
>>>                         echo -n "$SHUTDOWN_WAIT seconds"
>>>                     fi
>>>                     kill -9 $kpid
>>>                 fi
>>>                 echo_success
>>>                 if [ "$count" -gt "0" ]; then
>>>                     echo -n -e "\n"
>>>                 fi
>>>             fi
>>>             rm -f /var/lock/subsys/$NAME /var/run/$NAME.pid
>>>         else
>>>             echo_failure
>>>         fi
>>>     fi
>>> }
>>>
>>>
>>> # See how we were called.
>>> case "$1" in
>>>     start)
>>>         parseOptions
>>>         start
>>>         ;;
>>>     stop)
>>>         parseOptions
>>>         stop
>>>         ;;
>>>     restart)
>>>         parseOptions
>>>         stop
>>>         sleep 2    
>>>         start
>>>         ;;
>>>     condrestart)
>>>         if [ -f "/var/run/${NAME}.pid" ]; then
>>>             parseOptions
>>>             stop
>>>             start
>>>         fi
>>>         ;;
>>>     status)
>>>         status
>>>         ;;
>>>     version)
>>>         parseOptions
>>>         "${JAVA_HOME}/bin/java" \
>>>             -classpath "${CATALINA_HOME}/server/lib/catalina.jar" \
>>>             org.apache.catalina.util.ServerInfo
>>>         ;;
>>>     *)
>>>         echo "Usage: $TOMCAT_PROG
>>> {start|stop|restart|condrestart|status|version}"
>>>         exit 1
>>> esac
>>>
>>> exit $RETVAL
>>>
>>>   
>>>       


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by edponce <ed...@appslm.com>.
david...
my only problem now is ....

[root@balder312 ~]# tomcat5-test start
In the config file
Starting tomcat5-test:                                     [  FAILED  ]

i cant find what is the problem in the config file? any ideas?



David Smith-2 wrote:
> 
>>
>> [root@balder312 rc5.d]# tomcat5-test start
>> -bash: /usr/bin/tomcat5-test: Permission denied
> You need to add the execute privilege to your tomcat5-test script.  Take 
> a look at the man page for chmod.
> 
>> ...
>> wich was /etc/tomcat5 (where i have the catalina policies and
>> jkproperties,
>> etc) for /etc/tomcat5-test....but that raised other questions should i be
>> duplicating that folder or my CATALINA_HOME which is /usr/share/tomcat5
> I suspect there are soft links in /etc/tomcat5 (or /etc/tomcat5 itself 
> is a softlink) to /usr/share/tomcat5.  In that case, duplicate both.  
> Disk space is generally cheap and tomcat doesn't take that much room.  
> That would also bolster separation of the dev and production 
> environments as each should have their own log directories.
> 
> --David
> 
> edponce wrote:
>> ive created this start script in the /usr/bin/ folder...what i did is
>> modified the previous path of the original tomcat instance to the new
>> one...
>> wich was /etc/tomcat5 (where i have the catalina policies and
>> jkproperties,
>> etc) for /etc/tomcat5-test....but that raised other questions should i be
>> duplicating that folder or my CATALINA_HOME which is /usr/share/tomcat5
>> and
>> when I try running the following start up script i am getting this.. any
>> ideas why?
>>
>> [root@balder312 rc5.d]# tomcat5-test start
>> -bash: /usr/bin/tomcat5-test: Permission denied
>>
>> THIS IS MY START UP SCRIPT...which is a modified copy of the original
>> script
>> to startup tomcat
>>
>> #!/bin/bash
>> #
>> # tomcat5      This shell script takes care of starting and stopping
>> Tomcat
>> #
>> # chkconfig: - 80 20
>> #
>> ### BEGIN INIT INFO
>> # Provides: tomcat5
>> # Required-Start: $network $syslog
>> # Required-Stop: $network $syslog
>> # Default-Start:
>> # Default-Stop:
>> # Description: Release implementation for Servlet 2.4 and JSP 2.0
>> # Short-Description: start and stop tomcat
>> ### END INIT INFO
>> #
>> # - originally written by Henri Gomez, Keith Irwin, and Nicolas Mailhot
>> # - heavily rewritten by Deepak Bhole and Jason Corley
>> #
>>
>> # commented out until the RHEL and FC daemon functions converge
>> # Source the function library
>> #if [ -r "/etc/rc.d/init.d/functions" ]; then
>>     #. /etc/rc.d/init.d/functions
>> #fi
>>
>> NAME="$(basename $0)"
>> unset ISBOOT
>> if [ "${NAME:0:1}" = "S" -o "${NAME:0:1}" = "K" ]; then
>>     NAME="${NAME:3}"
>>     ISBOOT="1"
>> fi
>>
>> # For SELinux we need to use 'runuser' not 'su'
>> if [ -x "/sbin/runuser" ]; then
>>     SU="/sbin/runuser"
>> else
>>     SU="su"
>> fi
>>
>> # Get the tomcat config (use this for environment specific settings)
>> TOMCAT_CFG="/etc/tomcat5/tomcat5.conf"
>> if [ -r "$TOMCAT_CFG" ]; then
>>     . ${TOMCAT_CFG}
>> fi
>>
>> # Get instance specific config file
>> if [ -r "/etc/sysconfig/${NAME}" ]; then
>>     . /etc/sysconfig/${NAME}
>> fi
>>
>> # Define which connector port to use
>> CONNECTOR_PORT="${CONNECTOR_PORT:-8080}"
>>
>> # Path to the tomcat launch script
>> TOMCAT_SCRIPT="/usr/bin/tomcat5-test"
>>
>> # Path to the script that will refresh jar symlinks on startup
>> TOMCAT_RELINK_SCRIPT="${CATALINA_HOME}/bin/relink"
>>
>> # Tomcat program name
>> TOMCAT_PROG="$NAME"
>>        
>> # Define the tomcat username
>> TOMCAT_USER="${TOMCAT_USER:-tomcat}"
>>
>> # Define the tomcat log file
>> TOMCAT_LOG="${TOMCAT_LOG:-/etc/tomcat5-test/logs/catalina.out}"
>>
>> RETVAL="0"
>>
>> # remove when the RHEL and FC daemon functions converge
>> # (pulled from /etc/rc.d/init.d/functions)
>> function checkpid() {
>>     local i
>>     for i in $* ; do
>>         if [ -d "/proc/${i}" ]; then
>>             return 0
>>         fi
>>     done
>>     return 1
>> }
>>
>> # remove when the RHEL and FC daemon functions converge
>> # (pulled from /etc/rc.d/init.d/functions)
>> function echo_failure() {
>>     echo -en "\\033[60G"
>>     echo -n "[  "
>>     echo -n $"FAILED"
>>     echo -n "  ]"
>>     echo -ne "\r"
>>     return 1
>> }
>>
>> # remove when the RHEL and FC daemon functions converge
>> # (pulled from /etc/rc.d/init.d/functions)
>> function echo_success() {
>>     echo -en "\\033[60G"
>>     echo -n "[  "
>>     echo -n $"OK"
>>     echo -n "  ]"
>>     echo -ne "\r"
>>     return 0
>> }
>>
>> # Look for open ports, as the function name might imply
>> function findFreePorts() {
>>     local isSet1="false"
>>     local isSet2="false"
>>     local isSet3="false"
>>     local lower="8000"
>>     randomPort1="0"
>>     randomPort2="0"
>>     randomPort3="0"
>>     local -a listeners="( $(
>>                         netstat -ntl | \
>>                         awk '/^tcp/ {gsub("(.)*:", "", $4); print $4}'
>>                     ) )"
>>     while [ "$isSet1" = "false" ] || \
>>           [ "$isSet2" = "false" ] || \
>>           [ "$isSet3" = "false" ]; do
>>         let port="${lower}+${RANDOM:0:4}"
>>         if [ -z `expr " ${listeners[*]} " : ".*\( $port \).*"` ]; then
>>             if [ "$isSet1" = "false" ]; then
>>                 export randomPort1="$port"
>>                 isSet1="true"
>>             elif [ "$isSet2" = "false" ]; then
>>                 export randomPort2="$port"
>>                 isSet2="true"
>>             elif [ "$isSet3" = "false" ]; then
>>                 export randomPort3="$port"
>>                 isSet3="true"
>>             fi
>>         fi
>>     done
>> }
>>
>> function makeHomeDir() {
>>     if [ ! -d "$CATALINA_HOME" ]; then
>>         echo "$CATALINA_HOME does not exist, creating"
>>         if [ ! -d "/var/lib/${NAME}" ]; then
>>             mkdir -p /var/lib/${NAME}
>>             cp -pLR /var/lib/tomcat5-test/* /var/lib/${NAME}
>>         fi
>>         mkdir -p $CATALINA_HOME ${CATALINA_HOME}/conf
>> /var/cache/${NAME}/temp \
>>             /var/cache/${NAME}/work /var/log/${NAME}
>>         for i in temp work; do
>>             ln -fs /var/cache/${NAME}/${i} ${CATALINA_HOME}/${i}
>>         done
>>         for i in common server shared webapps; do
>>             ln -fs /var/lib/${NAME}/${i} ${CATALINA_HOME}/${i}
>>         done
>>         ln -fs /var/log/${NAME} ${CATALINA_HOME}/logs
>>         cp -pLR /etc/tomcat5-test/* ${CATALINA_HOME}/conf/
>>         cp -pLR /usr/share/tomcat5-test/bin $CATALINA_HOME
>>         cp -pLR /etc/tomcat5-test/work/* ${CATALINA_HOME}/work/
>>         chown ${TOMCAT_USER}:${TOMCAT_USER} /var/log/${NAME}
>>     fi
>> }
>>
>> function parseOptions() {
>>     options=""
>>     options="$options $(
>>                  awk '!/^#/ && !/^$/ { ORS=" "; print "export ", $0, ";"
>> }'
>> \
>>                  $TOMCAT_CFG
>>              )"
>>     if [ -r "/etc/sysconfig/${NAME}" ]; then
>>         options="$options $(
>>                      awk '!/^#/ && !/^$/ { ORS=" ";
>>                                            print "export ", $0, ";" }' \
>>                      /etc/sysconfig/${NAME}
>>                  )"
>>     fi
>>     TOMCAT_SCRIPT="$options $TOMCAT_SCRIPT"
>> }
>>
>> # See how we were called.
>> function start() {
>>     echo -n "Starting ${TOMCAT_PROG}: "
>>     if [ -f "/var/lock/subsys/${NAME}" ] ; then
>>         if [ -f "/var/run/${NAME}.pid" ]; then
>>             read kpid < /var/run/${NAME}.pid
>>                 if checkpid $kpid 2>&1; then
>>                     echo "$NAME process already running"
>>                         return -1
>>                     else
>>                         echo "lock file found but no process running for"
>>                         echo "pid $kpid, continuing"
>>                 fi
>>         fi
>>     fi
>>     export CATALINA_PID="/var/run/${NAME}.pid"
>>     touch $CATALINA_PID
>>     chown ${TOMCAT_USER}:${TOMCAT_USER} $CATALINA_PID
>>     if [ "$CATALINA_HOME" != "/etc/tomcat5-test" ]; then
>>         # Create a tomcat directory if it doesn't exist
>>         makeHomeDir
>>         # If CATALINA_HOME doesn't exist modify port number so that
>>         # multiple instances don't interfere with each other
>>         findFreePorts
>>         sed -i -e "s/8005/${randomPort1}/g" -e
>> "s/8080/${CONNECTOR_PORT}/g"
>> \
>>             -e "s/8009/${randomPort2}/g" -e "s/8443/${randomPort3}/g" \
>>             ${CATALINA_HOME}/conf/server.xml
>>     fi
>>     $TOMCAT_RELINK_SCRIPT
>>     $SU - $TOMCAT_USER -c "$TOMCAT_SCRIPT start" >> $TOMCAT_LOG 2>&1
>>     RETVAL="$?"
>>     if [ "$RETVAL" -eq 0 ]; then
>>         echo_success
>>         touch /var/lock/subsys/${NAME}
>>     else
>>         echo_failure
>>     fi
>>     echo
>>     return $RETVAL
>> }
>>
>> function status() {
>>     RETVAL="1"
>>     if [ -f "/var/run/${NAME}.pid" ]; then
>>         read kpid < /var/run/${NAME}.pid
>>         if checkpid $kpid 2>&1; then
>>             echo "$0 is already running (${kpid})"
>>             RETVAL="0"
>>         else
>>             echo "lock file found but no process running for pid $kpid"
>>         fi
>>     else
>>         pid="$(pgrep -u tomcat java)"
>>         if [ -n "$pid" ]; then
>>             echo "$0 running (${pid}) but no PID file exists"
>>             RETVAL="0"
>>         else
>>             echo "$0 is stopped"
>>         fi
>>     fi
>>     return $RETVAL
>> }
>>
>> function stop() {
>>     local STOP_VERBOSE="false"
>>     echo -n "Stopping $TOMCAT_PROG: "
>>     if [ -f "/var/lock/subsys/${NAME}" ]; then
>>         $SU - $TOMCAT_USER -c "$TOMCAT_SCRIPT stop" >> $TOMCAT_LOG 2>&1
>>         RETVAL="$?"
>>         if [ "$RETVAL" -eq "0" ]; then
>>             count="0"
>>             if [ -f "/var/run/${NAME}.pid" ]; then
>>                 read kpid < /var/run/${NAME}.pid
>>                 until [ "$(ps --pid $kpid | grep -c $kpid)" -eq "0" ] ||
>> \
>>                       [ "$count" -gt "$SHUTDOWN_WAIT" ]; do
>>                     if [ "$STOP_VERBOSE" = "true" ]; then
>>                         echo -n -e "\nwaiting for processes $kpid to
>> exit"
>>                     fi
>>                     sleep 1
>>                     let count="${count}+1"
>>                 done
>>                 if [ "$count" -gt "$SHUTDOWN_WAIT" ]; then
>>                     if [ "$STOP_VERBOSE" = "true" ]; then
>>                         echo -n -e "\nkilling processes which didn't
>> stop"
>>                         echo -n -e "after "
>>                         echo -n "$SHUTDOWN_WAIT seconds"
>>                     fi
>>                     kill -9 $kpid
>>                 fi
>>                 echo_success
>>                 if [ "$count" -gt "0" ]; then
>>                     echo -n -e "\n"
>>                 fi
>>             fi
>>             rm -f /var/lock/subsys/$NAME /var/run/$NAME.pid
>>         else
>>             echo_failure
>>         fi
>>     fi
>> }
>>
>>
>> # See how we were called.
>> case "$1" in
>>     start)
>>         parseOptions
>>         start
>>         ;;
>>     stop)
>>         parseOptions
>>         stop
>>         ;;
>>     restart)
>>         parseOptions
>>         stop
>>         sleep 2    
>>         start
>>         ;;
>>     condrestart)
>>         if [ -f "/var/run/${NAME}.pid" ]; then
>>             parseOptions
>>             stop
>>             start
>>         fi
>>         ;;
>>     status)
>>         status
>>         ;;
>>     version)
>>         parseOptions
>>         "${JAVA_HOME}/bin/java" \
>>             -classpath "${CATALINA_HOME}/server/lib/catalina.jar" \
>>             org.apache.catalina.util.ServerInfo
>>         ;;
>>     *)
>>         echo "Usage: $TOMCAT_PROG
>> {start|stop|restart|condrestart|status|version}"
>>         exit 1
>> esac
>>
>> exit $RETVAL
>>
>>   
> 
> 
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/HOW-TO-install-setup-2-instances-of-tomcat-on-same-server-tp19079289p19187537.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by David Smith <dn...@cornell.edu>.
>
> [root@balder312 rc5.d]# tomcat5-test start
> -bash: /usr/bin/tomcat5-test: Permission denied
You need to add the execute privilege to your tomcat5-test script.  Take 
a look at the man page for chmod.

> ...
> wich was /etc/tomcat5 (where i have the catalina policies and jkproperties,
> etc) for /etc/tomcat5-test....but that raised other questions should i be
> duplicating that folder or my CATALINA_HOME which is /usr/share/tomcat5
I suspect there are soft links in /etc/tomcat5 (or /etc/tomcat5 itself 
is a softlink) to /usr/share/tomcat5.  In that case, duplicate both.  
Disk space is generally cheap and tomcat doesn't take that much room.  
That would also bolster separation of the dev and production 
environments as each should have their own log directories.

--David

edponce wrote:
> ive created this start script in the /usr/bin/ folder...what i did is
> modified the previous path of the original tomcat instance to the new one...
> wich was /etc/tomcat5 (where i have the catalina policies and jkproperties,
> etc) for /etc/tomcat5-test....but that raised other questions should i be
> duplicating that folder or my CATALINA_HOME which is /usr/share/tomcat5 and
> when I try running the following start up script i am getting this.. any
> ideas why?
>
> [root@balder312 rc5.d]# tomcat5-test start
> -bash: /usr/bin/tomcat5-test: Permission denied
>
> THIS IS MY START UP SCRIPT...which is a modified copy of the original script
> to startup tomcat
>
> #!/bin/bash
> #
> # tomcat5      This shell script takes care of starting and stopping Tomcat
> #
> # chkconfig: - 80 20
> #
> ### BEGIN INIT INFO
> # Provides: tomcat5
> # Required-Start: $network $syslog
> # Required-Stop: $network $syslog
> # Default-Start:
> # Default-Stop:
> # Description: Release implementation for Servlet 2.4 and JSP 2.0
> # Short-Description: start and stop tomcat
> ### END INIT INFO
> #
> # - originally written by Henri Gomez, Keith Irwin, and Nicolas Mailhot
> # - heavily rewritten by Deepak Bhole and Jason Corley
> #
>
> # commented out until the RHEL and FC daemon functions converge
> # Source the function library
> #if [ -r "/etc/rc.d/init.d/functions" ]; then
>     #. /etc/rc.d/init.d/functions
> #fi
>
> NAME="$(basename $0)"
> unset ISBOOT
> if [ "${NAME:0:1}" = "S" -o "${NAME:0:1}" = "K" ]; then
>     NAME="${NAME:3}"
>     ISBOOT="1"
> fi
>
> # For SELinux we need to use 'runuser' not 'su'
> if [ -x "/sbin/runuser" ]; then
>     SU="/sbin/runuser"
> else
>     SU="su"
> fi
>
> # Get the tomcat config (use this for environment specific settings)
> TOMCAT_CFG="/etc/tomcat5/tomcat5.conf"
> if [ -r "$TOMCAT_CFG" ]; then
>     . ${TOMCAT_CFG}
> fi
>
> # Get instance specific config file
> if [ -r "/etc/sysconfig/${NAME}" ]; then
>     . /etc/sysconfig/${NAME}
> fi
>
> # Define which connector port to use
> CONNECTOR_PORT="${CONNECTOR_PORT:-8080}"
>
> # Path to the tomcat launch script
> TOMCAT_SCRIPT="/usr/bin/tomcat5-test"
>
> # Path to the script that will refresh jar symlinks on startup
> TOMCAT_RELINK_SCRIPT="${CATALINA_HOME}/bin/relink"
>
> # Tomcat program name
> TOMCAT_PROG="$NAME"
>        
> # Define the tomcat username
> TOMCAT_USER="${TOMCAT_USER:-tomcat}"
>
> # Define the tomcat log file
> TOMCAT_LOG="${TOMCAT_LOG:-/etc/tomcat5-test/logs/catalina.out}"
>
> RETVAL="0"
>
> # remove when the RHEL and FC daemon functions converge
> # (pulled from /etc/rc.d/init.d/functions)
> function checkpid() {
>     local i
>     for i in $* ; do
>         if [ -d "/proc/${i}" ]; then
>             return 0
>         fi
>     done
>     return 1
> }
>
> # remove when the RHEL and FC daemon functions converge
> # (pulled from /etc/rc.d/init.d/functions)
> function echo_failure() {
>     echo -en "\\033[60G"
>     echo -n "[  "
>     echo -n $"FAILED"
>     echo -n "  ]"
>     echo -ne "\r"
>     return 1
> }
>
> # remove when the RHEL and FC daemon functions converge
> # (pulled from /etc/rc.d/init.d/functions)
> function echo_success() {
>     echo -en "\\033[60G"
>     echo -n "[  "
>     echo -n $"OK"
>     echo -n "  ]"
>     echo -ne "\r"
>     return 0
> }
>
> # Look for open ports, as the function name might imply
> function findFreePorts() {
>     local isSet1="false"
>     local isSet2="false"
>     local isSet3="false"
>     local lower="8000"
>     randomPort1="0"
>     randomPort2="0"
>     randomPort3="0"
>     local -a listeners="( $(
>                         netstat -ntl | \
>                         awk '/^tcp/ {gsub("(.)*:", "", $4); print $4}'
>                     ) )"
>     while [ "$isSet1" = "false" ] || \
>           [ "$isSet2" = "false" ] || \
>           [ "$isSet3" = "false" ]; do
>         let port="${lower}+${RANDOM:0:4}"
>         if [ -z `expr " ${listeners[*]} " : ".*\( $port \).*"` ]; then
>             if [ "$isSet1" = "false" ]; then
>                 export randomPort1="$port"
>                 isSet1="true"
>             elif [ "$isSet2" = "false" ]; then
>                 export randomPort2="$port"
>                 isSet2="true"
>             elif [ "$isSet3" = "false" ]; then
>                 export randomPort3="$port"
>                 isSet3="true"
>             fi
>         fi
>     done
> }
>
> function makeHomeDir() {
>     if [ ! -d "$CATALINA_HOME" ]; then
>         echo "$CATALINA_HOME does not exist, creating"
>         if [ ! -d "/var/lib/${NAME}" ]; then
>             mkdir -p /var/lib/${NAME}
>             cp -pLR /var/lib/tomcat5-test/* /var/lib/${NAME}
>         fi
>         mkdir -p $CATALINA_HOME ${CATALINA_HOME}/conf
> /var/cache/${NAME}/temp \
>             /var/cache/${NAME}/work /var/log/${NAME}
>         for i in temp work; do
>             ln -fs /var/cache/${NAME}/${i} ${CATALINA_HOME}/${i}
>         done
>         for i in common server shared webapps; do
>             ln -fs /var/lib/${NAME}/${i} ${CATALINA_HOME}/${i}
>         done
>         ln -fs /var/log/${NAME} ${CATALINA_HOME}/logs
>         cp -pLR /etc/tomcat5-test/* ${CATALINA_HOME}/conf/
>         cp -pLR /usr/share/tomcat5-test/bin $CATALINA_HOME
>         cp -pLR /etc/tomcat5-test/work/* ${CATALINA_HOME}/work/
>         chown ${TOMCAT_USER}:${TOMCAT_USER} /var/log/${NAME}
>     fi
> }
>
> function parseOptions() {
>     options=""
>     options="$options $(
>                  awk '!/^#/ && !/^$/ { ORS=" "; print "export ", $0, ";" }'
> \
>                  $TOMCAT_CFG
>              )"
>     if [ -r "/etc/sysconfig/${NAME}" ]; then
>         options="$options $(
>                      awk '!/^#/ && !/^$/ { ORS=" ";
>                                            print "export ", $0, ";" }' \
>                      /etc/sysconfig/${NAME}
>                  )"
>     fi
>     TOMCAT_SCRIPT="$options $TOMCAT_SCRIPT"
> }
>
> # See how we were called.
> function start() {
>     echo -n "Starting ${TOMCAT_PROG}: "
>     if [ -f "/var/lock/subsys/${NAME}" ] ; then
>         if [ -f "/var/run/${NAME}.pid" ]; then
>             read kpid < /var/run/${NAME}.pid
>                 if checkpid $kpid 2>&1; then
>                     echo "$NAME process already running"
>                         return -1
>                     else
>                         echo "lock file found but no process running for"
>                         echo "pid $kpid, continuing"
>                 fi
>         fi
>     fi
>     export CATALINA_PID="/var/run/${NAME}.pid"
>     touch $CATALINA_PID
>     chown ${TOMCAT_USER}:${TOMCAT_USER} $CATALINA_PID
>     if [ "$CATALINA_HOME" != "/etc/tomcat5-test" ]; then
>         # Create a tomcat directory if it doesn't exist
>         makeHomeDir
>         # If CATALINA_HOME doesn't exist modify port number so that
>         # multiple instances don't interfere with each other
>         findFreePorts
>         sed -i -e "s/8005/${randomPort1}/g" -e "s/8080/${CONNECTOR_PORT}/g"
> \
>             -e "s/8009/${randomPort2}/g" -e "s/8443/${randomPort3}/g" \
>             ${CATALINA_HOME}/conf/server.xml
>     fi
>     $TOMCAT_RELINK_SCRIPT
>     $SU - $TOMCAT_USER -c "$TOMCAT_SCRIPT start" >> $TOMCAT_LOG 2>&1
>     RETVAL="$?"
>     if [ "$RETVAL" -eq 0 ]; then
>         echo_success
>         touch /var/lock/subsys/${NAME}
>     else
>         echo_failure
>     fi
>     echo
>     return $RETVAL
> }
>
> function status() {
>     RETVAL="1"
>     if [ -f "/var/run/${NAME}.pid" ]; then
>         read kpid < /var/run/${NAME}.pid
>         if checkpid $kpid 2>&1; then
>             echo "$0 is already running (${kpid})"
>             RETVAL="0"
>         else
>             echo "lock file found but no process running for pid $kpid"
>         fi
>     else
>         pid="$(pgrep -u tomcat java)"
>         if [ -n "$pid" ]; then
>             echo "$0 running (${pid}) but no PID file exists"
>             RETVAL="0"
>         else
>             echo "$0 is stopped"
>         fi
>     fi
>     return $RETVAL
> }
>
> function stop() {
>     local STOP_VERBOSE="false"
>     echo -n "Stopping $TOMCAT_PROG: "
>     if [ -f "/var/lock/subsys/${NAME}" ]; then
>         $SU - $TOMCAT_USER -c "$TOMCAT_SCRIPT stop" >> $TOMCAT_LOG 2>&1
>         RETVAL="$?"
>         if [ "$RETVAL" -eq "0" ]; then
>             count="0"
>             if [ -f "/var/run/${NAME}.pid" ]; then
>                 read kpid < /var/run/${NAME}.pid
>                 until [ "$(ps --pid $kpid | grep -c $kpid)" -eq "0" ] || \
>                       [ "$count" -gt "$SHUTDOWN_WAIT" ]; do
>                     if [ "$STOP_VERBOSE" = "true" ]; then
>                         echo -n -e "\nwaiting for processes $kpid to exit"
>                     fi
>                     sleep 1
>                     let count="${count}+1"
>                 done
>                 if [ "$count" -gt "$SHUTDOWN_WAIT" ]; then
>                     if [ "$STOP_VERBOSE" = "true" ]; then
>                         echo -n -e "\nkilling processes which didn't stop"
>                         echo -n -e "after "
>                         echo -n "$SHUTDOWN_WAIT seconds"
>                     fi
>                     kill -9 $kpid
>                 fi
>                 echo_success
>                 if [ "$count" -gt "0" ]; then
>                     echo -n -e "\n"
>                 fi
>             fi
>             rm -f /var/lock/subsys/$NAME /var/run/$NAME.pid
>         else
>             echo_failure
>         fi
>     fi
> }
>
>
> # See how we were called.
> case "$1" in
>     start)
>         parseOptions
>         start
>         ;;
>     stop)
>         parseOptions
>         stop
>         ;;
>     restart)
>         parseOptions
>         stop
>         sleep 2    
>         start
>         ;;
>     condrestart)
>         if [ -f "/var/run/${NAME}.pid" ]; then
>             parseOptions
>             stop
>             start
>         fi
>         ;;
>     status)
>         status
>         ;;
>     version)
>         parseOptions
>         "${JAVA_HOME}/bin/java" \
>             -classpath "${CATALINA_HOME}/server/lib/catalina.jar" \
>             org.apache.catalina.util.ServerInfo
>         ;;
>     *)
>         echo "Usage: $TOMCAT_PROG
> {start|stop|restart|condrestart|status|version}"
>         exit 1
> esac
>
> exit $RETVAL
>
>   


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by edponce <ed...@appslm.com>.

ive created this start script in the /usr/bin/ folder...what i did is
modified the previous path of the original tomcat instance to the new one...
wich was /etc/tomcat5 (where i have the catalina policies and jkproperties,
etc) for /etc/tomcat5-test....but that raised other questions should i be
duplicating that folder or my CATALINA_HOME which is /usr/share/tomcat5 and
when I try running the following start up script i am getting this.. any
ideas why?

[root@balder312 rc5.d]# tomcat5-test start
-bash: /usr/bin/tomcat5-test: Permission denied

THIS IS MY START UP SCRIPT...which is a modified copy of the original script
to startup tomcat

#!/bin/bash
#
# tomcat5      This shell script takes care of starting and stopping Tomcat
#
# chkconfig: - 80 20
#
### BEGIN INIT INFO
# Provides: tomcat5
# Required-Start: $network $syslog
# Required-Stop: $network $syslog
# Default-Start:
# Default-Stop:
# Description: Release implementation for Servlet 2.4 and JSP 2.0
# Short-Description: start and stop tomcat
### END INIT INFO
#
# - originally written by Henri Gomez, Keith Irwin, and Nicolas Mailhot
# - heavily rewritten by Deepak Bhole and Jason Corley
#

# commented out until the RHEL and FC daemon functions converge
# Source the function library
#if [ -r "/etc/rc.d/init.d/functions" ]; then
    #. /etc/rc.d/init.d/functions
#fi

NAME="$(basename $0)"
unset ISBOOT
if [ "${NAME:0:1}" = "S" -o "${NAME:0:1}" = "K" ]; then
    NAME="${NAME:3}"
    ISBOOT="1"
fi

# For SELinux we need to use 'runuser' not 'su'
if [ -x "/sbin/runuser" ]; then
    SU="/sbin/runuser"
else
    SU="su"
fi

# Get the tomcat config (use this for environment specific settings)
TOMCAT_CFG="/etc/tomcat5/tomcat5.conf"
if [ -r "$TOMCAT_CFG" ]; then
    . ${TOMCAT_CFG}
fi

# Get instance specific config file
if [ -r "/etc/sysconfig/${NAME}" ]; then
    . /etc/sysconfig/${NAME}
fi

# Define which connector port to use
CONNECTOR_PORT="${CONNECTOR_PORT:-8080}"

# Path to the tomcat launch script
TOMCAT_SCRIPT="/usr/bin/tomcat5-test"

# Path to the script that will refresh jar symlinks on startup
TOMCAT_RELINK_SCRIPT="${CATALINA_HOME}/bin/relink"

# Tomcat program name
TOMCAT_PROG="$NAME"
       
# Define the tomcat username
TOMCAT_USER="${TOMCAT_USER:-tomcat}"

# Define the tomcat log file
TOMCAT_LOG="${TOMCAT_LOG:-/etc/tomcat5-test/logs/catalina.out}"

RETVAL="0"

# remove when the RHEL and FC daemon functions converge
# (pulled from /etc/rc.d/init.d/functions)
function checkpid() {
    local i
    for i in $* ; do
        if [ -d "/proc/${i}" ]; then
            return 0
        fi
    done
    return 1
}

# remove when the RHEL and FC daemon functions converge
# (pulled from /etc/rc.d/init.d/functions)
function echo_failure() {
    echo -en "\\033[60G"
    echo -n "[  "
    echo -n $"FAILED"
    echo -n "  ]"
    echo -ne "\r"
    return 1
}

# remove when the RHEL and FC daemon functions converge
# (pulled from /etc/rc.d/init.d/functions)
function echo_success() {
    echo -en "\\033[60G"
    echo -n "[  "
    echo -n $"OK"
    echo -n "  ]"
    echo -ne "\r"
    return 0
}

# Look for open ports, as the function name might imply
function findFreePorts() {
    local isSet1="false"
    local isSet2="false"
    local isSet3="false"
    local lower="8000"
    randomPort1="0"
    randomPort2="0"
    randomPort3="0"
    local -a listeners="( $(
                        netstat -ntl | \
                        awk '/^tcp/ {gsub("(.)*:", "", $4); print $4}'
                    ) )"
    while [ "$isSet1" = "false" ] || \
          [ "$isSet2" = "false" ] || \
          [ "$isSet3" = "false" ]; do
        let port="${lower}+${RANDOM:0:4}"
        if [ -z `expr " ${listeners[*]} " : ".*\( $port \).*"` ]; then
            if [ "$isSet1" = "false" ]; then
                export randomPort1="$port"
                isSet1="true"
            elif [ "$isSet2" = "false" ]; then
                export randomPort2="$port"
                isSet2="true"
            elif [ "$isSet3" = "false" ]; then
                export randomPort3="$port"
                isSet3="true"
            fi
        fi
    done
}

function makeHomeDir() {
    if [ ! -d "$CATALINA_HOME" ]; then
        echo "$CATALINA_HOME does not exist, creating"
        if [ ! -d "/var/lib/${NAME}" ]; then
            mkdir -p /var/lib/${NAME}
            cp -pLR /var/lib/tomcat5-test/* /var/lib/${NAME}
        fi
        mkdir -p $CATALINA_HOME ${CATALINA_HOME}/conf
/var/cache/${NAME}/temp \
            /var/cache/${NAME}/work /var/log/${NAME}
        for i in temp work; do
            ln -fs /var/cache/${NAME}/${i} ${CATALINA_HOME}/${i}
        done
        for i in common server shared webapps; do
            ln -fs /var/lib/${NAME}/${i} ${CATALINA_HOME}/${i}
        done
        ln -fs /var/log/${NAME} ${CATALINA_HOME}/logs
        cp -pLR /etc/tomcat5-test/* ${CATALINA_HOME}/conf/
        cp -pLR /usr/share/tomcat5-test/bin $CATALINA_HOME
        cp -pLR /etc/tomcat5-test/work/* ${CATALINA_HOME}/work/
        chown ${TOMCAT_USER}:${TOMCAT_USER} /var/log/${NAME}
    fi
}

function parseOptions() {
    options=""
    options="$options $(
                 awk '!/^#/ && !/^$/ { ORS=" "; print "export ", $0, ";" }'
\
                 $TOMCAT_CFG
             )"
    if [ -r "/etc/sysconfig/${NAME}" ]; then
        options="$options $(
                     awk '!/^#/ && !/^$/ { ORS=" ";
                                           print "export ", $0, ";" }' \
                     /etc/sysconfig/${NAME}
                 )"
    fi
    TOMCAT_SCRIPT="$options $TOMCAT_SCRIPT"
}

# See how we were called.
function start() {
    echo -n "Starting ${TOMCAT_PROG}: "
    if [ -f "/var/lock/subsys/${NAME}" ] ; then
        if [ -f "/var/run/${NAME}.pid" ]; then
            read kpid < /var/run/${NAME}.pid
                if checkpid $kpid 2>&1; then
                    echo "$NAME process already running"
                        return -1
                    else
                        echo "lock file found but no process running for"
                        echo "pid $kpid, continuing"
                fi
        fi
    fi
    export CATALINA_PID="/var/run/${NAME}.pid"
    touch $CATALINA_PID
    chown ${TOMCAT_USER}:${TOMCAT_USER} $CATALINA_PID
    if [ "$CATALINA_HOME" != "/etc/tomcat5-test" ]; then
        # Create a tomcat directory if it doesn't exist
        makeHomeDir
        # If CATALINA_HOME doesn't exist modify port number so that
        # multiple instances don't interfere with each other
        findFreePorts
        sed -i -e "s/8005/${randomPort1}/g" -e "s/8080/${CONNECTOR_PORT}/g"
\
            -e "s/8009/${randomPort2}/g" -e "s/8443/${randomPort3}/g" \
            ${CATALINA_HOME}/conf/server.xml
    fi
    $TOMCAT_RELINK_SCRIPT
    $SU - $TOMCAT_USER -c "$TOMCAT_SCRIPT start" >> $TOMCAT_LOG 2>&1
    RETVAL="$?"
    if [ "$RETVAL" -eq 0 ]; then
        echo_success
        touch /var/lock/subsys/${NAME}
    else
        echo_failure
    fi
    echo
    return $RETVAL
}

function status() {
    RETVAL="1"
    if [ -f "/var/run/${NAME}.pid" ]; then
        read kpid < /var/run/${NAME}.pid
        if checkpid $kpid 2>&1; then
            echo "$0 is already running (${kpid})"
            RETVAL="0"
        else
            echo "lock file found but no process running for pid $kpid"
        fi
    else
        pid="$(pgrep -u tomcat java)"
        if [ -n "$pid" ]; then
            echo "$0 running (${pid}) but no PID file exists"
            RETVAL="0"
        else
            echo "$0 is stopped"
        fi
    fi
    return $RETVAL
}

function stop() {
    local STOP_VERBOSE="false"
    echo -n "Stopping $TOMCAT_PROG: "
    if [ -f "/var/lock/subsys/${NAME}" ]; then
        $SU - $TOMCAT_USER -c "$TOMCAT_SCRIPT stop" >> $TOMCAT_LOG 2>&1
        RETVAL="$?"
        if [ "$RETVAL" -eq "0" ]; then
            count="0"
            if [ -f "/var/run/${NAME}.pid" ]; then
                read kpid < /var/run/${NAME}.pid
                until [ "$(ps --pid $kpid | grep -c $kpid)" -eq "0" ] || \
                      [ "$count" -gt "$SHUTDOWN_WAIT" ]; do
                    if [ "$STOP_VERBOSE" = "true" ]; then
                        echo -n -e "\nwaiting for processes $kpid to exit"
                    fi
                    sleep 1
                    let count="${count}+1"
                done
                if [ "$count" -gt "$SHUTDOWN_WAIT" ]; then
                    if [ "$STOP_VERBOSE" = "true" ]; then
                        echo -n -e "\nkilling processes which didn't stop"
                        echo -n -e "after "
                        echo -n "$SHUTDOWN_WAIT seconds"
                    fi
                    kill -9 $kpid
                fi
                echo_success
                if [ "$count" -gt "0" ]; then
                    echo -n -e "\n"
                fi
            fi
            rm -f /var/lock/subsys/$NAME /var/run/$NAME.pid
        else
            echo_failure
        fi
    fi
}


# See how we were called.
case "$1" in
    start)
        parseOptions
        start
        ;;
    stop)
        parseOptions
        stop
        ;;
    restart)
        parseOptions
        stop
        sleep 2    
        start
        ;;
    condrestart)
        if [ -f "/var/run/${NAME}.pid" ]; then
            parseOptions
            stop
            start
        fi
        ;;
    status)
        status
        ;;
    version)
        parseOptions
        "${JAVA_HOME}/bin/java" \
            -classpath "${CATALINA_HOME}/server/lib/catalina.jar" \
            org.apache.catalina.util.ServerInfo
        ;;
    *)
        echo "Usage: $TOMCAT_PROG
{start|stop|restart|condrestart|status|version}"
        exit 1
esac

exit $RETVAL

-- 
View this message in context: http://www.nabble.com/HOW-TO-install-setup-2-instances-of-tomcat-on-same-server-tp19079289p19182501.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by David Smith <dn...@cornell.edu>.
Ok ... forgive me if this was posted already, but what OS do you have 
and how are you starting the production instance?  Windows systems 
starting the production tomcat as a service is different than Linux/Unix 
systems starting tomcat with jsvc or a service script.

--David

edponce wrote:
> David,
> Thanks for replying. I've duplicated my tomcat folder and renamed it and ive
> changed the 2 <connector> and the <server> shut down port. But i dunno how
> to start the duplicate instance. how can i do that!
> Thank you,
> Eduardo
>
>
> David Smith-2 wrote:
>   
>>> Can any one please guide me on the correct direction so that i don't 
>>> mess up
>>> anything! I've never worked with Tomcat that is why i have no idea on 
>>> how to
>>> do it. 
>>>       
>> Yes.  Just open the server.xml file in tomcat's conf directory and look 
>> for the <Connector ... /> elements that aren't wrapped in xml comments ( 
>> <!-- --> ).  In those you will see port="8009" or whatever.  Just make 
>> sure they are all unique in both server.xmls.  Also change the port 
>> number in the <Server ... > element so it doesn't conflict with the 
>> other.  As an aside, I would recommend putting together a new 
>> server.xml, removing all the xml comments to make an easier to read 
>> server.xml.  Keep the original around for documentation/reference as 
>> server.original.xml or whatever you like.
>>
>>     
>>> You do not necessarily need two separate instances of Tomcat.
>>> Under Tomcat, each application can be started and stopped (and even a 
>>> new version reloaded) without stopping the Tomcat server. 
>>>       
>> Technically yes, but if you restart the app enough times you will run 
>> out of memory and need to restart the service.  The max webapp restart 
>> count is dependent on how big the webapp is as well as how much extra 
>> memory tomcat has.  It's better to occasionally restart a dev instance 
>> of tomcat than bounce a production instance when it stops responding.
>>
>> --David
>>
>> André Warnier wrote:
>>     
>>> André Warnier wrote:
>>>       
>>>> edponce wrote:
>>>>         
>>>>> I know this question has been asked a lot but I've read different 
>>>>> solutions
>>>>> depending on the needs of the problem. I need to have 2 instances of 
>>>>> tomcat
>>>>> on the same server for the same application. One would be for 
>>>>> production and
>>>>> the other for development (which can be start and stopped whenever 
>>>>> without
>>>>> affecting the production one).
>>>>>           
>>>>>> From my understanding i need to have each instance on different 
>>>>>> ports and
>>>>>>             
>>>>> modifying some other files but what I am missing is the technical 
>>>>> things.
>>>>> Can any one please guide me on the correct direction so that i don't 
>>>>> mess up
>>>>> anything! I've never worked with Tomcat that is why i have no idea 
>>>>> on how to
>>>>> do it.
>>>>>           
>>> Ok, serious now.
>>> This is at the same time some information for you, the Original Poster 
>>> (OP), and a question for the others on this list more Tomcat-qualified 
>>> than I am.  But we've got to start somewhere...
>>>
>>> To the OP (and the others to contradict me if I'm wrong) :
>>>
>>> You do not necessarily need two separate instances of Tomcat.
>>> Under Tomcat, each application can be started and stopped (and even a 
>>> new version reloaded) without stopping the Tomcat server.
>>> You would just need to "name" your applications differently.
>>> (like "http://host.mycompany.com/real-app" and 
>>> "http://host.mycompany.com/test-app").
>>>
>>> There also exists the possibility to run one Tomcat with different 
>>> "Virtual Hosts", on the same port 80.
>>> Each one of these virtual hosts would have a different "DNS name" 
>>> (like  "realserver.mycompany.com" and "testserver.mycompany.com") and 
>>> could have a different directory where the applications reside, but 
>>> the application itself would be named the same way.
>>>
>>> I am mentioning the above two possibilities because, you knowing not 
>>> much about Tomcat to start witj, either one of the above is probably 
>>> easier to set up than two separate Tomcat instances.
>>>
>>> The difference between the above solutions and two really separate 
>>> Tomcat instances would be if the test application could really crash 
>>> the whole server, in which case you may not like one of the above 
>>> solutions.
>>>
>>> Comments anyone ?
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To start a new topic, e-mail: users@tomcat.apache.org
>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>
>>>       
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail: users@tomcat.apache.org
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>>
>>     
>
>   


-- 
David Smith
Programmer/Analyst
College of Agriculture and Life Sciences
Cornell University
B32 Morrison Hall
Ithaca, NY 14853
Phone: (607) 255-4521


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by edponce <ed...@appslm.com>.
David,
Thanks for replying. I've duplicated my tomcat folder and renamed it and ive
changed the 2 <connector> and the <server> shut down port. But i dunno how
to start the duplicate instance. how can i do that!
Thank you,
Eduardo


David Smith-2 wrote:
> 
>> Can any one please guide me on the correct direction so that i don't 
>> mess up
>> anything! I've never worked with Tomcat that is why i have no idea on 
>> how to
>> do it. 
> Yes.  Just open the server.xml file in tomcat's conf directory and look 
> for the <Connector ... /> elements that aren't wrapped in xml comments ( 
> <!-- --> ).  In those you will see port="8009" or whatever.  Just make 
> sure they are all unique in both server.xmls.  Also change the port 
> number in the <Server ... > element so it doesn't conflict with the 
> other.  As an aside, I would recommend putting together a new 
> server.xml, removing all the xml comments to make an easier to read 
> server.xml.  Keep the original around for documentation/reference as 
> server.original.xml or whatever you like.
> 
>> You do not necessarily need two separate instances of Tomcat.
>> Under Tomcat, each application can be started and stopped (and even a 
>> new version reloaded) without stopping the Tomcat server. 
> Technically yes, but if you restart the app enough times you will run 
> out of memory and need to restart the service.  The max webapp restart 
> count is dependent on how big the webapp is as well as how much extra 
> memory tomcat has.  It's better to occasionally restart a dev instance 
> of tomcat than bounce a production instance when it stops responding.
> 
> --David
> 
> André Warnier wrote:
>> André Warnier wrote:
>>> edponce wrote:
>>>> I know this question has been asked a lot but I've read different 
>>>> solutions
>>>> depending on the needs of the problem. I need to have 2 instances of 
>>>> tomcat
>>>> on the same server for the same application. One would be for 
>>>> production and
>>>> the other for development (which can be start and stopped whenever 
>>>> without
>>>> affecting the production one).
>>>>> From my understanding i need to have each instance on different 
>>>>> ports and
>>>> modifying some other files but what I am missing is the technical 
>>>> things.
>>>> Can any one please guide me on the correct direction so that i don't 
>>>> mess up
>>>> anything! I've never worked with Tomcat that is why i have no idea 
>>>> on how to
>>>> do it.
>>>
>>
>> Ok, serious now.
>> This is at the same time some information for you, the Original Poster 
>> (OP), and a question for the others on this list more Tomcat-qualified 
>> than I am.  But we've got to start somewhere...
>>
>> To the OP (and the others to contradict me if I'm wrong) :
>>
>> You do not necessarily need two separate instances of Tomcat.
>> Under Tomcat, each application can be started and stopped (and even a 
>> new version reloaded) without stopping the Tomcat server.
>> You would just need to "name" your applications differently.
>> (like "http://host.mycompany.com/real-app" and 
>> "http://host.mycompany.com/test-app").
>>
>> There also exists the possibility to run one Tomcat with different 
>> "Virtual Hosts", on the same port 80.
>> Each one of these virtual hosts would have a different "DNS name" 
>> (like  "realserver.mycompany.com" and "testserver.mycompany.com") and 
>> could have a different directory where the applications reside, but 
>> the application itself would be named the same way.
>>
>> I am mentioning the above two possibilities because, you knowing not 
>> much about Tomcat to start witj, either one of the above is probably 
>> easier to set up than two separate Tomcat instances.
>>
>> The difference between the above solutions and two really separate 
>> Tomcat instances would be if the test application could really crash 
>> the whole server, in which case you may not like one of the above 
>> solutions.
>>
>> Comments anyone ?
>>
>>
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail: users@tomcat.apache.org
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
> 
> 
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/HOW-TO-install-setup-2-instances-of-tomcat-on-same-server-tp19079289p19152853.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by David Smith <dn...@cornell.edu>.
> Can any one please guide me on the correct direction so that i don't 
> mess up
> anything! I've never worked with Tomcat that is why i have no idea on 
> how to
> do it. 
Yes.  Just open the server.xml file in tomcat's conf directory and look 
for the <Connector ... /> elements that aren't wrapped in xml comments ( 
<!-- --> ).  In those you will see port="8009" or whatever.  Just make 
sure they are all unique in both server.xmls.  Also change the port 
number in the <Server ... > element so it doesn't conflict with the 
other.  As an aside, I would recommend putting together a new 
server.xml, removing all the xml comments to make an easier to read 
server.xml.  Keep the original around for documentation/reference as 
server.original.xml or whatever you like.

> You do not necessarily need two separate instances of Tomcat.
> Under Tomcat, each application can be started and stopped (and even a 
> new version reloaded) without stopping the Tomcat server. 
Technically yes, but if you restart the app enough times you will run 
out of memory and need to restart the service.  The max webapp restart 
count is dependent on how big the webapp is as well as how much extra 
memory tomcat has.  It's better to occasionally restart a dev instance 
of tomcat than bounce a production instance when it stops responding.

--David

André Warnier wrote:
> André Warnier wrote:
>> edponce wrote:
>>> I know this question has been asked a lot but I've read different 
>>> solutions
>>> depending on the needs of the problem. I need to have 2 instances of 
>>> tomcat
>>> on the same server for the same application. One would be for 
>>> production and
>>> the other for development (which can be start and stopped whenever 
>>> without
>>> affecting the production one).
>>>> From my understanding i need to have each instance on different 
>>>> ports and
>>> modifying some other files but what I am missing is the technical 
>>> things.
>>> Can any one please guide me on the correct direction so that i don't 
>>> mess up
>>> anything! I've never worked with Tomcat that is why i have no idea 
>>> on how to
>>> do it.
>>
>
> Ok, serious now.
> This is at the same time some information for you, the Original Poster 
> (OP), and a question for the others on this list more Tomcat-qualified 
> than I am.  But we've got to start somewhere...
>
> To the OP (and the others to contradict me if I'm wrong) :
>
> You do not necessarily need two separate instances of Tomcat.
> Under Tomcat, each application can be started and stopped (and even a 
> new version reloaded) without stopping the Tomcat server.
> You would just need to "name" your applications differently.
> (like "http://host.mycompany.com/real-app" and 
> "http://host.mycompany.com/test-app").
>
> There also exists the possibility to run one Tomcat with different 
> "Virtual Hosts", on the same port 80.
> Each one of these virtual hosts would have a different "DNS name" 
> (like  "realserver.mycompany.com" and "testserver.mycompany.com") and 
> could have a different directory where the applications reside, but 
> the application itself would be named the same way.
>
> I am mentioning the above two possibilities because, you knowing not 
> much about Tomcat to start witj, either one of the above is probably 
> easier to set up than two separate Tomcat instances.
>
> The difference between the above solutions and two really separate 
> Tomcat instances would be if the test application could really crash 
> the whole server, in which case you may not like one of the above 
> solutions.
>
> Comments anyone ?
>
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by edponce <ed...@appslm.com>.
one last question tom, do i need to rename the other tomcat5 archives to
whatever name I choose for my 2nd instance.
Eduardo



edponce wrote:
> 
> Tom,
> Thanks for the aclarations and I just have one last question. How do I
> start the second instance withough affecting the 1st one? becuase if i do
> tomcat5 start/stop that will kill both instances right?
> Thank you,
> Eduardo
> 
> 
> Thomas Haines-2 wrote:
>> 
>> Hi edponce
>> 
>>> so if i understood everything i just need to duplicate the tomcat  
>>> folder, do i need to rename it or something?
>> 
>> Yes, you just need to duplicate it.  You can call the duplicate folder  
>> whatever you like.
>> 
>>> Then "On the duplicated tomcat
>>> directory, you need to edit the server.xml file so that the second
>>> server.xml as unique ports for the shutdown port, the interface port
>>> (eg 8080 could become 8081 etc)" and how can i check if i've done this
>>> correctly? that both instances are running?
>> 
>> Yes.  Check your logs during startup and shutdown also for any  
>> warnings or port binding issues.
>> 
>>>
>>> Thanks for your help...
>> 
>> You're welcome.
>> 
>> Cheers
>> Tom
>> 
>> 
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail: users@tomcat.apache.org
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>> 
>> 
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/HOW-TO-install-setup-2-instances-of-tomcat-on-same-server-tp19079289p19146848.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by edponce <ed...@appslm.com>.
Tom,
Thanks for the aclarations and I just have one last question. How do I start
the second instance withough affecting the 1st one? becuase if i do tomcat5
start/stop that will kill both instances right?
Thank you,
Eduardo


Thomas Haines-2 wrote:
> 
> Hi edponce
> 
>> so if i understood everything i just need to duplicate the tomcat  
>> folder, do i need to rename it or something?
> 
> Yes, you just need to duplicate it.  You can call the duplicate folder  
> whatever you like.
> 
>> Then "On the duplicated tomcat
>> directory, you need to edit the server.xml file so that the second
>> server.xml as unique ports for the shutdown port, the interface port
>> (eg 8080 could become 8081 etc)" and how can i check if i've done this
>> correctly? that both instances are running?
> 
> Yes.  Check your logs during startup and shutdown also for any  
> warnings or port binding issues.
> 
>>
>> Thanks for your help...
> 
> You're welcome.
> 
> Cheers
> Tom
> 
> 
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/HOW-TO-install-setup-2-instances-of-tomcat-on-same-server-tp19079289p19145878.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by edponce <ed...@appslm.com>.
Tom, ive done everything as youve indicated and when i run my script i get
this error that cant debug, any ideas?

[root@balder312 ~]# tomcat5-test start
In the config file
Starting tomcat5-test:                                     [  FAILED  ]

====================this is my script ======================

#!/bin/bash
#
# tomcat5      This shell script takes care of starting and stopping Tomcat
#
# chkconfig: - 80 20
#
### BEGIN INIT INFO
# Provides: tomcat5
# Required-Start: $network $syslog
# Required-Stop: $network $syslog
# Default-Start:
# Default-Stop:
# Description: Release implementation for Servlet 2.4 and JSP 2.0
# Short-Description: start and stop tomcat
### END INIT INFO
#
# - originally written by Henri Gomez, Keith Irwin, and Nicolas Mailhot
# - heavily rewritten by Deepak Bhole and Jason Corley
#

# commented out until the RHEL and FC daemon functions converge
# Source the function library
#if [ -r "/etc/rc.d/init.d/functions" ]; then
    #. /etc/rc.d/init.d/functions
#fi

NAME="$(basename $0)"
unset ISBOOT
if [ "${NAME:0:1}" = "S" -o "${NAME:0:1}" = "K" ]; then
    NAME="${NAME:3}"
    ISBOOT="1"
fi

# For SELinux we need to use 'runuser' not 'su'
if [ -x "/sbin/runuser" ]; then
    SU="/sbin/runuser"
else
    SU="su"
fi

# Get the tomcat config (use this for environment specific settings)
TOMCAT_CFG="/etc/tomcat5/tomcat5.conf"
if [ -r "$TOMCAT_CFG" ]; then
    . ${TOMCAT_CFG}
fi

# Get instance specific config file
if [ -r "/etc/sysconfig/${NAME}" ]; then
    . /etc/sysconfig/${NAME}
fi

# Define which connector port to use
CONNECTOR_PORT="${CONNECTOR_PORT:-8080}"

# Path to the tomcat launch script
TOMCAT_SCRIPT="/usr/bin/tomcat5-test"

# Path to the script that will refresh jar symlinks on startup
TOMCAT_RELINK_SCRIPT="${CATALINA_HOME}/bin/relink"

# Tomcat program name
TOMCAT_PROG="$NAME"
       
# Define the tomcat username
TOMCAT_USER="${TOMCAT_USER:-tomcat}"

# Define the tomcat log file
TOMCAT_LOG="${TOMCAT_LOG:-/usr/share/tomcat5-test/logs/logscatalina.out}"

RETVAL="0"

# remove when the RHEL and FC daemon functions converge
# (pulled from /etc/rc.d/init.d/functions)
function checkpid() {
    local i
    for i in $* ; do
        if [ -d "/proc/${i}" ]; then
            return 0
        fi
    done
    return 1
}

# remove when the RHEL and FC daemon functions converge
# (pulled from /etc/rc.d/init.d/functions)
function echo_failure() {
    echo -en "\\033[60G"
    echo -n "[  "
    echo -n $"FAILED"
    echo -n "  ]"
    echo -ne "\r"
    return 1
}

# remove when the RHEL and FC daemon functions converge
# (pulled from /etc/rc.d/init.d/functions)
function echo_success() {
    echo -en "\\033[60G"
    echo -n "[  "
    echo -n $"OK"
    echo -n "  ]"
    echo -ne "\r"
    return 0
}

# Look for open ports, as the function name might imply
function findFreePorts() {
    local isSet1="false"
    local isSet2="false"
    local isSet3="false"
    local lower="8000"
    randomPort1="0"
    randomPort2="0"
    randomPort3="0"
    local -a listeners="( $(
                        netstat -ntl | \
                        awk '/^tcp/ {gsub("(.)*:", "", $4); print $4}'
                    ) )"
    while [ "$isSet1" = "false" ] || \
          [ "$isSet2" = "false" ] || \
          [ "$isSet3" = "false" ]; do
        let port="${lower}+${RANDOM:0:4}"
        if [ -z `expr " ${listeners[*]} " : ".*\( $port \).*"` ]; then
            if [ "$isSet1" = "false" ]; then
                export randomPort1="$port"
                isSet1="true"
            elif [ "$isSet2" = "false" ]; then
                export randomPort2="$port"
                isSet2="true"
            elif [ "$isSet3" = "false" ]; then
                export randomPort3="$port"
                isSet3="true"
            fi
        fi
    done
}

function makeHomeDir() {
    if [ ! -d "$CATALINA_HOME" ]; then
        echo "$CATALINA_HOME does not exist, creating"
        if [ ! -d "/var/lib/${NAME}" ]; then
            mkdir -p /var/lib/${NAME}
            cp -pLR /var/lib/tomcat5-test/* /var/lib/${NAME}
        fi
        mkdir -p $CATALINA_HOME ${CATALINA_HOME}/conf
/var/cache/${NAME}/temp \
            /var/cache/${NAME}/work /var/log/${NAME}
        for i in temp work; do
            ln -fs /var/cache/${NAME}/${i} ${CATALINA_HOME}/${i}
        done
        for i in common server shared webapps; do
            ln -fs /var/lib/${NAME}/${i} ${CATALINA_HOME}/${i}
        done
        ln -fs /var/log/${NAME} ${CATALINA_HOME}/logs
        cp -pLR /usr/share/tomcat5-test/* ${CATALINA_HOME}/conf/
        cp -pLR /usr/share/tomcat5-test/bin $CATALINA_HOME
        cp -pLR /usr/share/tomcat5-test/* ${CATALINA_HOME}/work/
        chown ${TOMCAT_USER}:${TOMCAT_USER} /var/log/${NAME}
    fi
}

function parseOptions() {
    options=""
    options="$options $(
                 awk '!/^#/ && !/^$/ { ORS=" "; print "export ", $0, ";" }'
\
                 $TOMCAT_CFG
             )"
    if [ -r "/etc/sysconfig/${NAME}" ]; then
        options="$options $(
                     awk '!/^#/ && !/^$/ { ORS=" ";
                                           print "export ", $0, ";" }' \
                     /etc/sysconfig/${NAME}
                 )"
    fi
    TOMCAT_SCRIPT="$options $TOMCAT_SCRIPT"
}

# See how we were called.
function start() {
    echo -n "Starting ${TOMCAT_PROG}: "
    if [ -f "/var/lock/subsys/${NAME}" ] ; then
        if [ -f "/var/run/${NAME}.pid" ]; then
            read kpid < /var/run/${NAME}.pid
                if checkpid $kpid 2>&1; then
                    echo "$NAME process already running"
                        return -1
                    else
                        echo "lock file found but no process running for"
                        echo "pid $kpid, continuing"
                fi
        fi
    fi
    export CATALINA_PID="/var/run/${NAME}.pid"
    touch $CATALINA_PID
    chown ${TOMCAT_USER}:${TOMCAT_USER} $CATALINA_PID
    if [ "$CATALINA_HOME" != "/usr/share/tomcat5-test" ]; then
        # Create a tomcat directory if it doesn't exist
        makeHomeDir
        # If CATALINA_HOME doesn't exist modify port number so that
        # multiple instances don't interfere with each other
        findFreePorts
        sed -i -e "s/8005/${randomPort1}/g" -e "s/8080/${CONNECTOR_PORT}/g"
\
            -e "s/8009/${randomPort2}/g" -e "s/8443/${randomPort3}/g" \
            ${CATALINA_HOME}/conf/server.xml
    fi
    $TOMCAT_RELINK_SCRIPT
    $SU - $TOMCAT_USER -c "$TOMCAT_SCRIPT start" >> $TOMCAT_LOG 2>&1
    RETVAL="$?"
    if [ "$RETVAL" -eq 0 ]; then
        echo_success
        touch /var/lock/subsys/${NAME}
    else
        echo_failure
    fi
    echo
    return $RETVAL
}

function status() {
    RETVAL="1"
    if [ -f "/var/run/${NAME}.pid" ]; then
        read kpid < /var/run/${NAME}.pid
        if checkpid $kpid 2>&1; then
            echo "$0 is already running (${kpid})"
            RETVAL="0"
        else
            echo "lock file found but no process running for pid $kpid"
        fi
    else
        pid="$(pgrep -u tomcat java)"
        if [ -n "$pid" ]; then
            echo "$0 running (${pid}) but no PID file exists"
            RETVAL="0"
        else
            echo "$0 is stopped"
        fi
    fi
    return $RETVAL
}

function stop() {
    local STOP_VERBOSE="false"
    echo -n "Stopping $TOMCAT_PROG: "
    if [ -f "/var/lock/subsys/${NAME}" ]; then
        $SU - $TOMCAT_USER -c "$TOMCAT_SCRIPT stop" >> $TOMCAT_LOG 2>&1
        RETVAL="$?"
        if [ "$RETVAL" -eq "0" ]; then
            count="0"
            if [ -f "/var/run/${NAME}.pid" ]; then
                read kpid < /var/run/${NAME}.pid
                until [ "$(ps --pid $kpid | grep -c $kpid)" -eq "0" ] || \
                      [ "$count" -gt "$SHUTDOWN_WAIT" ]; do
                    if [ "$STOP_VERBOSE" = "true" ]; then
                        echo -n -e "\nwaiting for processes $kpid to exit"
                    fi
                    sleep 1
                    let count="${count}+1"
                done
                if [ "$count" -gt "$SHUTDOWN_WAIT" ]; then
                    if [ "$STOP_VERBOSE" = "true" ]; then
                        echo -n -e "\nkilling processes which didn't stop"
                        echo -n -e "after "
                        echo -n "$SHUTDOWN_WAIT seconds"
                    fi
                    kill -9 $kpid
                fi
                echo_success
                if [ "$count" -gt "0" ]; then
                    echo -n -e "\n"
                fi
            fi
            rm -f /var/lock/subsys/$NAME /var/run/$NAME.pid
        else
            echo_failure
        fi
    fi
}


# See how we were called.
case "$1" in
    start)
        parseOptions
        start
        ;;
    stop)
        parseOptions
        stop
        ;;
    restart)
        parseOptions
        stop
        sleep 2    
        start
        ;;
    condrestart)
        if [ -f "/var/run/${NAME}.pid" ]; then
            parseOptions
            stop
            start
        fi
        ;;
    status)
        status
        ;;
    version)
        parseOptions
        "${JAVA_HOME}/bin/java" \
            -classpath "${CATALINA_HOME}/server/lib/catalina.jar" \
            org.apache.catalina.util.ServerInfo
        ;;
    *)
        echo "Usage: $TOMCAT_PROG
{start|stop|restart|condrestart|status|version}"
        exit 1
esac

exit $RETVAL 

Thank you,



Thomas Haines-2 wrote:
> 
> Hi edponce
> 
>> so if i understood everything i just need to duplicate the tomcat  
>> folder, do i need to rename it or something?
> 
> Yes, you just need to duplicate it.  You can call the duplicate folder  
> whatever you like.
> 
>> Then "On the duplicated tomcat
>> directory, you need to edit the server.xml file so that the second
>> server.xml as unique ports for the shutdown port, the interface port
>> (eg 8080 could become 8081 etc)" and how can i check if i've done this
>> correctly? that both instances are running?
> 
> Yes.  Check your logs during startup and shutdown also for any  
> warnings or port binding issues.
> 
>>
>> Thanks for your help...
> 
> You're welcome.
> 
> Cheers
> Tom
> 
> 
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/HOW-TO-install-setup-2-instances-of-tomcat-on-same-server-tp19079289p19187723.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by edponce <ed...@appslm.com>.
Tom,
ive created this start script...what i did is modified the previous path of
the original tomcat instance to the new one... wich was /etc/tomcat5 (where
i have the catalina policies and jkproperties, etc) for /etc/tomcat5....but
that raised other questions should i be duplicating that folder or my
CATALINA_HOME which is /usr/share/tomcat5 and when I try running the
following start up script i am getting this.. any ideas why?

[root@balder312 rc5.d]# tomcat5-test start
-bash: /usr/bin/tomcat5-test: Permission denied

THIS IS MY START UP SCRIPT...which is a modified copy of the original script
to startup tomcat

#!/bin/bash
#
# tomcat5      This shell script takes care of starting and stopping Tomcat
#
# chkconfig: - 80 20
#
### BEGIN INIT INFO
# Provides: tomcat5
# Required-Start: $network $syslog
# Required-Stop: $network $syslog
# Default-Start:
# Default-Stop:
# Description: Release implementation for Servlet 2.4 and JSP 2.0
# Short-Description: start and stop tomcat
### END INIT INFO
#
# - originally written by Henri Gomez, Keith Irwin, and Nicolas Mailhot
# - heavily rewritten by Deepak Bhole and Jason Corley
#

# commented out until the RHEL and FC daemon functions converge
# Source the function library
#if [ -r "/etc/rc.d/init.d/functions" ]; then
    #. /etc/rc.d/init.d/functions
#fi

NAME="$(basename $0)"
unset ISBOOT
if [ "${NAME:0:1}" = "S" -o "${NAME:0:1}" = "K" ]; then
    NAME="${NAME:3}"
    ISBOOT="1"
fi

# For SELinux we need to use 'runuser' not 'su'
if [ -x "/sbin/runuser" ]; then
    SU="/sbin/runuser"
else
    SU="su"
fi

# Get the tomcat config (use this for environment specific settings)
TOMCAT_CFG="/etc/tomcat5/tomcat5.conf"
if [ -r "$TOMCAT_CFG" ]; then
    . ${TOMCAT_CFG}
fi

# Get instance specific config file
if [ -r "/etc/sysconfig/${NAME}" ]; then
    . /etc/sysconfig/${NAME}
fi

# Define which connector port to use
CONNECTOR_PORT="${CONNECTOR_PORT:-8080}"

# Path to the tomcat launch script
TOMCAT_SCRIPT="/usr/bin/tomcat5-test"

# Path to the script that will refresh jar symlinks on startup
TOMCAT_RELINK_SCRIPT="${CATALINA_HOME}/bin/relink"

# Tomcat program name
TOMCAT_PROG="$NAME"
        
# Define the tomcat username
TOMCAT_USER="${TOMCAT_USER:-tomcat}"

# Define the tomcat log file
TOMCAT_LOG="${TOMCAT_LOG:-/etc/tomcat5-test/logs/catalina.out}"

RETVAL="0"

# remove when the RHEL and FC daemon functions converge
# (pulled from /etc/rc.d/init.d/functions)
function checkpid() {
    local i
    for i in $* ; do
        if [ -d "/proc/${i}" ]; then
            return 0
        fi
    done
    return 1
}

# remove when the RHEL and FC daemon functions converge
# (pulled from /etc/rc.d/init.d/functions)
function echo_failure() {
    echo -en "\\033[60G"
    echo -n "[  "
    echo -n $"FAILED"
    echo -n "  ]"
    echo -ne "\r"
    return 1
}

# remove when the RHEL and FC daemon functions converge
# (pulled from /etc/rc.d/init.d/functions)
function echo_success() {
    echo -en "\\033[60G"
    echo -n "[  "
    echo -n $"OK"
    echo -n "  ]"
    echo -ne "\r"
    return 0
}

# Look for open ports, as the function name might imply
function findFreePorts() {
    local isSet1="false"
    local isSet2="false"
    local isSet3="false"
    local lower="8000"
    randomPort1="0"
    randomPort2="0"
    randomPort3="0"
    local -a listeners="( $(
                        netstat -ntl | \
                        awk '/^tcp/ {gsub("(.)*:", "", $4); print $4}'
                    ) )"
    while [ "$isSet1" = "false" ] || \
          [ "$isSet2" = "false" ] || \
          [ "$isSet3" = "false" ]; do
        let port="${lower}+${RANDOM:0:4}"
        if [ -z `expr " ${listeners[*]} " : ".*\( $port \).*"` ]; then
            if [ "$isSet1" = "false" ]; then
                export randomPort1="$port"
                isSet1="true"
            elif [ "$isSet2" = "false" ]; then
                export randomPort2="$port"
                isSet2="true"
            elif [ "$isSet3" = "false" ]; then
                export randomPort3="$port"
                isSet3="true"
            fi
        fi
    done
}

function makeHomeDir() {
    if [ ! -d "$CATALINA_HOME" ]; then
        echo "$CATALINA_HOME does not exist, creating"
        if [ ! -d "/var/lib/${NAME}" ]; then
            mkdir -p /var/lib/${NAME}
            cp -pLR /var/lib/tomcat5-test/* /var/lib/${NAME}
        fi
        mkdir -p $CATALINA_HOME ${CATALINA_HOME}/conf
/var/cache/${NAME}/temp \
            /var/cache/${NAME}/work /var/log/${NAME}
        for i in temp work; do
            ln -fs /var/cache/${NAME}/${i} ${CATALINA_HOME}/${i}
        done
        for i in common server shared webapps; do
            ln -fs /var/lib/${NAME}/${i} ${CATALINA_HOME}/${i}
        done
        ln -fs /var/log/${NAME} ${CATALINA_HOME}/logs
        cp -pLR /etc/tomcat5-test/* ${CATALINA_HOME}/conf/
        cp -pLR /usr/share/tomcat5-test/bin $CATALINA_HOME
        cp -pLR /etc/tomcat5-test/work/* ${CATALINA_HOME}/work/
        chown ${TOMCAT_USER}:${TOMCAT_USER} /var/log/${NAME}
    fi
}

function parseOptions() {
    options=""
    options="$options $(
                 awk '!/^#/ && !/^$/ { ORS=" "; print "export ", $0, ";" }'
\
                 $TOMCAT_CFG
             )"
    if [ -r "/etc/sysconfig/${NAME}" ]; then
        options="$options $(
                     awk '!/^#/ && !/^$/ { ORS=" "; 
                                           print "export ", $0, ";" }' \
                     /etc/sysconfig/${NAME}
                 )"
    fi
    TOMCAT_SCRIPT="$options $TOMCAT_SCRIPT"
}

# See how we were called.
function start() {
    echo -n "Starting ${TOMCAT_PROG}: "
    if [ -f "/var/lock/subsys/${NAME}" ] ; then
        if [ -f "/var/run/${NAME}.pid" ]; then
            read kpid < /var/run/${NAME}.pid
                if checkpid $kpid 2>&1; then
                    echo "$NAME process already running"
                        return -1
                    else
                        echo "lock file found but no process running for"
                        echo "pid $kpid, continuing"
                fi
        fi
    fi
    export CATALINA_PID="/var/run/${NAME}.pid"
    touch $CATALINA_PID
    chown ${TOMCAT_USER}:${TOMCAT_USER} $CATALINA_PID
    if [ "$CATALINA_HOME" != "/etc/tomcat5-test" ]; then
        # Create a tomcat directory if it doesn't exist
        makeHomeDir
        # If CATALINA_HOME doesn't exist modify port number so that
        # multiple instances don't interfere with each other
        findFreePorts
        sed -i -e "s/8005/${randomPort1}/g" -e "s/8080/${CONNECTOR_PORT}/g"
\
            -e "s/8009/${randomPort2}/g" -e "s/8443/${randomPort3}/g" \
            ${CATALINA_HOME}/conf/server.xml
    fi
    $TOMCAT_RELINK_SCRIPT
    $SU - $TOMCAT_USER -c "$TOMCAT_SCRIPT start" >> $TOMCAT_LOG 2>&1
    RETVAL="$?"
    if [ "$RETVAL" -eq 0 ]; then 
        echo_success
        touch /var/lock/subsys/${NAME}
    else
        echo_failure
    fi
    echo
    return $RETVAL
}

function status() {
    RETVAL="1"
    if [ -f "/var/run/${NAME}.pid" ]; then
        read kpid < /var/run/${NAME}.pid
        if checkpid $kpid 2>&1; then
            echo "$0 is already running (${kpid})"
            RETVAL="0"
        else
            echo "lock file found but no process running for pid $kpid"
        fi
    else
        pid="$(pgrep -u tomcat java)"
        if [ -n "$pid" ]; then
            echo "$0 running (${pid}) but no PID file exists"
            RETVAL="0"
        else
            echo "$0 is stopped"
        fi
    fi
    return $RETVAL
}

function stop() {
    local STOP_VERBOSE="false"
    echo -n "Stopping $TOMCAT_PROG: "
    if [ -f "/var/lock/subsys/${NAME}" ]; then
        $SU - $TOMCAT_USER -c "$TOMCAT_SCRIPT stop" >> $TOMCAT_LOG 2>&1
        RETVAL="$?"
        if [ "$RETVAL" -eq "0" ]; then
            count="0"
            if [ -f "/var/run/${NAME}.pid" ]; then
                read kpid < /var/run/${NAME}.pid
                until [ "$(ps --pid $kpid | grep -c $kpid)" -eq "0" ] || \
                      [ "$count" -gt "$SHUTDOWN_WAIT" ]; do
                    if [ "$STOP_VERBOSE" = "true" ]; then
                        echo -n -e "\nwaiting for processes $kpid to exit"
                    fi
                    sleep 1
                    let count="${count}+1"
                done
                if [ "$count" -gt "$SHUTDOWN_WAIT" ]; then
                    if [ "$STOP_VERBOSE" = "true" ]; then
                        echo -n -e "\nkilling processes which didn't stop"
                        echo -n -e "after "
                        echo -n "$SHUTDOWN_WAIT seconds"
                    fi
                    kill -9 $kpid
                fi
                echo_success
                if [ "$count" -gt "0" ]; then
                    echo -n -e "\n"
                fi
            fi
            rm -f /var/lock/subsys/$NAME /var/run/$NAME.pid
        else
            echo_failure
        fi
    fi
}


# See how we were called.
case "$1" in
    start)
        parseOptions
        start
        ;;
    stop)
        parseOptions
        stop
        ;;
    restart)
        parseOptions
        stop
        sleep 2    
        start
        ;;
    condrestart)
        if [ -f "/var/run/${NAME}.pid" ]; then
            parseOptions
            stop
            start
        fi
        ;;
    status)
        status
        ;;
    version)
        parseOptions
        "${JAVA_HOME}/bin/java" \
            -classpath "${CATALINA_HOME}/server/lib/catalina.jar" \
            org.apache.catalina.util.ServerInfo
        ;;
    *)
        echo "Usage: $TOMCAT_PROG
{start|stop|restart|condrestart|status|version}"
        exit 1
esac

exit $RETVAL

Thank you...
-- 
View this message in context: http://www.nabble.com/HOW-TO-install-setup-2-instances-of-tomcat-on-same-server-tp19079289p19169783.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by Thomas Haines <th...@recallmedia.com.au>.
Hi edponce

> so if i understood everything i just need to duplicate the tomcat  
> folder, do i need to rename it or something?

Yes, you just need to duplicate it.  You can call the duplicate folder  
whatever you like.

> Then "On the duplicated tomcat
> directory, you need to edit the server.xml file so that the second
> server.xml as unique ports for the shutdown port, the interface port
> (eg 8080 could become 8081 etc)" and how can i check if i've done this
> correctly? that both instances are running?

Yes.  Check your logs during startup and shutdown also for any  
warnings or port binding issues.

>
> Thanks for your help...

You're welcome.

Cheers
Tom


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by edponce <ed...@appslm.com>.
Thank you Tom, I think the other repliers were going to far on what they
wanted to do.  this exactly why i want 2 different sessions, "It can also be
useful for evaluating a new  
version before you unleash it to production." so if i understood everything
i just need to duplicate the tomcat folder, do i need to rename it or
something? Then "On the duplicated tomcat  
directory, you need to edit the server.xml file so that the second  
server.xml as unique ports for the shutdown port, the interface port  
(eg 8080 could become 8081 etc)" and how can i check if i've done this
correctly? that both instances are running?
Thanks for your help... a little more info on what I am running


Server version: Apache Tomcat/5.5.20
Server built:   May 15 2007 09:00:46
Server number:  5.5.20.0
OS Name:        Linux
OS Version:     2.6.22.14-72.fc6
Architecture:   i386
JVM Version:    1.4.2
JVM Vendor:     Free Software Foundation, Inc.



Thomas Haines-2 wrote:
> 
>>
>>> edponce wrote:
>>>> I know this question has been asked a lot but I've read different  
>>>> solutions
>>>> depending on the needs of the problem. I need to have 2 instances  
>>>> of tomcat
>>>> on the same server for the same application. One would be for  
>>>> production and
>>>> the other for development (which can be start and stopped whenever  
>>>> without
>>>> affecting the production one).
>>>>> From my understanding i need to have each instance on different  
>>>>> ports and
>>>> modifying some other files but what I am missing is the technical  
>>>> things.
>>>> Can any one please guide me on the correct direction so that i  
>>>> don't mess up
>>>> anything! I've never worked with Tomcat that is why i have no idea  
>>>> on how to
>>>> do it.
>>> André Warnier wrote:
>>
>> You do not necessarily need two separate instances of Tomcat.  [...]  
>> There also exists the possibility to run one Tomcat with different  
>> "Virtual Hosts", on the same port 80.
>> Each one of these virtual hosts would have a different "DNS  
>> name" (like  "realserver.mycompany.com" and  
>> "testserver.mycompany.com") and could have a different directory  
>> where the applications reside, but the application itself would be  
>> named the same way.
>>
>> The difference between the above solutions and two really separate  
>> Tomcat instances would be if the test application could really crash  
>> the whole server, in which case you may not like one of the above  
>> solutions.
>>
>> Comments anyone ?
> 
> When I was new to tomcat (arguably when compared with some members of  
> this list, I could still be considered new), I found it conceptually  
> easier to work with two instances, as you don't need to switch context  
> names etc when you want to deploy live.  Whilst a little cumbersome,  
> and inefficient from a resource usage standpoint, when you're  
> learning, being able to restart tomcat as you shop and change the  
> server.xml file etc can be useful, without fear of breaking the  
> production service.  It can also be useful for evaluating a new  
> version before you unleash it to production.
> 
> edponce: If you want to run two instances, the easiest way, to my  
> mind, is to duplicate the tomcat directory.  On the duplicated tomcat  
> directory, you need to edit the server.xml file so that the second  
> server.xml as unique ports for the shutdown port, the interface port  
> (eg 8080 could become 8081 etc).  Once you have made these changes,  
> you should be able to start each of them up by running their  
> respective startup scripts.
> 
> You could achieve the same using links and a few other sharing  
> techniques, but for simplicity's sake, I think this approach to two  
> instances using duplicated directories is the most robust.
> 
> Tom
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/HOW-TO-install-setup-2-instances-of-tomcat-on-same-server-tp19079289p19112602.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by Thomas Haines <th...@recallmedia.com.au>.
>
>> edponce wrote:
>>> I know this question has been asked a lot but I've read different  
>>> solutions
>>> depending on the needs of the problem. I need to have 2 instances  
>>> of tomcat
>>> on the same server for the same application. One would be for  
>>> production and
>>> the other for development (which can be start and stopped whenever  
>>> without
>>> affecting the production one).
>>>> From my understanding i need to have each instance on different  
>>>> ports and
>>> modifying some other files but what I am missing is the technical  
>>> things.
>>> Can any one please guide me on the correct direction so that i  
>>> don't mess up
>>> anything! I've never worked with Tomcat that is why i have no idea  
>>> on how to
>>> do it.
>> André Warnier wrote:
>
> You do not necessarily need two separate instances of Tomcat.  [...]  
> There also exists the possibility to run one Tomcat with different  
> "Virtual Hosts", on the same port 80.
> Each one of these virtual hosts would have a different "DNS  
> name" (like  "realserver.mycompany.com" and  
> "testserver.mycompany.com") and could have a different directory  
> where the applications reside, but the application itself would be  
> named the same way.
>
> The difference between the above solutions and two really separate  
> Tomcat instances would be if the test application could really crash  
> the whole server, in which case you may not like one of the above  
> solutions.
>
> Comments anyone ?

When I was new to tomcat (arguably when compared with some members of  
this list, I could still be considered new), I found it conceptually  
easier to work with two instances, as you don't need to switch context  
names etc when you want to deploy live.  Whilst a little cumbersome,  
and inefficient from a resource usage standpoint, when you're  
learning, being able to restart tomcat as you shop and change the  
server.xml file etc can be useful, without fear of breaking the  
production service.  It can also be useful for evaluating a new  
version before you unleash it to production.

edponce: If you want to run two instances, the easiest way, to my  
mind, is to duplicate the tomcat directory.  On the duplicated tomcat  
directory, you need to edit the server.xml file so that the second  
server.xml as unique ports for the shutdown port, the interface port  
(eg 8080 could become 8081 etc).  Once you have made these changes,  
you should be able to start each of them up by running their  
respective startup scripts.

You could achieve the same using links and a few other sharing  
techniques, but for simplicity's sake, I think this approach to two  
instances using duplicated directories is the most robust.

Tom


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by André Warnier <aw...@ice-sa.com>.
André Warnier wrote:
> edponce wrote:
>> I know this question has been asked a lot but I've read different 
>> solutions
>> depending on the needs of the problem. I need to have 2 instances of 
>> tomcat
>> on the same server for the same application. One would be for 
>> production and
>> the other for development (which can be start and stopped whenever 
>> without
>> affecting the production one).
>>> From my understanding i need to have each instance on different ports 
>>> and
>> modifying some other files but what I am missing is the technical things.
>> Can any one please guide me on the correct direction so that i don't 
>> mess up
>> anything! I've never worked with Tomcat that is why i have no idea on 
>> how to
>> do it.
> 

Ok, serious now.
This is at the same time some information for you, the Original Poster 
(OP), and a question for the others on this list more Tomcat-qualified 
than I am.  But we've got to start somewhere...

To the OP (and the others to contradict me if I'm wrong) :

You do not necessarily need two separate instances of Tomcat.
Under Tomcat, each application can be started and stopped (and even a 
new version reloaded) without stopping the Tomcat server.
You would just need to "name" your applications differently.
(like "http://host.mycompany.com/real-app" and 
"http://host.mycompany.com/test-app").

There also exists the possibility to run one Tomcat with different 
"Virtual Hosts", on the same port 80.
Each one of these virtual hosts would have a different "DNS name" (like 
  "realserver.mycompany.com" and "testserver.mycompany.com") and could 
have a different directory where the applications reside, but the 
application itself would be named the same way.

I am mentioning the above two possibilities because, you knowing not 
much about Tomcat to start witj, either one of the above is probably 
easier to set up than two separate Tomcat instances.

The difference between the above solutions and two really separate 
Tomcat instances would be if the test application could really crash the 
whole server, in which case you may not like one of the above solutions.

Comments anyone ?


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by André Warnier <aw...@ice-sa.com>.
edponce wrote:
> I know this question has been asked a lot but I've read different solutions
> depending on the needs of the problem. I need to have 2 instances of tomcat
> on the same server for the same application. One would be for production and
> the other for development (which can be start and stopped whenever without
> affecting the production one).
>>>From my understanding i need to have each instance on different ports and
> modifying some other files but what I am missing is the technical things.
> Can any one please guide me on the correct direction so that i don't mess up
> anything! I've never worked with Tomcat that is why i have no idea on how to
> do it.

No, we won't tell you.  This is a list for Tomcat Users only (hence the 
name), and obviously you are not one of them, so go away !

Just kidding.

Can you maybe give a bit more details, such as what system you are 
running this on, and the version of Tomcat if you know ?  That would 
help, a bit.
But it is probably not going to be easy, if you really have no idea of 
Tomcat to start with.  Did you ever work with another Java servlet 
engine, or another HTTP server ?



---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Ed,

edponce wrote:
> I know this question has been asked a lot but I've read different solutions
> depending on the needs of the problem. I need to have 2 instances of tomcat
> on the same server for the same application. One would be for production and
> the other for development (which can be start and stopped whenever without
> affecting the production one).

No problem.

> From my understanding i need to have each instance on different ports and
> modifying some other files but what I am missing is the technical things.

If you want separate JVMs running Tomcat, then yes, you will need
separate ports for them. You might not need multiple instances, though.

> Can any one please guide me on the correct direction so that i don't mess up
> anything! I've never worked with Tomcat that is why i have no idea on how to
> do it.

For Java webapp newbies, it's important to understand terminology and
topography. Let's start with topography and move forward from there.

You can deploy Tomcat either standalone (where Tomcat directly receives
HTTP requests) or "fronted" with another web server like Apache httpd
(which is a very popular setup). Your strategy depends a lot on which
setup you'd like.

You can also deploy your applications into, say, /myApp and /myApp-dev.
If you have a preference, please let us know that before we do on.
Explaining everything start to finish is lengthy and my fingers will get
tired.

So, let us know is you will be running Tomcat standalone or behind a web
server, and then how you intend (or want) to deploy your webapps. Then
we can move on from there.

- -chris

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkitnC8ACgkQ9CaO5/Lv0PBAewCeIUof11yQbNF65/Krc6jzdUH0
rfYAnRmB/J47Hx1alk0XCoMG//B5pXv1
=cwqe
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: HOW TO install/setup 2 instances of tomcat on same server

Posted by buzzterrier <te...@gmail.com>.
Here is a walk through on setting tomcat and Apache HTTP with catalina base
instances.

http://buzzterrier.blogspot.com/2008/08/apache-tomcat-apache-webserver.html


edponce wrote:
> 
> I know this question has been asked a lot but I've read different
> solutions depending on the needs of the problem. I need to have 2
> instances of tomcat on the same server for the same application. One would
> be for production and the other for development (which can be start and
> stopped whenever without affecting the production one).
> From my understanding i need to have each instance on different ports and
> modifying some other files but what I am missing is the technical things.
> Can any one please guide me on the correct direction so that i don't mess
> up anything! I've never worked with Tomcat that is why i have no idea on
> how to do it.
> Thanks in advance 
> 

-- 
View this message in context: http://www.nabble.com/HOW-TO-install-setup-2-instances-of-tomcat-on-same-server-tp19079289p19600961.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org