Einleitung Oracle Process Management and Notification

Transcrição

Einleitung Oracle Process Management and Notification
Betrifft:
Oracle iAS Release 2 High Availability - OPMN
Autor:
Dirk Nachbar
Art der Info:
Technische Background Info
Quelle:
Aus unserer Projekt- und Schulungserfahrung
http://technet.oracle.com
http://metalink.oracle.com
Einleitung
Bereits mit Oracle Internet Application Server Release 1 (iAS R1) wurden einige High
Availabilty (HA) Komponenten eingeführt, welche jetzt konsequent im Release 2 des iAS
fortgeführt bzw. ausgebaut wurden.
Doch wie sicher bzw. zuverlässig sind diese HA-Features?
Oracle Process Management and Notification Server (OPMN)
Der OPMN Server ist im iAS Release 2 der zentrale Service um Prozesse zu starten,
stoppen und automatisch erneut zu starten im Fehlerfall (Death of Process).
Der OPMN Server kann eingesetzt werden für „Standalone“ iAS Instanzen, aber auch für
iAS Instanzen innerhalb eines Cluster ☺.
Das
CommandLine
Utility
opmnctl
$ORACLE_HOME/opmn/bin Verzeichnis.
zum
OPMN
findet
man
im
Ruf man das opmnctl auf, erhält man die nachfolgend aufgelisteten Optionen:
$ORACLE_HOME\opmn\bin>opmnctl
usage: $0 start|startall|stopall|startproc|restartproc|stopproc [options]
start
- Start opmn only.
startall
- Start opmn and all opmn managed processes.
reload
- Reload the opmn configuration files
stopall
- Shutdown opmn and all opmn managed
processes.
startproc
[<attr>=<value> ] - Start opmn managed processes.
restartproc [<attr>=<value> ] - Soft restart of opmn managed processes.
stopproc
[<attr>=<value> ] - Stop opmn managed processes.
help
- Print a short syntax description (this).
detailed
- Print a verbose syntax description.
$ORACLE_HOME \opmn\bin>
Mit dem opmnctl kann man alle zum OPMN dazugehörigen Prozesse starten, restarten
oder stoppen bzw. einzelne Prozesse starten, restarten oder stoppen. Aber derzeit können
im iAS Release 2 nur OC4J oder Oracle HTTP Server (OHS) Prozesse gemanaged werden.
Welche Prozesse im OPMN eingebunden sind ermittelt man aus der opmn.xml –
Konfigurationsdatei.
Unter Windows kann man statt des CLT opmnctl einen entsprechenden Windows Dienst
verwenden.
Die Konfigurationsdatei opmn.xml zum OPMN ist zu finden unter dem Verzeichnis
$ORACLE_HOME/opmn/conf.
Nachfolgend ist eine beispielhafte opmn.xml dargestellt.
<ias-instance
xmlns=http://www.oracle.com/ias-instance
xmlns:xsi=http://www.w3.org/1999/XMLSchema-instance
xsi:schemaLocation="http://www.oracle.com/ias-instance opmn.xsd">
<notification-server>
<port local="6100" remote="6200" request="6003"/>
<log-file path="c:\oracle\ias_core\opmn\logs\ons.log" level="3"/>
</notification-server>
<process-manager>
<ohs gid="HTTP Server"/>
<oc4j instanceName="home" numProcs="1" maxRetry="3">
<config-file path="c:\oracle\ias_core\j2ee\home\config\server.xml"/>
<oc4j-option value="-properties"/>
<port ajp="3000-3100" rmi="3101-3200" jms="3201-3300"/>
<environment>
<prop name="PATH" value="c:\oracle\ias_core\bin"/>
</environment>
</oc4j>
<oc4j instanceName="OC4J_Demos" gid="OC4J_Demos">
<config-file
path="c:\oracle\ias_core\j2ee\OC4J_Demos\config\server.xml"/>
<java-option value="-Xmx512M "/>
<oc4j-option value="-userThreads -properties"/>
<port ajp="3001-3100" rmi="3101-3200" jms="3201-3300"/>
<environment>
<prop name="%LIB_PATH_ENV%" value="%LIB_PATH_VALUE%"/>
</environment>
</oc4j>
<custom gid="dcm-daemon" numProcs="1" noGidWildcard="true">
<start path="c:\oracle\ias_core\jdk\bin\javaw.exe
-Doracle.xdkjava.compatibility.version=9.0.3
-jar c:\oracle\ias_core\dcm\lib\dcm.jar daemon
-logdir c:\oracle\ias_core\dcm\logs\daemon_logs
-o c:\oracle\ias_core"/>
<stop path="c:\oracle\ias_core\jdk\bin\javaw.exe
-Doracle.xdkjava.compatibility.version=9.0.3
-jar c:\oracle\ias_core\dcm\lib\dcm.jar shutdowndaemon
-o c:\oracle\ias_core"/>
<environment>
<prop name="PATH" value="c:\oracle\ias_core\bin"/>
</environment>
</custom>
<log-file path="c:\oracle\ias_core\opmn\logs\ipm.log" level="3"/>
</process-manager>
</ias-instance>
Jeweils ein OPMN Server ist zuständig für eine iAS Instanz, in welcher 0 oder 1 OHS sein
können und 0 bis n OC4J Instanzen
Quelle Oracle Technet ( http://otn.oracle.com )
Testen der OPMN Dienste
Folgende Umgebung dient für den simulierten Testfall:
•
•
•
Windows 2000 Server
Oracle Internet Application Server Core Version 9.0.3
iAS Instanz ist einem Cluster hinzugefügt
Um die automatischen restart-Funktionen des OPMN Servers zu testen bzw. bildlich
darzustellen wird das iHAT-Tool (verfügbar im OTN) verwendet. Für das iHAT-Tool
benötigen Sie eine JAVA Umgebung der Version 1.3.1 oder höher.
Vorbereitungen
Zuerst
müssen
Sie
den
Oracle
Service
Oracle<ORACLE_HOMEBezeichnung>ProcessManager anpassen, defaultmässig steht der „Log On As“ auf dem
LocalSystem. Die Anmeldung müssen Sie umstellen auf den dedizierten Windowsbenutzer
unter dem Sie angemeldet sind.
Dies dient dazu, dass Sie später im Testfall einzelne Java-Prozesse über den Task-Manager
beenden (killen) können. Würde der ProcessManager-Dienst gegen den Benutzer
LocalSystem laufen, hätten Sie keine Berechtigung einzelne Prozesse welche über den
OPMN gestartet worden sind, zu beenden.
iHAT
Zur leichteren Darstellung der automatischen Restart-Funktionen wird das iHAT-Tool
verwendet, hierzu müssen Sie lediglich im OTN den sog. Thin-Client herunterladen und
entpacken. Nach dem Entpacken finden Sie folgende Verzeichnisse: cgi-bin und
htdocs\iHat.
Im Verzeichnis cgi-bin finden Sie das iHat.pl Perlscript, welches Sie in das
$ORACLE_HOME/Apache/Apache/cgi-bin kopieren müssen und den Header anpassen
entsprechend dem Verzeichnis in dem sich Ihr Perl befindet.
Unter dem Verzeichnis htdocs finden Sie ein Unterzeichnis iHat, welches Sie komplett in
das $ORACLE_HOME/Apache/Apache/htdocs kopieren. In diesem Verzeichnis befinden
sich 2 Grafikdateien und die gezippten JAVA-Classen für das iHAT-Tool.
Das iHAT-Tool kann nun auf zwei Arten verwendet werden: als Thin-Client
(Browserbasierend) oder als Fat-Client (Swing-Client).
Thin-Client:
Um den Thin-Client zu nutzen, müssen Sie zuerst iHAT im Thin-Client Mode starten.
Hierfür müssen Sie den „Request-Port“ des OPMN-Servers ermitteln (In unserem Beispiel
request=“6003“). Öffnen sie hierzu die opmn.xml Konfigurationsdatei im Verzeichnis
$ORACLE_HOME/opmn/conf :
<ias-instance
xmlns=http://www.oracle.com/ias-instance
xmlns:xsi=http://www.w3.org/1999/XMLSchema-instance
xsi:schemaLocation="http://www.oracle.com/ias-instance opmn.xsd">
<notification-server>
<port local="6100" remote="6200" request="6003"/>
<log-file path="c:\oracle\ias_core\opmn\logs\ons.log" level="3"/>
</notification-server>
<process-manager>
. . .
. . .
Anschliessend starten Sie das iHAT Tool im Thin-Client Mode:
$ORACLE_HOME\Apache\Apache\htdocs\iHat>
java –jar ihat.zip –i 5000 –j . servername:port
[info]: Starting iHAT...
[info]: Initializing image generator...
[info]: Initializing statistics engine...
[info]: Initialization complete.
Achten Sie unbedingt auf den Punkt zwischen “-j” und dem “Servername” !
Anschliessend können Sie den Thin-Client via Browser aufrufen:
http://servername:port/perl/ihat.pl
Servername = OHS Server
Port = OHS Port
Sie sollten dann entsprechend Ihrer Konfiguration eine Baumstruktur sehen wie oben
abgebildetet. In der Regel als Toplevel eine iAS Instanz, darunter angeordnet eine OHS
Instanz und zwei OC4J Instanzen (Home und OC4J_Demo).
Betrachten wir uns nun die OC4J Instanz OC4J_DEMO mit der default_island. Der Status
ist Alive, die PID ist 1316, der Gesamte Memorykonsum (in kB) beträgt 36588 kB, derzeit
ist der Free Memory 12262 kB, die Uptime beträgt 3005 Sekunden und zur Zeit sind keine
Request dagegen gelaufen, somit auch keine Rate/Request verfügbar.
Anhand der PID können wir nun diesen OC4J Prozess der OC4J Instanz OC4J_DEMO
beenden (killen) und beobachten, ob der OPMN Server wirklich seine Aufgabe erfüllt und
den Prozess neustartet. Hierzu öffnen Sie den Task-Manager und suchen sich den
javaw.exe Prozess mit der PID 1316 raus und beenden diesen.
Wenn Sie schnell genug zurück in ihren Browser wechseln sehen Sie nacheinander 3
Stufen:
Der Prozess ist gestoppt
Ein neuer Prozess (PID 1312) wird initialisiert durch den OPMN
Der neue Prozess (PID 1312) ist gestartet
was auch im Task-Manager ersichtlich ist
Fat-Client
Wenn Sie lieber den Fat-Client verwenden wollen müssen Sie folgenden Aufruf
verwenden:
$ORACLE_HOME\Apache\Apache\htdocs\iHat>
java –jar ihat.zip servername:port
Dann sollten Sie folgenden Swing-Client sehen:
Fazit
Die von Oracle zur Verfügung gestellten High Availibilty Komponenten erfüllen ihre
Aufgabe zur vollen Zufriedenheit ☺ und erleichtern die Bereitstellung von High Availibilty
Konfigurationen im iAS Umfeld.
Falls Sie noch mehr über den Oracle Internet Application Server Release 2 erfahren wollen,
dann würde es uns freuen, Sie in einem unserer Kurse begrüßen zu dürfen oder buchen Sie
uns für einen On-Site-Kurs bzw. Consulting vor Ort.
Viel Spaß und gute Verfügbarkeit Ihrer iAS-Umgebung wünscht Dirk Nachbar
Trivadis GmbH
Dirk Nachbar
Cityforum im Eichsfeld
Ferdinand-Stuttmann-Str. 13
D-65428 Rüsselsheim
Internet: http://www.trivadis.com
Mail:
[email protected]
Tel:
Fax:
+49 6142 210 18 0
+49 6142 210 18 29