Installare istanze multiple (due o più) di Tomcat come servizi su Windows



Ho visto questa domanda di recente su un forum e  anche se la necessità può non essere molto comune, è sicuramente un’idea interessante. In un primo momento ho pensato che non fossepossibile ma, dopo un’analisi del Registro di sistema, la cosa si è rivelata non troppo difficile.

ATTENZIONE: Modificare il Registro di sistema è un rischio! Se non siete sicuri o temete gravi conseguenze, non fatelo. E ricordate… effettuare SEMPRE il backup!

Le istruzioni che seguono sono riferite a Tomcat 6,0 (anche se è stata testata anche per Tomcat 5.0) installato come servizio su una macchina Windows (XP).

Per cominciare, queste sono le chiavi create dall’installazione di Tomcat nel Registro di sistema e che sarà necessario modificare. Mi riferirò a loro nell’ordine in cui effettuare la procedura:

  1. HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ServicesTomcat6
  2. HKEY_LOCAL_MACHINESOFTWAREApache Software FoundationProcrun 2.0Tomcat6
  3. HKEY_LOCAL_MACHINESOFTWAREApache Software FoundationTomcat6.0
  4. HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows CurrentVersionRun
  5. HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows CurrentVersionUninstallApache Tomcat 6.0
  6. HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnum RootLEGACY_TOMCAT6

Di seguito elencati i passi da seguire per effettuare l’installazione del secondo Tomcat:

  • Installare la prima istanza di Tomcat, ad esempio nella cartella “C: Tomcat6_1”;
  • Start> Esegui> regedit> [ENTER] per aprire l’editor del registro di sistema. Navigare fino alla chiave 1 e rinominarla da “[…] Tomcat6”, a “[…] Tomcat6_1”. Ciò per evitare che la successiva installazione sovrascriva le
    informazioni di questa chiave. Ogni chiave in windows ha delle propietà (che windows chiama valori, (Description, DisplayName, ecc…) che possono assumere diversi valori. Quando si seleziona una chiave nel riquadro a destra nell’editor vengono visualizzate le coppie propietà/valore  relative ad essa;
  • Modificare il valore “DisplayName” da “Apache Tomcat” a “Apache Tomcat_1”. Questo per distinguerlo dall’installazione che faremo in seguito.
    Start> Esegui> services.msc> [ENTER] per aprire la console dei servizi e vedere il risultato della nostra modifica;
    Windows due Servizi Tomcat
  • Modificare il valore della propietà “ImagePath” da “[…]// RS / / Tomcat6” a “[…]// RS / / Tomcat6_1”. Avremo bisogno di questo nome in seguito perchè indica l’identificativo del servizio che verrà avviato;
  • Sotto la chiave I c’è la chiave “Enum” (HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ServicesTomcat6Enum) in cui c’è una propietà di chiamata semplicemente “0” con il riferimento alla chiave 4. Modificarne il contento in modo da riflettere il cambiamento di nome che verrà fatta in seguito, cioè modificare il valore di “0” da “Root LEGACY_TOMCAT6 0000” a “Root LEGACY_TOMCAT6_1 0000”;
  • Passare alla chiave II e rinominarla come fatto per la chiave I da “[…]   Tomcat6” a “[…] Tomcat6_1”. Anche in questo caso il motivo è quello di evitare la sovrascrittura quando si installa il secondo servizio Tomcat:
  • Allo stesso modo, modificare la chiave III da “[…] 6.0” a “[…] 6.0_1”.  Stesso motivo di sopra;
  • Si prenda adesso in cosiderazione la chiave IV e rinominare il l’attributo “ApacheTomcatMonitor” come “ApacheTomcatMonitor_1”. Questa chiave è l’applicazione monitor, modificandola si evita di sovrascrivere i dati durante la seconda installazione e sarà possibile eseguire le istanze del monitor, uno per ogni servizio;
    Tomcat Monitor Properties
  • Si passi ora a modificare “[…]// MS / / Tomcat6” in “[..]// MS / / Tomcat6_1”. Questo è il nome del servizio che si modifica di cui sopra, per il valore ImagePath.
  • Se si desidera di essere in grado successivamente di disinstallare entrambe le istanze di
    Tomcat (consigliato!) è necessario modificare la chiave V  rinominandola da “[…] Apache Tomcat 6.0” a “[…] Apache Tomcat 6.0_1”. (Questo sempre per evitare la sovrascrittura di informazioni di disinstallazione);
  • Non sono molto sicuro che sia necessario modificare anche la chiave 6 ma suggerisco comunque di farlo per completezza. Rinominarla da “[..] LEGACY_TOMCAT6” a “[..] LEGACY_TOMCAT6_1”;
  • Riavviare il sistema per fa si che le modifiche abbiano luogo;
  • Solo quando siete sicuri che tutto funzioni correttamente è possibile installare la seconda istanza di Tomcat. Personalmente ho scelto come directory “C: Tomcat6_2”;
  • Prima di riavviare, e lanciare quindi il secondo servizio Tomcat, è necessario modificare le porte di ascolto per risolvere i conflitti che altrimenti si verrebbero a creare impedendo a Tomcat di avviarsi. E’ necessario modificare la porta di ascolto HTTP (Si potrebbe aver cambiato la porta di ascolto HTTP anche durante l’installazione),  quella di SHUTDOWN e quella di AJP. Per fare questo occorre modificare il contenuto del file di configurazione XML di uno dei due server Tomcat situato in “$CATALINA_HOME conf server.xml” ($CATALINA_HOME si riferisce alla directory di installazione di Tomcat che avete scelto durante il setup). Le entry da modificare sono le seguenti:
    <Connector connectionTimeout=”20000″ port = “8080” protocollo = “HTTP/1.1″ redirectPort=”8443″/>
    <Server port=”8005″ shutdown=”SHUTDOWN”>
    <Connector port=”8009″ protocol=”AJP/1.3″ redirectPort=”8443″/>
  • A questo punto è possibile riavviare ancora il sistema e le due istanze (compresi i monitor) dovrebbero funzionare insieme senza problemi
    Due Tomcat su Windows come Servizi
Annunci sponsorizzati:
Condividi su Facebook Condividi su Twitter!
Pinterest