giovedì 13 ottobre 2011

Installare Jboss 4 e Jboss 5 come servizi di windows

Per Jboss4 è necessario scaricarsi dal sito di Jboss il pacchetto jbosseNative ( http://www.jboss.org/jbossweb/downloads/jboss-native-2-0-9.html ) .
Per Jboss 5 invece la directory bin ha già tutto quello che serve.
A questo punto una volta scompattato nella directory bin dobbiamo agire a livello di service.bat.
Qui c'è la sezione


set SVCNAME=JBAS50SVC
set SVCDISP=JBoss Application Server 5.0
set SVCDESC=JBoss Application Server 5.0.0 GA/Platform: Windows x86
E si può personalizzare il nome del servizio (SVCDISP e SVCNAME).
Il file service.bat può essere personalizzato anche nel punto in cui si chiama il run.bat ossia qui
jbosssvc.exe -p 1 "Starting %SVCDISP%" > run.log
call run.bat -c all -b 127.0.0.1 < .r.lock >> run.log 2>&1
jbosssvc.exe -p 1 "Shutdown %SVCDISP% service" >> run.log
 Il file run.log rappresenta il file in cui è scritto l'output di console.

Se vogliamo eseguire un'altra istanza di Jboss sullo stesso server allora (dopo averla configurata opportunatamente, vedi post) dobbiamo copiare il file service.bat, rinominarlo ad esempio service2.bat e cambiare i dettagli del nome servizio e della chiamata al .bat (es. call run.bat -c nuovaIstanza .....). 
Bisogna cambiare quindi sia il SVCNAME che il SVCDISP obbligatoriamente, la desrizione è facoltativa ma sempre meglio personalizzarla.
Per far partire il servizio da console digitare
JBOSS_HOME/bin> service.bat install
Per stoppare il servizio da console digitare

JBOSS_HOME/bin> service.bat uninstall
Nei servizi di Windows apparirà così:


Incollo il testo del serviceProfiler.bat un bat che ho utilizzato per far coesistere sullo stesso server due istanze dello stesso Jboss come servizio (il nome dell'istanza da far partire era profile) :

@echo off
REM JBoss, the OpenSource webOS
REM
REM Distributable under LGPL license.
REM See terms of license at gnu.org.
REM
REM -------------------------------------------------------------------------
REM JBoss Service Script for Windows
REM -------------------------------------------------------------------------


@if not "%ECHO%" == "" echo %ECHO%
@if "%OS%" == "Windows_NT" setlocal
set DIRNAME=%CD%

REM
REM VERSION, VERSION_MAJOR and VERSION_MINOR are populated
REM during the build with ant filter.
REM
set SVCNAME=JBAS50SVCPROF
set SVCDISP=JBoss AS-ProfilerDemo
set SVCDESC=JBoss Application Server 5.0.0 GA/Platform: Windows x86
set NOPAUSE=Y

REM Suppress killing service on logoff event
set JAVA_OPTS=-Xrs

REM Figure out the running mode

if /I "%1" == "install"   goto cmdInstall
if /I "%1" == "uninstall" goto cmdUninstall
if /I "%1" == "start"     goto cmdStart
if /I "%1" == "stop"      goto cmdStop
if /I "%1" == "restart"   goto cmdRestart
if /I "%1" == "signal"    goto cmdSignal
echo Usage: service install^|uninstall^|start^|stop^|restart^|signal
goto cmdEnd

REM jbosssvc retun values
REM ERR_RET_USAGE           1
REM ERR_RET_VERSION         2
REM ERR_RET_INSTALL         3
REM ERR_RET_REMOVE          4
REM ERR_RET_PARAMS          5
REM ERR_RET_MODE            6

:errExplain
if errorlevel 1 echo Invalid command line parameters
if errorlevel 2 echo Failed installing %SVCDISP%
if errorlevel 4 echo Failed removing %SVCDISP%
if errorlevel 6 echo Unknown service mode for %SVCDISP%
goto cmdEnd

:cmdInstall
jbosssvc.exe -imwdc %SVCNAME% "%DIRNAME%" "%SVCDISP%" "%SVCDESC%" serviceProfile.bat
if not errorlevel 0 goto errExplain
echo Service %SVCDISP% installato
goto cmdEnd

:cmdUninstall
jbosssvc.exe -u %SVCNAME%
if not errorlevel 0 goto errExplain
echo Service %SVCDISP% rimosso
goto cmdEnd

:cmdStart
REM Executed on service start
del .rProfile.lock 2>&1 | findstr /C:"being used" > nul
if not errorlevel 1 (
  echo Could not continue. Locking file already in use.
  goto cmdEnd
)
echo Y > .rProfile.lock
jbosssvc.exe -p 1 "Starting %SVCDISP%" > run_Profile.log
call run.bat -c profile < .rProfile.lock >> run_Profile.log 2>&1
jbosssvc.exe -p 1 "Shutdown %SVCDISP% service" >> run_Profile.log
del .rProfile.lock
goto cmdEnd

:cmdStop
REM Executed on service stop
echo Y > .sProfile.lock
jbosssvc.exe -p 1 "Shutting down %SVCDISP%" > shutdownProfile.log
call shutdown -S < .sProfile.lock >> shutdownProfile.log 2>&1
jbosssvc.exe -p 1 "Shutdown %SVCDISP% service" >> shutdownProfile.log
del .sProfile.lock
goto cmdEnd

:cmdRestart
REM Executed manually from command line
REM Note: We can only stop and start
echo Y > .sProfile.lock
jbosssvc.exe -p 1 "Shutting down %SVCDISP%" >> shutdownProfile.log
call shutdown -S < .sProfile.lock >> shutdownProfile.log 2>&1
del .sProfile.lock
:waitRun
REM Delete lock file
del .sProfile.lock > nul 2>&1
REM Wait one second if lock file exist
jbosssvc.exe -s 1
if exist ".sProfile.lock" goto waitRun
echo Y > .sProfile.lock
jbosssvc.exe -p 1 "Restarting %SVCDISP%" >> runProfile.log
call run.bat < .sProfile.lock >> run.log 2>&1
jbosssvc.exe -p 1 "Shutdown %SVCDISP% service" >> runProfile.log
del .sProfile.lock
goto cmdEnd

:cmdSignal
REM Send signal to the service.
REM Requires jbosssch.dll to be loaded in JVM
@if not ""%2"" == """" goto execSignal
echo Missing signal parameter.
echo Usage: service signal [0...9]
goto cmdEnd
:execSignal
jbosssvc.exe -k%2 %SVCNAME%
goto cmdEnd

:cmdEnd


Nessun commento:

Posta un commento