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