www.ordix.de ORDIX News Das IT-Magazin der ORDIX AG Ausgabe 2/2005 € 2,20 15 Jahre ORDIX oder „Wenn einer eine Reise tut ...“ Application Server im Vergleich S. 27 Backup und Recovery mit Oracle 10g BEA WebLogic Server S. 12 Näher am Original: Data Guard S. 44 Partnerschaft ORDIX und VMware HP OpenView Performance Insight ORDIX ist zertifizierter „VMware VIP Enterprise Partner“ S. 21 Vom Netzwerk-Tool zum strategischen ITIL Reporting S. 34 Editorial Paderborn, Juni 2005 Was nun? 15 Jahre ORDIX, knapp 40 mal habe ich mich auf diese Art an Sie, unsere Kunden und Leser gewandt. Eigentlich sollte ich dieses Mal nur etwas über diese 15 Jahre schreiben. Aber dann kam die Wahl in NRW („Nordrhein-Westfalen“ für die Bayern, Baden-Württemberger ...); der Kanzler, genauer: der SPD Vorsitzende „Münti“, proklamiert Neuwahlen. Da werfe ich doch alles in den Papierkorb (und weg ist bei mir weg, also nichts von wegen wieder holen aus dem „Trash“) und fange mit dem Editorial ein weiteres, inzwischen fünftes Mal von neuem an. Wird jetzt nach der Wahl alles besser oder anders? Eine Woche später gab es erste Meldungen zum Konzept – sofern man von einem solchen sprechen kann. Mehrwertsteuer rauf, Pendlerpauschale und Eigenheimzulage runter. Hatten die das nicht vor ein paar Monaten noch blockiert? Die FDP ist sowieso gegen alle (Steuer-)Pläne der CDU. Aber natürlich gibt es trotzdem eine klare Koalitionsaussage. Die anderen zoffen sich (Koalitionskrise genannt), ob überhaupt und wenn, wie wird der Bundestag aufgelöst. Also weiterhin Kasperltheater in Berlin. Die Aufbruchstimmung dürfte sich spätestens nach dem jetzt noch kommenden Sommertheater wieder auf ein Normalmaß reduziert haben. Schade. Also schreibe ich doch noch etwas über 15 Jahre ORDIX. Hier bleibt nicht nur die Regierung stabil . Was bedeuten 15 Jahre? Der Mensch an sich befindet sich in diesem Alter mehr oder weniger intensiv in der Pubertät. Ein Unternehmen liegt damit laut Wirtschaftswoche 20/2005 knapp unter dem Durchschnittsalter von 18 Jahren. Ich dachte bis dato immer, dass ich ein alter Vorstand eines jungen Unternehmens in einer relativ jungen Branche bin. Ich scheine aber, ein nicht mehr ganz junger Vorstand in einem relativ alten Unternehmen einer nicht genau zu taxierenden Branche zu sein. Einiges hat sich getan in dieser Zeit: Angefangen vom Programmstarter Windows 2.1 (notwendiger Hauptspeicher: 16 MB) bis hin zum Programmstarter Windows 2003 bzw. XP (notwendiger Hauptspeicher: mindestens 512 MB). Gott sei Dank sind die Preise für Hauptspeicher gesunken. Das „World Wide Web“ hat sich gigantisch entwickelt. Mit Java und J2EE sind neue Technologien entstanden. Aber vielleicht greift man irgendwann auch mal wieder auf C-Programmierer zurück, wie im Jahr 1999, als plötzlich COBOL-, PL1- und andere Programmierer „alter“ Sprachen gesucht wurden. Viele Unternehmen, die 1990 noch existierten, sind verschwunden (Nixdorf, SNI, SCS, Sequent, Pyramid, Compaq, DEC, Tandem ...). Einige davon habe ich relativ aktiv in den letzten 25 Jahren miterlebt (siehe Interview Seite 30). In dieser Ausgabe finden Sie einiges zu diesen vergangenen 15 Jahren. Sie werden daneben auch erkennen, dass wir weiterhin an unseren Tugenden feilen. Z. B. Konstanz: 12 Jahre ORDIX Open, das Schachturnier für den Breitensport mit hochkarätigen Topspielern. Z. B. fachliches Know-how rund um Oracle (Optimizer, Backup und Recovery), DB2 (es wurde wieder was von Informix eingebaut) und Informix (auch hier heißt die Version nun 10). Mit BPEL wagen wir uns in ein neues Terrain. Daneben gibt es aus dem System Management Bereich Interessantes über HP Open View. Einmal mehr schicke ich Sie auch nach 15 Jahren mit einer interessanten ORDIX News in die Sommerpause. Und wenn ich mir den Müll ansehe, der da in den nächsten Monaten in Berlin produziert wird, vielleicht hätte ich doch noch mal in meinem elektronischen Papierkorb nachsehen sollen ... Wolfgang Kögler ORDIX News 2/2005 3 Inhaltsverzeichnis Unix/Linux/Open Source Standards 40 ....TYPO3 (Teil II): Content. Einfach. Vielfältig. Wir beschreiben die Installation und Einrichtung des CMS unter Berücksichtigung eines eigenen Templates. System Management 03 ....Editorial 04 ....Inhalt 24 ....Seminarübersicht: Preise, Termine ... bis Dezember 2005 33 ....Impressum Java/XML Titela 34 ....HP OpenView Performance Insight: them Vom Netzwerk-Tool zum strategischen ITIL Reporting Eine Kurzvorstellung des Reportingtools „HP OpenView Performance Insight“ und dessen Wandlung vom Netzwerk Performancetool zum strategischen Bestandteil der HP OpenView Familie. Datenbanken 05 ....DB2 HADR (Teil I): High Availability Disaster Recovery Bei steigender Datenmenge entsteht das Problem eines schnellen Recoverys. Der Artikel beschreibt die Funktionsweise von DB2 High Availability Disaster Recovery . 08 ....Verlagerung von Java-Anwendungen in die Datenbank (Teil I) Beispielhaft stellen wir das Ausführen der Anwendungen innerhalb der Datenbank vor und erläutern ein Sicherheitskonzept sowie die Anwendungsmöglichkeiten von Java Stored Procedures. 14 ....Business Process Execution Language (BPEL), Teil I: Web Services im Takt Die Integration von Web Services, um Geschäftsprozesse abzubilden, braucht Standards. BPEL stellt einen Standard als Plattform, auf der Geschäftsprozesse technisch abgebildet, modelliert und kontrolliert ausgeführt werden können. 22 ....IBM Informix Dynamic Server 10.00: The next Generation ... Ein erster, allgemeiner Überblick über die Neuerungen des aktuellen IBM Informix Release 10.00. 38 ....Oracle 10g (Teil V): dbms_stats Mit 10g liefert Oracle durch das erweiterte Paket dbms_stats eine gute Möglichkeit, auch schwierige Statistikprobleme zu lösen. Hier erhalten Sie einen ersten Einstieg. 44 ....Backup und Recovery mit Oracle 10g (Teil III): Titeeml-a th Näher am Original: Data Guard Lesen Sie über die Neuerungen bei Data Guard mit 10g. Einen Schwerpunkt bildet die Flashback Integration. 4 12 ....Application Server im Vergleich (Teil IV): BEA WebLogic Server Wir stellen den Application Server von BEA WebLogic vor, listen seine Kompatibilität gegenüber den von SUN erstellten Standards auf und sprechen Möglichkeiten der automatischen Konfiguration und Administration an. Titelthema Aktuell 18 ....Open Source für den Mittelstand – 10 Jahre erfolgreiche Partnerschaft: KARRENA und ORDIX AG 21 ....Partnerschaft ORDIX und VMware: ORDIX ist zertifizierter „VMware VIP Enterprise Partner“. Titelthema 26 ....Larry Ratlos Rätsel Widerspenstiges Oracle ... 27 ....15 Jahre ORDIX oder Titel„Wenn einer eine Reise tut ...“ thema ORDIX feiert sein Jubiläum und zieht über die Zusammenarbeit mit seinen Kunden das Fazit: „Vertrauen war und ist die Basis für den gemeinsamen Erfolg.“ 30 ....Sind 15 Jahre im Zeitalter der IT jung oder alt? Interview mit Wolfgang Kögler. 33 ....Chess Classic Mainz 2005 Rätseln Sie mit und spielen Sie im August gegen die „Schach-Könige“! 47 ....Einladung zum 3. ORDIX Fachtreff in 2005 VMware Serverkonsolidierung und Ressourcenoptimierung leichter gemacht. ORDIX News 2/2005 Datenbanken DB2 HADR (Teil I) – High Availability Disaster Recovery Die von Informix unter dem Namen High Availability Data Replication bekannte Replikation ist ab der Version 8.2 von DB2 unter dem Namen HADR verfügbar. Im ersten Teil dieses Artikels wollen wir die generelle Funktionsweise vorstellen. Der zweite Teil beschäftigt sich dann mit der praktischen Umsetzung. Übersicht HADR ist eine Datenbankreplikation, die vor dem Ausfall eines Datenbankservers schützt. Abbildung 1 zeigt die generelle Arbeitsweise einer HADR. Die Datenbank wird dabei den Clients innerhalb sehr kurzer Zeit ohne Datenverlust auf einem anderen Server zur Verfügung gestellt. Dafür werden zwei Server mit gleicher Hardund Softwareausstattung benötigt. Auf beiden Servern wird eine Datenbank erzeugt. Die Datenbank, mit der im normalen Betrieb gearbeitet wird, ist die Primärdatenbank. Die andere, die für den Fehlerfall verwendet wird, die Bereitschafts- oder Standby-Datenbank. Der Anwender greift immer auf die Primärdatenbank zu. Die Änderungen auf der Primärdatenbank werden auf der Standby-Datenbank nachgefahren. Dazu werden die Protokolldateien von der Primärdatenbank zur StandbyDatenbank übertragen und dort nachgefahren. Die Standby-Datenbank befindet sich permanent im Status „Aktualisierende Wiederherstellung wird ausgeführt“. Wenn die primäre Datenbank ausfällt, übernimmt die Standby-Datenbank die Funktion der Primärdatenbank. Über die automatische Client-Weiterleitung kann dies für die Clients transparent erfolgen. Der Artikel richtet sich an Rechenzentrumsleiter und DB2 Administratoren, die die Funktionsweise von HADR verstehen und durch den Einsatz von HADR die Recovery-Zeiten bei einem Systemausfall minimieren wollen. DB2 Voraussetzungen Auf beiden Rechnern muss dieselbe DB2 Version mit gleichem Stand der Fix Packs installiert sein. Ein Mischen z. B. von 32 und 64 Bit Versionen ist nicht möglich. Tablespaces und Container müssen identisch im Bezug auf Typ (DMS oder SMS), Größe, Pfad und Dateityp angelegt werden. Durch die Verwendung von virtuellen Pfaden ist es möglich, auf beiden Maschinen auch unterschiedliche physikalische Pfade zu verwenden. Übersichtlicher ist es aber auf jeden Fall, beide Maschinen auch physikalisch identisch aufzubauen. Da alle Operationen sowohl im Bufferpool der Primärdatenbank als auch im Bufferpool der Standby-Datenbank wiederholt werden, müssen die Bufferpools auf beiden Maschinen dieselbe Größe haben. Einschränkungen HADR wird nur von der DB2 UDB Enterprise Server Edition (ESE) unterstützt. Die Datenbanksysteme dürfen nicht partitioniert sein. Da sich die Standby-Datenbank immer im Status „Aktualisierende Wiederherstellung wird ausgeführt“ befindet, können Clients nur auf die Primärdatenbank zugreifen. Daher ist es nicht möglich, eine Systemvoraussetzungen Die Rechner, auf denen die Primärdatenbank und die Standby-Datenbank laufen, müssen auf der gleichen Hard- und Software aufgebaut sein. Insbesondere, da die Standby-Datenbank nach der Übernahme zur Primärdatenbank wird. Bei der Hardware müssen Produkte des gleichen Herstellers mit der gleichen Architektur verwendet werden. Die Versionen und Korrekturstände des Betriebsystems müssen dieselben sein. Zwischen beiden Rechnern wird eine schnelle TCP-IP Netzwerkverbindung benötigt. HADR unterstützt nur das Netzwerkprotokoll TCP/IP. ORDIX News 2/2005 DB2 Agent HADR TCP/IP HADR Parallel Log Replay Logpuffer Tabellen Indizes Log-Writer Log-Writer Logdateien Logdateien Tabellen Indizes Abb. 1: Die Arbeitsweise des High Availability Disaster Recoverys. 5 Datenbanken HADR_LOCAL_HOST Ist der lokale Rechnername, auf dem die Datenbank läuft. HADR_LOCAL_SVC Ist der lokale Servicename oder die lokale Portnummer, über die HADR kommunizieren soll. HADR_REMOTE_HOST Ist der Rechnername des anderen Rechners. HADR_REMOTE_SVC Ist der Servicename oder die Portnummer, über die die HADR-Prozesse auf der Remote-Datenbank kommunizieren. HADR_REMOTE_INST Ist der Name der Instanz, unter der die Remote-Datenbank läuft. HADR_TIMEOUT Ist die Zeit in Sekunden, die HADR beim Aufbau der Verbindung wartet, bevor es diese abbricht. HADR_SYNCMODE Ist der von HADR verwendete Synchronisationsmodus. Abb. 2: Zu setzende Parameter in der Datenbankkonfiguration. Online-Sicherung der Standby-Datenbank und ihrer Protokolldateien zu erstellen. Start der Datenbank Änderungen, die an der Datenbankmanager- bzw. Datenbankkonfiguration vorgenommen werden, werden nicht repliziert und müssen manuell auf beiden Systemen vorgenommen werden. Lokales Catch-up Fernes Catch-up anstehend Datenbankkonfiguration Die Datenbankkonfigurationsparameter auf der Primärdatenbank und der Standby-Datenbank müssen identisch sein. Ansonsten kann es beim Nachfahren der Protokolldateien auf der StandbyDatenbank zu Fehlern kommen. Änderungen an den Konfigurationsparametern müssen manuell auf beiden Datenbanken vorgenommen werden. Bei dynamischen Parametern ist kein Neustart der Datenbank erforderlich. Bei nicht dynamischen Parametern muss die Datenbank neu gestartet werden. Durch ein schrittweises Upgrade ist es möglich, auch dies ohne große Ausfallzeit durchzuführen. Die Standby-Datenbank empfängt alle Protokolldateien in ihrem „Log Receive Buffer“. Die Standardeinstellung für die Größe des Puffers ist die doppelte Größe von LOGBUFSZ. Um an dieser Stelle Engpässe zu vermeiden, ist es sinnvoll, die Größe des Log Receive Buffers zu erhöhen. Dies wird über die Variable DB2_HADR_BUF_SIZE der DB2 Profile Registry vorgenommen. Konfigurationsparameter Für HADR gibt es spezielle Parameter in der Datenbankkonfiguration. Durch das Setzen der Parameter wird eine Datenbank aber noch nicht zu einer HADR-Datenbank. Dies muss mit den entsprechenden Kommandos (HADR START und HADR STOP) vorgenommen werden. Die zu setzenden Parameter sind in Abbildung 2 beschrieben. Status der Standby-Datenbank Nach dem Starten der Standby-Datenbank durchläuft die Datenbank die in Abbildung 3 dargestellten Modi. Lokales Catch-up Nach dem Starten der Datenbank versucht diese, die Protokolldateien in ihrem lokalen Protokollverzeichnis zu lesen und nachzufah- 6 Verbindung verloren Verbunden Verbindung verloren Fernes Catch-up Peerstatus Abb. 3: Status der Standby-Datenbank. ren. Dazu ist keine Verbindung zur Primärdatenbank erforderlich. Ein Zugriff auf die Datenbank ist in diesem Modus nicht möglich. Sind alle Protokolle nachgefahren und ist keine Verbindung zur Primärdatenbank vorhanden, wechselt die Standby-Datenbank in den Status „Fernes Catch-up anstehend“. Sobald eine Verbindung zur Primärdatenbank vorhanden ist, wechselt sie in den Status „Fernes Catch-up“. Fernes Catch-up Die Primärdatenbank liest ihre Protokolldateien und überträgt diese zur Standby-Datenbank. Die Standby-Datenbank fährt die Protokolle nach. Wenn alle Protokolle übertragen und nachgefahren sind, wechseln beide Datenbanken in den „Peerstatus“. Peerstatus Im Peerstatus überträgt die Primärdatenbank, sobald eine Protokoll-Page auf die Platte geschrieben wird, diese an die Standby-Datenbank. Die Standby-Datenbank schreibt die ORDIX News 2/2005 Datenbanken Protokoll-Pages in ihre Protokolldateien. Dadurch ist sichergestellt, dass die Reihenfolge der Protokolleinträge in beiden Datenbanken identisch sind. Danach werden die Transaktionen aus den Protokollen in der Standby-Datenbank nachgefahren. Der Status der Datenbank kann mit folgendem Kommando ermittelt werden: db2 get snapshot for database on sample Synchronisationsmodi Über den Konfigurationsparameter HADR_ SYNCMODE kann der Modus der Replikation eingestellt werden. Über den Modus wird festgelegt, wann eine Transaktion auf der Primärdatenbank nach einem COMMIT die Bestätigung erhält, dass die Transaktion festgeschrieben wurde. Durch den Modus wird zum einen die Transaktionsantwortzeit und zum anderen die Sicherheit beeinflusst. Wobei mit besserer Transaktionsantwortzeit die Sicherheit abnimmt. Im einzelnen gibt es die drei folgenden Synchronisationsmodi: SYNC (synchron) Der Synchronisationsmodus SYNC bietet die höchste Sicherheit gegen Datenverlust, hat aber die längsten Transaktionsantwortzeiten. Eine Transaktion auf dem Primärrechner wird erst dann als festgeschrieben betrachtet, wenn die Protokolleinträge auf dem Primärrechner in die Protokolldatei geschrieben wurden, die Protokolleinträge zur Standby-Datenbank übertragen wurden und auch dort in die Protokolldatei geschrieben wurden. Dadurch wird sichergestellt, dass Protokolleinträge einer festgeschriebenen Transaktion auf beiden Datenbanken vorhanden sind. NEARSYNC (fast synchron) Der Synchronisationsmodus NEARSYNC hat etwas kürzere Transaktionsantwortzeiten aber auch weniger Sicherheit. Eine Transaktion auf dem Primärrechner wird erst dann als festgeschrieben betrachtet, wenn die Protokolleinträge auf dem Primärrechner in die Protokolldatei geschrieben wurden, die Protokolleinträge zur Standby-Datenbank übertragen wurden und dort im Hauptspeicher angekommen sind. Bei einem gleichzeitigen Ausfall der Systeme, kann es vorkommen, dass Protokollein- ORDIX News 2/2005 Glossar HADR DMS High Availability Disaster Recovery Database Managed Space. Plattenplatz, der vom DB-System verwaltet wird. SMS System Managed Space. Plattenplatz, der vom Betriebsystem verwaltet wird. Partitionierte DB Datenbank, die auf mehrere Rechner verteilt ist. träge verloren gehen, wenn danach nur noch die Standby-Datenbank zur Verfügung steht. ASYNC (asynchron) Der Synchronisationsmodus ASYNC bietet die kürzesten Transaktionsantwortzeiten, aber auch die geringste Sicherheit. Eine Transaktion auf dem Primärrechner wird erst dann als festgeschrieben betrachtet, wenn die Protokolleinträge auf dem Primärrechner in die Protokolldatei geschrieben wurden und an die TCP-Schicht des Rechners übergeben wurden. Auch hier ist es möglich, dass Protokolldateien verloren gehen. Das Hauptproblem beim Verlust von Protokolldateien ist, dass die ursprüngliche Primärdatenbank, nicht mehr als Standby-Datenbank verwendet werden kann. In ihr sind Transaktionen festgeschrieben, die auf der ursprünglichen Standby-Datenbank nicht festgeschrieben waren, als diese die Funktion der Primärdatenbank übernommen hat. Um die ursprüngliche Primärdatenbank wieder als Standby-Datenbank zu verwenden, ist es notwendig, einen kompletten Restore durchzuführen. Automatische Client-Weiterleitung Bei der Funktionsübernahme verlieren die Clients die Verbindung zur Datenbank. Bei einem Zugriff auf die Datenbank kommt es zu einer Fehlermeldung. Dies kann mit der automatischen ClientWeiterleitung verhindert werden. Auch hier geht die aktuelle Verarbeitung verloren, nur der Verbindungsaufbau zur Standby-Datenbank erfolgt automatisch. Auf der Primärdatenbank kann ein alternativer Server für eine Datenbank hinterlegt werden. Die wird mit dem Kommando UPDATE ALTERNATE SERVER FOR DATABASE vorgenommen. Im folgenden Beispiel wird für die Datenbank sample der Rechner rechner2 und der Netzwerkport 50000 als Alternative eingetragen: db2 update alternate server for database sample using hostname rechner2 port 50000 Der Client bekommt diese Information dann beim Verbindungsaufbau zur Datenbank mitgeteilt. Ausblick Der zweite Teil des Artikels zeigt an einem kleinen Beispiel, wie HADR aufzusetzen und zu konfigurieren ist. Holger Demuth ([email protected]). 7 Datenbanken Verlagerung von Java-Anwendungen in die Datenbank (Teil I) Erschienen in der DOAG News Q2/2005 Oracle stellt seit der Oracle-Datenbankversion 8.1.5 eine Java Virtual Machine (OracleJVM) zur Verfügung. Mit Hilfe von OracleJVM besteht die Möglichkeit, Java-Anwendungen innerhalb der Datenbank ausführen zu lassen. Dieser Beitrag zeigt anhand von Beispielen, wie Java-Anwendungen in eine Oracle 10g Datenbank geladen und ausgeführt werden können. Dabei werden ein Sicherheitskonzept in Bezug auf die Java-Klassen und die Anwendungsmöglichkeiten von Java Stored Procedures erläutert. Im ersten Teil dieser Reihe werden die Java Stored Procedures vorgestellt und die Besonderheiten bei der Entwicklung von Java-Anwendungen für die OracleJVM skizziert. Im zweiten Teil gehen wir dann auf das Resolving-Konzept zum Auffinden aller von einer Klasse benötigten Klassen innerhalb der Datenbank sowie einige Anwendungsmöglichkeiten von Java Stored Procedures ein. Dieser Artikel richtet sich an Datenbank-Anwendungsentwickler, die sich zusätzlich zum PL/SQL auch für Java als serverseitige Datenbankprogrammiersprache entscheiden können. Einsatz von Java Stored Procedures OracleJVM In den meisten Fällen wird die Geschäftslogik sowohl von einer Datenbankanwendung als auch von Batchprogrammen aufgerufen. Mit Hilfe von Stored Procedures kann die Funktionalität zentral in der Datenbank abgelegt werden und sowohl von einer Dialog-Anwendung als auch von einem Batchprogramm verwendet werden. OracleJVM ist eine in den Kernel von Oracle implementierte Java Virtual Machine. Ab der Oracle Version 10g stehen J2SE 1.4 (Java 2 Standard Edition) und der Datenbanktreiber JDBC 3.0 in der Datenbank zur Verfügung. Somit können Java-Programme, die in einer OracleJVM Version 10g ablaufen, den vollen Umfang der Java-Funktionsbibliotheken von J2SE 1.4 nutzen. Durch die Nutzung von Stored Procedures lässt sich somit die Wiederverwendbarkeit der einzelnen Anwendungskomponenten steigern und die Komplexität der Anwendungen deutlich reduzieren. Da die Stored Procedures vorkompiliert in der Datenbank aufbewahrt werden, ist außerdem eine schnelle Ausführung und ein direkter Datenzugriff möglich. Dies stellt eine gute Performance sicher. Ein großer Nachteil von Stored Procedures ist jedoch die Datenbankabhängigkeit. Die meisten Datenbankhersteller stellen eine eigene Datenbankprogrammiersprache zur Verfügung, mit der Stored Procedures erstellt werden können. Stored Procedures lassen sich nur mit hohem Aufwand von einem Datenbanksystem auf ein anderes Datenbanksystem migrieren. Um das Problem der Datenbankabhängigkeit zu lösen, kann man auf die sogenannten Java Stored Procedures zurückgreifen. Die Java Stored Procedures werden in der Programmiersprache Java erstellt. Sie können auf jedem Rechnersystem mit Hilfe einer 8 Java Virtual Machine (JVM) interpretiert und ausgeführt werden. Außerdem wird der Datenbankzugriff einer Java Stored Procedure mit einem JDBC-Datenbanktreiber sichergestellt, der für alle herkömmlichen Datenbanksysteme verfügbar ist. Die Java-Funktionsbibliotheken von J2SE befinden sich auf dem Datenbankrechner in einem $ORACLE_HOME/javavm/admin Verzeichnis. Da der vom Java-Compiler erstellte Java-Bytecode zur Laufzeit vom Interpreter (OracleJVM) interpretiert und ausgeführt wird, entstehen Ineffizienzen bei der Programmausführung. Um diesen Engpass zu beseitigen, sind alle Java-Funktionsbibliotheken mit einem betriebssystemabhängigen Native Compiler übersetzt. Ein Native Compiler übersetzt den Java-Bytecode einer Java-Klasse in einen betriebssystemabhängigen Programmcode und senkt damit deutlich die Ausführungsgeschwindigkeit von Java-Programmen, die innerhalb von OracleJVM ablaufen. Oracle bietet auch die Möglichkeit, selbst entwickelte Java-Klassen mit einem Native Compiler zu übersetzen. ORDIX News 2/2005 Datenbanken import java.sql.*; import oracle.sql.*; import oracle.jdbc.driver.*; public class Mitarbeiter extends Object { public static void setGehalt(int ma_nr, int gehalt) { try { DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:orcl10","mf","mf"); String sqlUpdate = "UPDATE ma SET gehalt = ? WHERE ma_nr = ?"; PreparedStatement pstmt = conn.prepareStatement(sqlUpdate); pstmt.setInt(1, gehalt); pstmt.setInt(2, ma_nr); pstmt.executeUpdate(); conn.close(); pstmt.close(); } catch(Exception e) { e.printStackTrace(); } } public static void main(String[] args) { setGehalt(1, 900); } } Abb. 1: Eine typische Client/Server Java-Datenbankanwendung. Besonderheiten bei der Entwicklung von Java-Anwendungen für die OracleJVM solange die erstellten bzw. veränderten Bilder nicht angezeigt werden. Bei der Entwicklung von Java-Anwendungen für die OracleJVM muss man auf folgende Besonderheiten achten: Fehlende Unterstützung für Multithreading-Verfahren • Jede statische Methode kann als Programmeinstiegspunkt verwendet werden. • Es gibt keine Unterstützung für GUI-Komponenten wie AWT und Swing. • Multithreading wird nicht unterstützt. • Es muss der serverseitige JDBC-Treiber verwendet werden. Programmeinstiegspunkt In einer herkömmlichen JVM-Umgebung stellt die main-Methode einer Java-Klasse den Einstiegspunkt eines Programms dar. Beim Starten einer Klasse mit dem Kommando java wird die main-Methode dieser Klasse aufgerufen. Der Einstiegspunkt einer in der Datenbank gespeicherten Java-Klasse kann eine beliebige, statische Methode dieser Klasse sein. Keine Unterstützung für GUI-Komponenten wie AWT und Swing Da es sich bei den Java-Anwendungen, die innerhalb einer OracleJVM ablaufen, um serverseitige Anwendungen handelt, ist die Verwendung von grafischen Komponenten (GUI) nicht sinnvoll. Daher wird die Erzeugung von Instanzen der GUI-Objekte wie z. B. AWT und Swing nicht unterstützt. Allerdings kann eine GUI-Funktionalität, wie z. B. die Erstellung und Manipulation von Bildern, verwendet werden, ORDIX News 2/2005 Eine weitere Besonderheit bei der Entwicklung von Java-Anwendungen für die OracleJVM ist die fehlende Unterstützung für das Multithreading-Verfahren. In einer OracleJVM werden alle Threads nacheinander anstatt gleichzeitig ausgeführt. Java-Anwendungen müssen allerdings wegen dieser Besonderheit nicht extra angepasst werden. Sie können unverändert in der serverseitigen OracleJVM ausgeführt werden. Serverseitige JDBC-Treiber Beim Zugriff von Java Stored Procedures auf die Datenbankinhalte muss ein serverseitiger JDBC-Treiber verwendet werden. Bei der Verwendung dieses datenbankinternen JDBC-Treibers sind folgende Punkte zu berücksichtigen: • Der serverseitige JDBC-Treiber muss im Programm nicht registriert werden, da dieser bereits im Oracle Server integriert ist. • Die Datenbankverbindung kann nicht physisch geschlossen werden. • Die Verwendung von Auto-Commits wird nicht unterstützt. • Eine Verbindung zu einer entfernten Datenbank ist mit dem serverseitigen JDBC-Treiber nicht möglich. • Die JDBC-Datenbankverbindung wird mit der Zeichenkette jdbc:default:connection: ermittelt, z. B. DriverManager. getConnection("jdbc:default:connection:"). Java-Klassen ohne Datenbankzugriff Die o. g. Besonderheiten bei der Entwicklung von Java-Anwendungen für die OracleJVM beziehen sich auf Java-Klassen, die einen Datenbankzugriff enthalten. Java-Klassen, die über keinen Datenbankzugriff verfügen, müssen nicht angepasst werden. Sie können ohne Änderungen in der OracleJVM-Umgebung verwendet werden. 9 Datenbanken import java.sql.*; import oracle.sql.*; import oracle.jdbc.driver.*; public class Mitarbeiter extends Object { public static void setGehalt(int ma_nr, int gehalt) { try { //DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); Connection conn = DriverManager.getConnection( "jdbc:default:connection:"); String sqlUpdate = "UPDATE ma SET gehalt = ? WHERE ma_nr = ?"; PreparedStatement pstmt = conn.prepareStatement(sqlUpdate); pstmt.setInt(1, gehalt); pstmt.setInt(2, ma_nr); pstmt.executeUpdate(); //conn.close(); pstmt.close(); } catch(Exception e) { e.printStackTrace(); } } } Abb. 2: Für die Ausführung in der Datenbank veränderte Klasse Mitarbeiter. loadjava -user mf/mf@orcl10 -resolve -verbose C:\java\Jora.class Abb. 3: Die Klasse Jora wird in das Datenbankschema MF geladen. exec dbms_java.loadjava( '-user mf/mf@orcl10 -resolve -verbose C:\java\Jora.class') Abb. 4: Kommando, mit dem die Jora Klasse in das Datenbankschema MF der ORCL10 Datenbank geladen wird. exec dbms_java.grant_permission( 'MF','java.io.FilePermission','C:\java\*','read') Abb. 5: Der Benutzer MF erhält ein Leserecht auf alle Dateien im Verzeichnis C:\java. Erstellung von Java-Klassen Laden der Java-Klassen in die Datenbank Java-Klassen, die aus einer Java Stored Procedure aufgerufen werden, können mit Hilfe einer beliebigen Java-Entwicklungsumgebung wie z. B. JDeveloper erstellt, kompiliert und getestet werden. Der Quellcode in Abbildung 1 stellt eine typische Client/Server Java-Datenbankanwendung dar, die auf einem Client mit einer Java Virtual Machine lokal aufgerufen wird. Um eine Java-Klasse in einer OracleJVM-Umgebung zu starten, muss diese zunächst in ein Datenbankschema geladen werden. Dabei akzeptiert ein Datenbankschema folgende Dateiarten: Um das in Abbildung 1 dargestellte Programm in eine Oracle Datenbank zu verlagern, müssen die zuvor dargestellten Besonderheiten bei der Entwicklung von Java-Anwendungen für die OracleJVM berücksichtigt werden. Der Quellcode in Abbildung 2 zeigt die bereits für die Ausführung in der Datenbank veränderte Klasse Mitarbeiter. In der Klasse Mitarbeiter sind zum einen die Registrierung des JDBC-Treibers entfernt und die Ermittlung der serverseitigen Datenbankanbindung verändert worden. Zum anderen wurde die close Anweisung zum Schließen der Datenbankanbindung entfernt. 10 • Java-Sourcecode-Datei (*.java) • Java-Class-Datei (*.class) • Java-Ressource-Datei (*.jar bzw. *.zip) Wird eine Java-Sourcecode-Datei in ein Datenbankschema geladen, so wird diese implizit mit dem in der Datenbank verfügbaren JavaCompiler in eine Java-Class-Datei übersetzt. Mit der Anweisung in Abbildung 3 wird eine Java-Klasse Jora in ein Datenbankschema MF geladen. ORDIX News 2/2005 Datenbanken Glossar RMI RPC Multithreading RMI bedeutet Remote Method Invocation. Mit RMI besteht die Möglichkeit, innerhalb einer JVM, Methoden von Objekten aufzurufen, die sich in einer anderen JVM befinden. Remote Procedure Call (RPC) ist ein Protokoll für die Implementierung verteilter Anwendungen. Multithreading bedeutet, dass Programme parallel verarbeitet werden können. Literaturhinweise ► Oracle und Java, Datenbankentwicklung für E-Commerce-Anwendungen, Elion Bonazzi, Glenn Stokol, Markt+Technik Verlag, 2002 ► Unleash the Power of Java Stored Procedures, Oracle Corporation, http://otn.oracle.com/, 2002 ► Simplify with Java Stored Procedures, Oracle Corporation, http://otn.oracle.com/, 2004 ► Oracle10g, Java Developer's Guide Release 1 (10.1), Oracle Cor- Abb. 6: Laden von Java-Klassen in eine Oracle Datenbank. poration, 2004 dropjava -user mf/mf@orcl10 -verbose Jora oder exec dbms_java.dropjava('-user mf/mf@orcl10 -verbose Jora') Abb. 7: Zwei alternative Kommandos, die die Jora Klasse aus der ORCL10 Datenbank entfernen. Das Setzen der Option –resolve des Kommandos l o a d j a v a legt fest, dass nach dem Laden und Kompilieren von Java-Klassen die Verfügbarkeit der abhängigen JavaKlassen überprüft werden soll. Die Option –verbose aktiviert die Ausgabe der Meldungen auf dem Bildschirm, während die Klassen in die Datenbank hochgeladen werden. Alternativ zum loadjava Kommando lässt sich das DBMS_JAVA Paket verwenden. Dieses Paket verfügt über Prozeduren, mit denen unter anderem Java-Klassen in die Datenbank geladen und aus der Datenbank entfernt werden können. Mit dem in Abbildung 4 gezeigten Kommando wird eine Jora Klasse in das Datenbankschema MF der ORCL10 Datenbank geladen. Voraussetzung für den Ladevorgang mit dem DBMS_JAVA Paket ist allerdings das Leserecht des Datenbankbenutzers auf die zu ladende Datei. In der OracleJVM-Umgebung wird der Zugriff auf Ressourcen mit einer sogenannten Java-Policy Tabelle sichergestellt. Diese Tabelle gehört dem Benutzer SYS und kann über die Views DBA_JAVA_POLICY und USER_JAVA_POLICY abgefragt werden. ORDIX News 2/2005 Mit dem Kommando in Abbildung 5 wird dem Benutzer MF ein Leserecht auf alle in dem Verzeichnis C:\java vorhandenen Dateien erteilt. Bei der Angabe des Verzeichnisses kann mit der Syntax C:\java\festgelegt werden, dass das Leserecht auch noch für die im Verzeichnis vorhandenen Unterverzeichnisse gelten soll. Abbildung 6 veranschaulicht das Laden von Java-Klassen in eine Oracle Datenbank. Java-Klassen aus der Datenbank entfernen Wird eine Java-Klasse in der Datenbank nicht mehr benötigt, so kann diese mit dem dropjava Kommando aus der Datenbank entfernt werden. Die beiden in Abbildung 7 aufgeführten Kommandos entfernen die Jora Klasse aus der ORCL10 Datenbank. Ausblick In der nächsten Ausgabe erläutern wir unter anderem das Resolving-Konzept und die Veröffentlichung von Java-Klassen in der Datenbank. Außerdem stellen wir einige Anwendungsmöglichkeiten von Java Stored Procedures vor. Markus Fiegler ([email protected]). 11 Java/XML – Titelthema Application Server Application Server im Vergleich (Teil IV): BEA WebLogic Server Der in diesem Artikel vorgestellte Application Server ist einer der meistverwendeten Application Server im kommerziellen Bereich. Nachdem BEA unangefochten die Führung bei den Produktumsätzen von Application Servern innehatte, muss BEA inzwischen die Spitzenposition mit dem Application Server von IBM teilen. Der Application Server von BEA, als BEA WebLogic Server bezeichnet, basiert ausschließlich auf Java. Diesbezüglich kann er auf allen Betriebssystemen eingesetzt werden, auf denen auch Java zur Verfügung steht. Eine Unterstützung gewährleistet BEA allerdings „nur“ für ca. 35 Betriebssysteme. Bei dieser Auswahl sind die gängigen Server-Betriebssysteme wie Solaris, HP-UX, AIX, Microsoft Windows (2000/XP) sowie Linux von Novell SuSE oder RedHat vertreten. Für die auf Intel-Prozessoren basierenden Betriebssysteme bringt BEA eine eigene Virtuelle Maschine für Java (JRockit) mit! Diese unterstützt sowohl den 32-Bit- wie auch den 64-Bit-Prozessor von Intel. Spezifikation/ Standard WebSphere 5 (Stand 05/04) JBoss 4.0 (Stand 11/04) Borland ES 5.2.1 BEA Weblogic CORBA X v2.3.1 v2.6 X EJB v2.0 v2.1 v2.1 v2.0 IIOP X durch CORBA X X J2EE v1.3 v1.4 v1.3 v1.3 JAAS v1.0 v1.0 X X JAF 1.2 v1.0 X X JAXP 1.1 v1.2 X X JAXR X v1.0 v1.0 - JAX-RPC 1.0 v1.1 v1.0 v1.0 JCA v1.0 v1.5 X v1.3 JCE X durch J2SE 1.4 X X JDBC v2.0 durch J2SE 1.4 v2.0 v3.0 JMS v1.0 v1.1 v.1.0.2 v.1.0.2b JMX X v1.2 X v.1.0 JNDI X v1.2.1 X X JSP v1.2 v2.0 v1.2 v.1.2 JSSE X X X X JTA v1.0 v1.0.1B X v.1.0.1A LDAP X durch jndi X X RMI X X X X Java Servlets v.2.3 v2.4 v2.3 v.2.3 Java Mail 1.2 v1.3 X v.1.2.3 SAAJ 1.1 v1.2 v1.1 X SOAP 1.1 v1.1 v1.1 v.1.2 UDDI 2.0 v2 X v.2.0 WSDL 1.0 v1.1 X v.1.1 X.509 X durch JAAS X X XML X X X X Oracle AS Abb. 1: Überblick über unterstützte Spezifikationen und Standards bei IBM WebSphere, JBoss, Borland Enterprise Server und BEA Weblogic. Der Oracle Application Server wird im nächsten und damit letzten Teil dieser Reihe analysiert. 12 Die Kompatibilität des WebLogic Servers mit dem von Sun spezifizierten Standard ist der Abbildung 1 zu entnehmen. Mit dem WebLogic Server können J2EE-Anwendungen nach dem derzeitigen Stand der Technik realisiert werden. Standardwerkzeuge, wie z. B. Struts als Framework zur Entwicklung von Web-basierten Benutzeroberflächen oder ant, werden mitgeliefert und unterstützt. Umfassende BeispielAnwendungen für die unterschiedlichen J2EEThemen wie Web-Services, den Einsatz von Enterprise Java Beans oder Servlets vermitteln die Grundlagen zu den Techniken; die Dokumentation gibt ausführliche Informationen. Darüber hinaus bietet BEA zur Vereinfachung der Entwicklung das Produkt WebLogic Workshop an, das die Entwicklung von J2EE durch Kapselung vereinfachen soll (siehe Abbildung 2). Darauf aufbauend wird WebLogic Portal für die Erstellung von Internet-Portalen angeboten. Von der Performance und der Stabilität des WebLogic Servers konnte sich die ORDIX AG in diversen Entwicklungsprojekten überzeugen, in denen Enterprise Java Beans und der Java Message Server zum Einsatz kamen. System Management Standardmäßig wird die betriebliche Administration über eine grafische Benutzeroberfläche ermöglicht. Diese stellt eine reine WebAnwendung dar, der Administrator muss da- WebLogic Workshop Plattformen J2EE Integrated Development Environment Der Artikel wendet sich gleichermaßen an Entwickler und Entscheider von J2EE Projekten. User Integration WebLogic Portal Application, Process, B2B Integration WebLogic Integration Application Framework WebLogic Workshop Application Server WebLogic Server JVM JRockit Abb. 2: Software-Komponenten zum WebLogic Server. ORDIX News 2/2005 Java/XML - <project name="ORDIXDomain" default="ordix.config"> <taskdef name="wlconfig" classname="weblogic.ant.taskdefs.management.WLConfig" /> <property name="user" value="user" /> <property name="password" value="password" /> <property name="adminurl" value="t3://localhost:7000" /> <property name="server.name" value="OrdixServer" /> <property name="server.domain" value="ordixdomain" /> - <target name="ordix.config"> <mkdir dir="${server.domain}" /> <wlserver username="${user}" password="${password}" servername="${server.name}" domainname="${server. domain}" dir="${server.domain}" port="7000" generateconfig="true" beahome="d:\bea" /> </target> </project> Abb. 3: ant-Skript zur Erstellung einer Domain. her keine eigenen Software-Komponenten installieren. Eine Fernadministration ist problemlos möglich. Erwähnenswert ist aber auch, dass die wesentlichen Administrationsaufgaben mit Hilfe von Erweiterungen von ant ausgeführt werden können, dazu gehören beispielsweise: • Die Einrichtung einer Application Server Domain • Die Konfiguration von Datenbank Connections • Das Starten und Stoppen • Der Prozess des Deployments Das ist einerseits während des Entwicklungsprozesses äußerst hilfreich, wo der Prozess des Deployments häufig vorkommt und durch ant automatisiert werden kann. Auch die Betriebsintegration wird dadurch erheblich erleichtert. In Abbildung 3 ist ein ant-Skript zur Erstellung einer neuen Application Server Domain dargestellt. Glossar Struts Struts ist ein Open Source Framework für die Präsentationsschicht von Java-Web-Anwendungen. ant ant ist ein in Java geschriebenes Werkzeug zum automatisierten Erzeugen von Programmen aus Quell-Code. Application Server Ein Application Server ist eine MiddlewareKomponente. Hier wird die Geschäftslogik implementiert. Enterprise Java Bean Java-Komponente eines Application Servers. Die Methoden eines Enterprise Java Beans werden von der Client-Anwendung aufgerufen. Servlet Java-Komponente eines Application Servers. Ein Servlet wird durch ein HTTP-Request aufgerufen; es generiert die HTTP-Response. Java Message Server Nimmt eingehende Java Messages entgegen und vermittelt diese an Message Driven Beans. Die Bearbeitung der Java Messages erfolgt asynchron. Deployment Installation einer Application Server-Anwendung auf einem Application Server. Links http://www.bea.com Verfügbarkeit und Skalierung Die durch die J2EE Spezifikation angegebenen Möglichkeiten der Ausfallsicherheit und der Lastverteilung sind im WebLogic Server realisiert. Es gibt einige Beispiele großer Unternehmen, die ihre Web-Portale sowie die damit verbundenen Kundendienstleistungen auf Grundlage des WebLogic Servers betreiben. Lizenzen Zum Zwecke der Entwicklung kann die Software für den WebLogic Server kostenfrei aus dem Internet geladen werden. Diese Lizenz ist ohne zeitliche Beschränkung nutzbar. Preise für die Verwendung des WebLogic Servers sind stark von der Konfiguration abhängig. Standard-Preislisten werden nicht veröffentlicht. ORDIX News 2/2005 http://e-docs.bea.com/wls/docs81/admin_ref/ant_tasks.html http://ant.apache.org/ http://struts.apache.org/ Fazit Der WebLogic Server ist ein erprobter Application Server, der den derzeitigen Ansprüchen der J2EE Entwicklung genügt. Der Einstieg in die Entwicklung mit dem WebLogic Server ist durch den kostenfreien Download und die umfangreichen Dokumentationen erleichtert. Die Möglichkeiten der Automatisierung im administrativen Bereich ist für die Entwicklung und die Betriebsintegration von Vorteil. Aufgrund seiner weiten Verbreitung finden sich – zusätzlich zur offiziellen Dokumentation – zu vielen Fragen Lösungshinweise im Internet. Stefan Koch ([email protected]). 13 Datenbanken Business Process Execution Language (BPEL), Teil I: Web Services im Takt Die technische Umsetzung von geschäftlichen Aktivitäten eines Unternehmens in Web Services hat in den letzten Jahren große Fortschritte gemacht. Jetzt steht die umfassende Vernetzung der verschiedenen Web Services zu Geschäftsprozessen an, die überschaubar sein sollen, leicht zu erstellen und zu verwalten sind und dabei möglichst einem allgemeingültigen Standard folgen. Dieser Aufgabe hat sich das Business Process Management (BPM) verschrieben, dem mit der Business Process Execution Language (BPEL) ein Standard für die Prozessintegration zur Verfügung steht. Oracle bietet mit dem BPEL Process Manager eine Lösung für diesen Bereich an. Dieser Artikel richtet sich an Verantwortliche und Architekten für die Umsetzung des Business Prozess Managements auf technischer Ebene. Gewachsene Vielfalt Die schnelle Umsetzung aller Arten von geschäftlichen Aktivitäten der Unternehmen in Web Services und deren starke Verbreitung und große Vielfalt führten zu einer Vielzahl verschiedenster Möglichkeiten, solche Dienste bereitzustellen und zu verwalten. Im Laufe dieser Entwicklung wurden dazu verschiedene Plattformen geschaffen. Vielen Plattformen ist der Zeitdruck der Entwicklungen anzumerken. Änderungen und Erweiterungen waren zum Teil langfristig geplant, oft aber schnelle Reaktion auf aktuelle Anforderungen. Folglich haben wir heute eine unüberschaubare Anzahl an Sprachen und Spezifikationen zur Implementierung von Web Services. Ein erster Schritt zur Standardisierung: SOAP Die Sprache XML (eXtensible Markup Language) wurde zwar bereits vor einigen Jahren eingeführt und standardisiert, es dauerte allerdings relativ lange, bis sie als universelles Format für den Datenaustausch zwischen Web Services akzeptiert wurde. Immer noch operieren viele angebotene Dienste mit eigenen, spezifischen Datenformaten und Protokollen. Sollen verschiedene Web Services zusammenarbeiten, um gemeinsam nicht nur eine einzelne Aktivität, sondern einen kompletten Geschäftsprozess technisch abzubilden und zu realisieren, muss die Kommunikation durch interpretierende Instanzen und zu erstellende Schnittstellen unterstützt werden, die die XML-Daten in die proprietären Formate und zurück umwandeln. Das hat selbstverständlich Auswirkungen auf die Transparenz, Entwicklungszeiten und Fehlersuche. Das SOAP-Protokoll (Simple Object Access Protocol) bildet die Basis für die Kommunikation mit unterschiedlichen Diensten, welche ihre Funktionalität und Schnittstellen in XML dokumentieren und elekZusammenstellung von Prozessen Discovery Beschreibung von Web Services XML messaging Transport-Protokolle BPEL UDDI WSDL SOAP, XML HTTP, SMTP, FTP Abb. 1: Standards für die Implementierung von Geschäftsprozessen. 14 tronisch anbieten. Zusammen mit Web Service Definition Language (WSDL) und Universal Description, Discovery and Integration Protocol (UDDI) hat sich SOAP heute als ein wichtiger Quasi-Standard zum Datenaustausch und zur Beschreibung webbasierter Dienste etabliert. BPEL: Plattform für die Zusammenarbeit von Web Services Wichtig wäre eine verbindliche Beschreibung einer Plattform, die mit diesen Standards zusammenarbeitet. Bislang existieren hier unterschiedliche Ansätze, von denen sich keiner eindeutig durchsetzen konnte. Eine breite Basis hat die Sprache Business Process Execution Language (BPEL): BPEL wurde von IBM, Microsoft, Sun, Oracle, BEA Systems, SAP und Siebel gemeinsam entwickelt und wird auch häufig BPEL4WS genannt (4WS steht für „for Web Services“), oder auch WSBPEL genannt. Inzwischen wurde die Spezifikation zur Weiterentwicklung dem Standardisierungsgremium OASIS übergeben. BPEL: Sprache für Service Orientierte Architekturen BPEL ist als Plattform für die Bereiche gedacht, in denen mit einer Service Orientierten Architektur (SOA) gearbeitet wird. Merkmale einer SOA sind: • In einer SOA stehen Geschäftsprozesse im Vordergrund und nicht Applikationen. • Diese Geschäftsprozesse werden in einer SOA durch die Zusammenstellung von Services implementiert. Die Zusammenstellung von Geschäftsprozessen und deren Verwaltung wird Business Process Management genannt (BPM). Das Vorhandensein einer SOA ist also zwingende Voraussetzung für BPM. BPM hat das Ziel, die derzeit in Software eingebetteten und quasi unsichtbaren Geschäftsprozesse aus der Ebene der Applikationen herauszuholen. Sie sol- ORDIX News 2/2005 Datenbanken len an einer zentralen Stelle sichtbar gemacht werden, dort modelliert, zusammengestellt oder gegebenenfalls geändert werden. Bei BPM stehen Geschäftsprozesse im Vordergrund. Auch wenn die Abbildung der Geschäftsprozesse auf der technischen Ebene in XML-Dokumenten stattfindet, sollen die BPMVerantwortlichen ohne XML-Kenntnisse Geschäftsprozesse analysieren und modellieren können. Deshalb wurde für die grafische Darstellung von den zuvor genannten Firmen ein Standard entwickelt: die Management Initiative „Business Process Modeling Notation“ (BPMN). Dieser Standard setzt auf BPEL auf, die modellierten Prozesse werden mit BPEL auf der Ebene der Kommunikation zwischen den Web Services realisiert. In BPEL definierte, verschieden granulare Services können, einmal erstellt, immer wieder zu neuen Geschäftsprozessen zusammengestellt werden. Wie in einem Baukasten stehen die Services zur Verfügung und können schnell für andere Zwecke zusammengestellt werden, ohne dass die Ebene des Austauschs von Daten und Messages, der Aufruf von Funktionen etc. in den Blick genommen werden muss. Das trägt wesentlich zur Flexibilisierung der Geschäftsprozesse bei. BPEL: Orchestrierung von Web Services Mit BPEL lässt sich ein Prozess beschreiben, der in der Lage ist, verschiedene Dienste zu einer Gesamtanwendung zu verknüpfen – BPEL orchestriert die Zusammenarbeit von Web Services. Im Bereich des BPM werden zwei verschiedene Kopplungsmechanismen zwischen Services unterschieden, die Choreographie und die Orchestrierung. Von einer Choreographie spricht man, wenn die Koordination einzelner unabhängiger Services durch einen Nachrichtenaustausch realisiert wird. Bei einer Orchestrierung gibt es eine kontrollierende Instanz, die die einzelnen Services steuert, anspricht und wie ein Dirigent den Einsatz gibt. Orchestrierung bedeutet das Zusammenspiel verschiedener Dienste, Applikationen oder Web Services, die mit Hilfe einer BPEL-basierten Prozessbeschreibung einen bestimmten Geschäftsprozess abbilden und technisch ermöglichen. Die Interaktion der verschiedenen Komponenten, die Abfrage von Daten, das Aufrufen von Funktionen und die Reaktion auf verschiedene Rückgabewerte, geschieht über die BPELLaufzeitumgebung. ORDIX News 2/2005 Struktur von BPEL Bei BPEL handelt es sich um eine erst kürzlich entwickelte und (noch) nicht intensiv genutzte Sprache: Daher existieren unterschiedliche Spezifikationen zur Syntax der Sprache, abhängig davon, ob die Oracle BPEL-Engine oder die IBM-Engine verwendet wird. Wenn plattformübergreifend gearbeitet werden soll, müssen einige Befehle abgewandelt werden. Die BPEL-Syntax ist stark an XML orientiert. Wer in diesem Bereich mit den dort verwendeten Sprachen XML und WSDL arbeitet, bewegt sich auch bei BPEL im „muttersprachlichen“ Bereich. Für jeden definierten BPEL-Prozess wird ein WSDL-Dokument erstellt, in dem der genutzte Web Service definiert wird. Will ein anderer Benutzer diesen Web Service nutzen, steht ihm bereits dessen „Bedienungsanleitung“ zur Verfügung. Diese Definition enthält die „Partner“, mit denen der Prozess kommuniziert (partnerLink), deren Kommunikationskanäle und die diesem „Partner“ möglichen Operationen. Jedes BPEL-Dokument besteht aus einem Definitionsteil und einem Teil, der den Ablauf des Prozesses beschreibt. Konkret geschieht die Definition eines Geschäftsprozesses in drei Sektionen des BPEL Dokuments: • Partnerlinks: Hier werden die Services aufgelistet, die am Geschäftsprozess beteiligt sind. • Variables: Listet die Nachrichten-Typen auf, die zwischen den • Services und deren Aktivitäten ausgetauscht werden. Der Typ ist immer ein XML-Schema-basiertes Element oder ein WSDL-Nachrichtentyp. Orchestration Logic: Dieser Ablaufteil beschreibt die Abfolge der Aktivitäten, die die Services leisten sollen, um einen Geschäftsprozess abzubilden. In diesem Teil liegt also die Prozesslogik. Die verschiedenen Aktivitäten können aufeinander folgen oder parallel ablaufen. Für die Ablaufsequenzen können auch Fehlerbehandlungen und Entscheidungsbäume basierend auf Rückgabewerten aufgebaut werden. Die Grundstruktur eines Prozesses zeigt Abbildung 2. <process name= „HelloWorld“> <! -– Prozess --> <partnerLinks> <! -– Dienste --> </partnerLinks> <variables> </variables> <sequence name = “main”> <receive> <assign> <reply> </sequence> </process> <! -– Daten --> <! -– Ablaufsequenz --> <! -– Aktivitäten --> Abb. 2: Grundstruktur eines Prozesses in BPEL. Schnittstellenbeschreibung unter BPEL Für die im BPEL-Dokument aufgeführten Services gibt es eine WSDLSchnittstellenbeschreibung. Dieses WSDL-Dokument enthält die folgenden (optionalen) Sektionen: 15 Datenbanken • Type Definition: Die Definition der benötigten Datenstrukturen (XML-Elemente). • Message Type Definition: Definition der Nachrichtentypen, die zwischen den Services ausgetauscht werden. • Port Type Definition: Hier werden zusammengehörende Arbeitsschritte gruppiert und als ein spezifischer Port Type definiert. • Binding: Definition von konkreten Protokollen und Datenformaten für die Operationen und Messages eines Port Types. • Service: Gruppierung von Port Types. <process> <assign> Umschließt den ganzen Prozess. Kopiert Daten von einer Variablen zu einer anderen. So wird das Ergebnis eines Services an den nächsten übergeben. <invoke> Prozesse eines Services können aufgerufen werden. <receive> Spezifiziert den Service, von dem eine Variable empfangen werden soll. Mit <receive> kann auch eine Prozessinstanz aktiviert werden. <reply> Versendet eine Antwort als Folge auf eine <receive>Aktion. Ein <reply> bezieht sich immer auf einen bestimmten Partnerlink und eine bestimmte Variable. <throw> Beschreibt mögliche Fehlerfälle. <terminate> Beendet explizit den Prozess. <sequence> Definiert für verschiedene Aktivitäten die Reihenfolge, in der sie abgearbeitet werden sollen. <pick> Versetzt den Prozess sozusagen in eine Endlosschleife und wartet auf ein Ereignis, etwa die Antwort eines Partnerlinks, um dann mit dem Prozessfluss fortzufahren. <flow> Erlaubt das parallele Abarbeiten von Aktivitäten. <switch> und Ermöglichen fallbasierte Verzweigungen, z. B. auf<case> grund bestimmter Attribute der Rückgabewerte einer vorangehenden Aktivität. <correlation> Bietet die Möglichkeit, auf bestimmte Inhalte einer Rückgabe mit korrelierenden Nachrichten zu reagieren. Abb. 3: Diese Operationen können mit BPEL ausgeführt werden. Beispielprozess unter BPEL Abbildung 5 zeigt, wie ein Beispiel-Prozess in BPEL abgebildet wird: Für den Aufruf dieser Aktionen wird jeweils der entsprechende Partner, der Kommunikationskanal, die auszuführende Operation und welche Variable für diese Kommunikation verwendet werden soll, angegeben. Die so definierten Nachrichten werden im WSDL-Dokument als message definiert, entsprechen also SOAP-Nachrichten. BPEL: „SQL“ für Prozesse Mit BPEL steht jetzt eine standardisierte, ablauffähige Sprache zur Beschreibung von Prozessen zur Verfügung, die von einer Reihe namhafter Unternehmen unterstützt wird. Für den Bereich des BPM gilt BPEL als „SQL“ im Kontext von Web Services und eröffnet, wie die Einführung von SQL vor 25 Jahren, Möglichkeiten, die einen Produktivitäts- und Innovationsschub erwarten lassen. Die Prozesslogik wird auf einer eigenen Ebene bearbeitet, die unabhängig ist von den technischen Gegebenheiten der zu integrierenden Dienste. Die Möglichkeiten der Services sind transparent und können, wenn sie einmal definiert sind, schnell und flexibel genutzt werden. Definierte Dienste können neu zusammengestellt werden und so andere Prozesse abbilden. Das erlaubt eine effiziente Implementierung eines Geschäftsprozesses nach SOA-Prinzipien und gege- 16 Abb. 4: BPEL Console. benenfalls die flexible Anpassung des Prozessverlaufs an neue Gegebenheiten. Damit können sich Unternehmen schneller als bisher Marktveränderungen anpassen. Jeder einmal mit BPEL definierte Prozess kann in anderen Kontexten weiterverwendet werden. Die benötigten Ressourcen für Projekte der Prozess-Integration können durch BPEL stark reduziert werden. BPEL produktiv nutzen: Oracle BPEL Process Manager Um BPEL produktiv nutzen zu können, sind eine stabile und performante Laufzeitumgebung, Designwerkzeuge sowie eine Konsole für die Verwaltung und das Monitoring der erstellten Prozesse nötig. Die an der Erstellung des BPEL-Standards beteiligten Firmen bieten Lösungen zur Implementierung von BPEL an oder arbeiten an solchen. Oracle konnte sich durch die Übernahme von Collaxa eine bereits weit entwickelte BPEL-Engine sichern, die jetzt als Oracle BPEL Process Manager 2.1.2. weiterentwickelt wurde und zur Verfügung steht (siehe Abbildung 4). Der Oracle BPEL Process Manager unterstützt die Implementierung und das Arbeiten unter BPEL sowohl in der Entwicklung als auch in der Ausführung. Der Oracle BPEL Process Manager enthält die folgenden Elemente: • Den BPEL Designer: Mit der graphischen • Umgebung können die BPEL-Prozesse modelliert werden. Die BPEL Console, unter der die Prozess-Instanzen verwaltet und überwacht werden. ORDIX News 2/2005 Datenbanken <! – HelloWorld BPEL Process [Generated mit ORACLE BPEL Designer] --> <process name= "HelloWorld"> targetNamespace="http://bpelbeispiele.de" suppressJoinFailure="yes" xmlns:tns="http://bpelbeispiele.de" xmlns="http://schemas.xmlsoap.org/ws/2003/business-process" xmlns:bpelx="http://schemas.oracle.com/bpel/extensions" xmlns:ora="http://schemas.oracle.com/xpath/extensions" <! – ===================================================== --> <! – PARTNER LINKS --> <! – List of services participating in this BPEL process --> <! – ===================================================== --> <partnerLinks> <! Die 'client'-Rolle repräsentiert den, der diesen Service anfragt --> <partnerLink names>= "client" partnerLinkType="tns:HelloWorld" myRole="HelloWorldProvider"/> </partnerLinks> <! – ===================================================================== <! – VARIABLES <! – Liste der Services und XML-Messages innerhalb dieses BPEL-Prozesses <! – ===================================================================== --> --> --> --> <variables> <! – Referenz auf die Message, die als Input diesen Prozess initiiert --> <variable name= »input » MessageType="tns:HelloWorldRequestMessage"> <! – Referenz auf die Message, die dem Anfragenden gentwortet wird --> <variable name= »output » MessageType="tns:HelloWorldResponseMessage"> </variables> <! – ===================================================================== --> <! – ORCHESTRATION LOGIC --> <! – Aktivitäten zum Koordinieren des Flusses der Messages zwischen den Services --> <! - innerhalb dieses BPEL-Prozesses --> <! – ===================================================================== --> <sequence name = "main"> <! – Input vom client empfangen. Eintrag verweist auf in HelloWorld.wdsl definierte Operationen --> <receive name="receiveInput" partnerLink= "client" portType="tns:HelloWorld" operation="process" variable="input" createInstance="yes"/> <! – Antwort generieren --> <assign name="Verknüpfung"> Abb. 5: Beispielprozess in BPEL abgebildet. • Die BPEL Engine, die Laufzeitumgebung als J2EE-Container realisiert. • Eine ORACLE Datenbank, in der langlaufende Prozesse persistent gehalten werden. Über die Anforderungen hinaus, die der BPELStandard stellt, kann über Erweiterungen Java-Code direkt in Dokumente eingebettet werden, nicht SOAP-basierte Web Services können über das Web Services Invocation Framework in eine Prozess-Definition eingebunden werden. Damit können Dienste auch über andere Schnittstellen, Protokolle und Sprachen als im Standard BPEL vorgesehen genutzt werden, etwa Java, JCA oder E-Mail. Ausblick Nach dieser Einordnung von BPEL und der Beschreibung seiner Möglichkeiten folgt im zweiten Teil eine ausführliche Darstellung, wie sich die Prozess-Modellierung mit dem Oracle BPEL Process Manager realisieren lässt. Uwe Rübesamen ([email protected]). ORDIX News 2/2005 Glossar BPM Mit Business Process Management (BPM) lassen sich Geschäftsprozesse in einem dynamischen IT-Umfeld formen und weiter entwickeln. So können Applikationen zu adaptiven Prozessen verknüpft werden, die die komplette Wertschöpfungskette umfassen. SOA Service-orientierte Architektur (engl. Service Oriented Architecture) in der Softwarearchitektur. SOAP Simple Object Access Protocol. SOAP ist der heutige Standard für Web Services Messages. SOAP definiert für Messages, die mittels XML übermittelt werden, einheitliche Formate der Adressierung und Inhaltsbeschreibung. WSDL Web Service Definition Language. WSDL gibt das Format für eine einheitliche Beschreibung eines Web Services vor, anhand derer ein solcher Service angefragt und dessen Funktionen abgerufen werden können. UDDI Universal Description, Discovery and Integration protocol. UDDI spezifiziert ein universelles Format zur Verwaltung von Informationsverzeichnissen, Adressen etc. eines Web Services. OASIS Organization for the Advancement of Structured Information Standards. OASIS ist eine nicht-kommerzielle Organisation, die sich um die Standardisierung von Formaten für Web Services auf der Basis von XML kümmert. 17 Aktuell Open Source für den Mittelstand 10 Jahre erfolgreiche Partnerschaft: KARRENA und ORDIX Als das Ratinger Industrie-Unternehmen KARRENA Teile seiner Computersysteme auf Unix Systeme umstellte, bestand für einige Bereiche entsprechender Beratungs- und Unterstützungsbedarf. Aus einer lockeren Unterstützung, die der damalige ORDIX Geschäftsführer und heutige Vorstand Kögler geleistet hatte, entwickelten sich verschiedene Aufträge für das Paderborner Software-Unternehmen. Daneben wurden auch Schulungen bei ORDIX gebucht. Jüngst unterstützte ORDIX die KARRENA Gruppe bei der Umstellung der Linux Server auf Linux Cluster Server. Der Artikel wendet sich an Entscheider und Systemadministratoren, die sich mit Unix, Linux, Samba, Mail, CUPS, Backup und Recovery beschäftigen. Von Unix zu Linux Neben dem ursprünglich eingesetzten HP Server deckte KARRENA den Ende der neunziger Jahre entstandenen Bedarf durch Linux Rechner ab. Als Vorreiter für Open Source stand ORDIX den IT-Mitarbeitern von KARRENA dabei zur Seite. Im Jahr 2004 kam das EDV Team von KARRENA zu dem Schluss, dass dem Themenschwerpunkt „Verfügbarkeit“ mehr Bedeutung beigemessen werden müsse. Obwohl die Daten schon damals auf drei verschiedene Server verteilt waren (je einer für die zentrale Datenbank, CAD- und Windows Dokumente), hätte der Ausfall einer dieser Maschinen zu nicht tolerablen Verzögerungen in den Arbeitsabläufen geführt. Auf dem ORDIX Fachtreff zum Thema „Open Source Software – technische und kostensenkende Alternative“ erfuhr KARRENA, dass es im Bereich Linux Cluster und Verfügbarkeit inzwischen technologisch sehr gute Lösungen zu akzeptablen Preisen gibt. Abb. 1: EDV-Leiter Dr. Helmut Lütcke (Mitte) mit seinen beiden Mitarbeitern Thomas Sprenger (links) und Christoph Schulz (rechts). Vom Linux Server zum Linux Cluster Mit den Informationen aus diesem Beratungstag erstellte das KARRENA EDV-Team eine Vorlage für die Geschäftsleitung, die schnell abgesegnet war. Nur wenige Wochen nach dem ersten Beratungstermin wurden die Cluster zusammen mit ORDIX aufgebaut, Software installiert und die Systeme konfiguriert. Mit dem Wissen aus dem Fachtreff schmiedeten EDV-Leiter Dr. Lütcke und seine Mitarbeiter Thomas Sprenger und Christoph Schulz ein Konzept, wie die hausinterne IT mit zwei leistungsfähigen und mit genügend Festplattenplatz ausgestatteten Linux Servern neu zu gestalten sei. Der Linux Heartbeat Cluster wurde favorisiert, weil zusätzlich zu der gewährleisteten Hochverfügbarkeit im Normalfall zwei Server bereitstehen, auf die die verschiedenen Dienste verteilt werden können, um so exzellente Response-Zeiten zu erhalten. In der Vergangenheit stets gut beraten, wendeten sich die KARRENA Mitarbeiter für die Detailplanung auch dieses Mal vertrauensvoll an ORDIX. Ein Termin mit ORDIX reichte für die Prüfung des Konzeptes aus, wobei es nur an wenigen Stellen ergänzt werden musste. Das ORDIX Wissen um zusätzliche, kleine und zugleich wichtige Aspekte, wie z. B. Steckerleisten, Backupgeräte und die Trennung der Server durch feuerfeste Wände, rundete die Vorstellungen der Ratinger ab. 18 Sämtliche Ausfallszenarien wurden erfolgreich durchgespielt. Jetzt wartet das Gesamtsystem darauf, entgültig in Betrieb genommen zu werden. Auch dabei wird ORDIX bei Bedarf wieder unterstützend tätig werden. Welche Vorteile bringt KARRENA die Zusammenarbeit mit ORDIX? Auf die Frage, warum KARRENA die Zusammenarbeit mit ORDIX schätzt, antwortet Herr Sprenger: „Ich kenne Herrn Kögler schon seit mehr als 20 Jahren. Was die Beratungs- oder ORDIX News 2/2005 Aktuell LAN Virtuelle IP-Adressen Die Hauptaktivitäten der KARRENA Gruppe liegen in der Auskleidung feuerfester Industrieanlagen und im Bau von Industrieschornsteinen. Seit der Gründung im Jahr 1914 ist die KARRENA inzwischen zu einer weltweit operierenden Unternehmensgruppe mit Vertretungen in mehr als 20 Ländern herangewachsen. Im Jahr 2000 erhielt KARRENA den größten Montageauftrag ihrer Firmengeschichte: Den Neubau von zwei Koksofenbatterien für die neue Kokerei in Duisburg Schwelgern. Nach den Ofenkammerdimensionen ist dies die größte Kokerei der Welt. Zu den Referenzen der KARRENA gehören ferner die Feuerfestauskleidung des größten Hochofens Europas und der größten zirkulierenden Wirbelschichtanlage in Europa, ebenso der mit 360 m höchste Schornstein Westeuropas. Tausende von Referenzanlagen stehen heute in mehr als 100 Ländern der Welt. Internet: http://www.karrena.de E-Mail: [email protected] Unterstützungsleistung betrifft, sind wir von ORDIX nie enttäuscht worden. ORDIX hatte für uns jederzeit das notwendige und richtige Know-how zur Verfügung.“ Und er erklärt weiter: „Die Berater sind kompetent und es herrscht Beständigkeit: Selbst der erste Berater, der 1995 bei uns war, steht uns heute noch bei Bedarf zur Verfügung. Wo finden Sie sonst solche Konstanz und Kompetenz?“ EDV-Leiter Dr. Lütcke ergänzt: „Für ein Unternehmen wie KARRENA, das nicht von der IT lebt, sondern diese nur als Mittel zum Zweck nutzt, ist es gerade im Bereich Open Source wichtig, auf jemanden zurückgreifen zu können, dem man vertraut und der einem sofort und unkompliziert helfen kann. Das alles finden wir bei ORDIX.“ Beim jüngsten Projekt hat ORDIX, wie bereits erwähnt, zwei Linux Server als Cluster aufgebaut, was im Weiteren beschrieben wird. So (einfach) entsteht ein Linux Cluster System Bei der technischen Umsetzung des Clusters wurde die zum Distributionsumfang des SUSE Linux Enterprise Server 9 gehörende Software des Linux High Availability Project ein- ORDIX News 2/2005 Heartbeat über Nullmodemkabel Heartbeat über Kreuzkabel/UDP (4) Schreibvorgang Master Primärer Datenbestand (1) „Schreibe Daten!“ (3) „OK: Daten sind geschrieben!“ Realtime Datensynchronisation mittels DRBD (2) Schreibvorgang Sekundärer Datenbestand Backup Abb. 2: Gemeinsame Datenhaltung mit DRBD. gesetzt. Die beiden Knoten überwachen sich gegenseitig mittels einer separaten IP-Verbindung über ein gekreuztes Netzwerkkabel sowie über ein an die seriellen Schnittstellen angeschlossenes Nullmodemkabel. Im Normalfall läuft auf einem der Knoten („lina“) das RDBMS „Universe“ und auf dem zweiten („linb“) der Samba Fileserver. Fällt ein Knoten aus, übernimmt das übriggebliebene System die zu dem jeweiligen Dienst gehörende IP-Adresse und startet die notwendigen Skripte zur Übernahme des Dienstes. Konfiguration des Clusters Die Basiskonfiguration der Clustersoftware erfolgt in der Datei /etc/ha.d/ha.cf: # Heartbeat Meldungen alle 2 Sekunden senden keepalive 2 # Nach 10 Sekunden Partner für „tot“ erklären deadtime 10 # Heartbeat über die serielle Schnittstelle baud 19200 serial /dev/ttyS0 # UDP Heartbeat über die Netzwerkschnittstelle eth1 udpport 694 bcast eth1 # Die Namen der Knoten node lina node linb Gemeinsame Datenhaltung mit DRBD Zur gemeinsamen Datenhaltung zwischen den Knoten wird die ebenfalls zum Distributionsumfang gehörende Distributed Replicated Block Device (DRBD) Software eingesetzt. Mittels DRBD lassen sich virtuelle Blockdevices generieren, die dafür sorgen, dass Schreibvorgänge auf beiden Knoten simultan erfolgen (siehe Abbildung 2). Der Datentransfer erfolgt über die auch zur gegenseitigen Überwachung genutzte Gigabit Ethernet Verbindung zwischen den Knoten. Für den Cluster wurden zwei dieser DRBD Devices erzeugt, welche die für jeweils einen Dienst benötigten Daten enthalten. Die Konfiguration der Geräte erfolgt innerhalb der Datei /etc/drbd.conf (siehe Abbildung 3). Die Clustersoftware entscheidet im laufenden Betrieb, welcher der beiden Knoten auf ein DRBD Device aktiv zugreifen darf (Primary) und welcher Knoten lediglich Daten empfängt (Secondary). Die 19 Aktuell resource drbd0 { on lina { device disk address meta-disk } } on linb { device disk address meta-disk } durch das von ORDIX für den LVM2 angepasste Skript /etc/ha.d/resource.d/LVM2. /dev/drbd0; /dev/sda7; 172.17.1.201:7788; internal; /dev/drbd0; /dev/sda7; 172.17.1.202:7788; internal; Abb. 3: Auszug aus der DRBD Konfiguration /etc/drbd.conf. lina 192.9.200.203 drbddisk::drbd0 LVM2::universe \ Filesystem::/dev/universe/ibm::/usr/ibm::reiserfs \ Filesystem::/dev/universe/dd51::/dd51::reiserfs \ Filesystem::/dev/universe/dd52::/dd52::reiserfs \ Filesystem::/dev/universe/dd53::/dd53::reiserfs \ universe MailTo::admin1,admin2::Universe-Dienst Abb. 4: Auszug aus der /etc/ha.d/haresources. # Der APC-Switch 192.9.200.18 ist das STONITH Device stonith_host lina apcmastersnmp 192.9.200.18 161 geheim stonith_host linb apcmastersnmp 192.9.200.18 161 geheim Abb. 5: Konfigurationseinstellung in der Datei /etc/ha.d/ha.cf. Änderung des Status erfolgt über das zur Clustersoftware gehörende Skript /etc/ha.d/resource.d/drbddisk. LVM2 auf DRBD Die DRBD Devices selbst wurden wiederum als Physical Volumes für das Logical Volume Management markiert: pvcreate /dev/drbd0 pvcreate /dev/drbd1 Um sie anschließend einer Volume Group zuteilen zu können, musste dafür gesorgt werden, dass die „unter“ dem DRBD Device liegenden physikalischen Partitionen /dev/sda7 und /dev/sda8 nicht vom LVM als Physical Volume erkannt werden, sondern lediglich das darauf befindliche DRBD Device. Mit dem neuen Logical Volume Manager in der Version 2 lassen sich zu diesem Zweck Filterregeln in Form logischer Ausdrücke definieren: /etc/lvm/lvm.conf: filter = [ "r|/dev/sda[7-8]$|" ] Im Anschluss daran konnten Volume Groups und Logical Volumes für die beiden Dienste erstellt werden: vgcreate universe /dev/drbd0 vgcreate samba /dev/drbd1 lvcreate –L6.5GB –n ibm universe ... Die Aktivierung einer Volume Group bzw. der darin enthaltenen Logical Volumes erfolgt wiederum bei der Übernahme des Dienstes 20 Konfiguration der Clusterdienste Mit der Datei /etc/ha.d/haresources wird letztendlich definiert, welche Skripte bei der Übernahme eines Dienstes gestartet werden sowie welcher Knoten diesen Dienst standardmäßig aktivieren soll (siehe Abbildung 4). Beim Start des Dienstes „Universe DBMS“ werden demnach folgende Aktionen von der Clustersoftware ausgeführt: 1. Aktivierung der IP Adresse 192.9.200.203 2. Status „Primary“ setzen für DRBD Device drbd0 3. Volume Group „universe“ auf drbd0 aktivieren 4. Logical Volumes „ibm“, „dd51“, „dd52“, „dd53“ in den Dateibaum einhängen 5. Universe DBMS starten 6. Hinweis über die Übernahme per Mail an die Benutzer „admin1“ und „admin2“ versenden Ein Stopp des Dienstes sorgt für die Deaktivierung der genannten Komponenten in umgekehrter Reihenfolge. Das Start/Stop Skript /etc/ ha.d/resource.d/universe musste zu diesem Zweck zunächst von der ORDIX AG erstellt werden. Die Universe Software selbst liegt auf dem Logical Volume „ibm“ und wird bei der Aktivierung des Dienstes unter /usr/ibm eingehängt. STONITH Ein zentrales Problem beim Aufbau eines Clusters stellt die „Split Brain“ Situation dar. Diese bezeichnet eine kritische Situation, die beim Ausfall der Kommunikationsleitungen zwischen den Knoten entsteht. In diesem Fall erhalten die Knoten keine Information über den Status des Partners und gehen demzufolge fälschlicherweise davon aus, dass dieser nicht mehr lebt. Wenn nun beide Knoten den Dienst übernehmen wollen, kann es zu Datenkorruption und IP-Konflikten im Netzwerk kommen. Um dies auszuschließen, verwendet die Clustersoftware das STONITH Verfahren („Shoot the other node in the head“). Beim Ausfall der Heartbeat Leitungen bzw. sobald sich die Knoten nicht mehr erreichen, versuchen beide Knoten über eine schaltbare Stromleiste (APC Masterswitch), den Partner abzuschalten. Dazu ist die in Abbildung 5 gezeigte Konfigurationseinstellung in der Datei /etc/ha.d/ha.cf getätigt worden. Will z. B. der Rechner „lina“ den Rechner „linb“ ausschalten, so verbindet er sich per SNMP mit dem APC Masterswitch mit der IP-Adresse 192.9.200.18 auf dem Port 161 und mit dem ORDIX News 2/2005 Aktuell Passwort „geheim“. Anschließend wird die Steckdose mit der Bezeichnung „linb“ abgeschaltet. Dies bedingt die vorherige Zuweisung dieser Bezeichnung über die Administrationsoberfläche des Masterswitches. Fazit Bei der Installation des Clusters wurde ausschließlich Software aus dem Distributionsumfang des SUSE Linux Enterprise Server 9 verwendet. Auch für die Knoten wurden keine teuren Serversysteme eingesetzt, sondern übliche PC Hardware. Zudem konnte durch den Einsatz von DRBD auf kostenintensive, externe Storagesysteme zur gemeinsamen Datenhaltung verzichtet werden. Dennoch verfügt KARRENA nun über ein hochgradig ausfallsicheres System, welches Schutz gegen jeden denkbaren Einzelfehler der Hardwarekomponenten bietet. Dies wurde im Rahmen der Abnahme in Form eines ausführlichen Testkatalogs verifiziert. Planen auch Sie den Einsatz eines Linux Clusters? Dann fordern Sie uns! Christof Amelunxen ([email protected]). Glossar Cluster Zusammenfassung von zwei oder mehr Rechnern (Knoten) zu einem logischen System, mit dem Ziel der Verbesserung von Performance oder Verfügbarkeit. CUPS Common Unix Printing System – das Standard Drucksystem auf Linux Servern. DRBD Distributed Replicated Block Device. Ermöglicht die gemeinsame Datenhaltung zwischen zwei Knoten eines Clusters durch Spiegelung eines Blockdevices über ein IP Netzwerk. Schreibvorgänge auf ein mit DRBD verwaltetes Device erfolgen auf beiden Knoten simultan. Heartbeat Die zwischen den Knoten im Cluster ausgetauschten Statusmeldungen. Gleichzeitig Name der Clustersoftware des Linux High Availability Projects. LVM Logical Volume Manager. Physical Ein beliebiges, blockorientiert angesprochenes Gerät, welVolume ches einer Volume Group zugeteilt wird. Samba Ein frei verfügbarer Fileserver für Windows Clients. Split Brain Kritischer Fall innerhalb eines Clusters, der beim Ausfall sämtlicher Kommunikationsleitungen zwischen den Knoten auftritt. In diesem Szenario kann keiner der Knoten eindeutige Aussagen über den Status des Partners machen. STONITH „Shoot the other node in the head“-Verfahren, welches beim „Split Brain“-Problem Datenkorruption durch Ausschalten des Partnerknoten mittels schaltbarer Stromleisten verhindert. Volume Eine Menge von 1-n blockorientiert angesprochener GeräGroup te (Physical Volumes), aus der wiederum 1-n Logical Volumes erzeugt werden können. Titelthema – Partnerschaft ORDIX und VMware ORDIX ist zertifizierter „VMware VIP Enterprise Partner“ Seit mehreren Jahren unterstützt ORDIX seine Kunden bereits in VMware-Projekten – unter anderem im Zuge der Serverkonsolidierung. Im Frühjahr 2005 wurde die erfolgreiche Zusammenarbeit zwischen VMware und ORDIX auf eine neue Basis gestellt: Ab sofort steht ORDIX Ihnen als zertifizierter VMware VIP Enterprise Partner zur Verfügung. Verschiedene Betriebssysteme auf Intel Servern und Workstations einsetzen Mit der Technologie von VMware können verschiedene Betriebssysteme wie MS Windows, Linux und NetWare gleichzeitig und unabhängig voneinander auf Intel-basierten Servern und Workstations eingesetzt werden. Mit Hilfe der VMware Produkte ist es möglich, auch Live-Applikationen während des Betriebs im System zu verschieben. Globale Verwaltung wird dynamisch Diese virtuellen Systeme fügen sich nahtlos in physikalische Infrastrukturen und Verwaltungsumgebungen ein. Nutzer verfügen somit ORDIX News 2/2005 über dediziert zugewiesene Systemressourcen, während Administratoren die IT-Infrastruktur global verwalten und dynamisch an die wechselnden Bedürfnisse im Unternehmen anpassen. ORDIX Leistungen Zertifizierte VMware Mitarbeiter der ORDIX AG unterstützen Sie von der Planung über die Konzeption bis hin zur Realisierung Ihrer VMware Projekte. Dies kann sowohl im Umfeld der Serverkonsolidierung als auch beim Einsatz von Test- oder Schulungssystemen sein. Vielleicht ... haben Sie in der ORDIX News schon den einen oder anderen Artikel über VMware gelesen? Für weitere Informationen stehen wir Ihnen selbstverständlich gerne zur Verfügung. Sprechen Sie uns an: [email protected]. 21 Datenbanken IBM Informix Dynamic Server 10.00 The next Generation .... IBM Informix 10.00 Aus 9.5 mach 10, nach dieser Devise zieht IBM jetzt in Bezug auf die Versionierung bei Informix nach. Dieser Artikel gibt einen groben, allgemeinen Überblick über die Neuerungen des aktuellesten IBM Informix Releases 10.00, das im Februar 2005 auf den Markt gekommen ist. Technische Einzelheiten und Details erfahren Sie in einer der folgenden Ausgaben dieses IT-Magazins. Dieser Artikel richtet sich an Datenbankadministratoren und Entscheider, die überlegen, auf die neueste Version von IBM Informix umzusteigen. Übersicht Wie auch schon in den letzten Releases hat IBM für alle relevanten Schichten eines Datenbanksystems Erweiterungen eingebaut. Neuerungen des IBM Informix 10.00 Releases ergeben sich demzufolge für die Datenbankserver-Module: • • • • Installation Security SQL Interne Architektur / Administration • Backup & Recovery • Hochverfügbarkeit • Performance Installation Mit dem IBM Informix Dynamic Server (IDS) Release 10.00 wurde ebenfalls der neue, graphische Installer „Install Shield Assistent“ eingeführt. Der Assistent kann in den folgenden drei Varianten betrieben werden: • GUI • Text Mode • Silent Mode Abbildung 1 zeigt die graphische Variante. Ob es wirklich hilft, die ohnehin schon im Vergleich zu Oracle sehr einfache Installation noch weiter zu vereinfachen, sei dahingestellt. Security Column Level Encryption Bereits mit dem letzten Release IDS 9.4 wurde die Möglichkeit der Verschlüsselung des Client/Server Datenverkehrs eingeführt (siehe ORDIX News 2/2004). Mit dem neuesten Release besteht nun die Möglichkeit, auch auf ColumnEbene Daten innerhalb der Datenbank zu verschlüsseln. Mit dem neuen SQL Befehl SET ENCRYPTION PASSWORD können Daten nun innerhalb der Datenbank mittels Triple-DES oder AES Algorithmen verschlüsselt werden. SQL CREATE/DROP Index ONLINE Ein Highlight ist wohl ohne Zweifel die Erweiterung des CREATE INDEX/DROP INDEX Statements um die Option ONLINE. Das bedeutet, dass beim Anlegen oder Löschen eines Indizes kein exclusive Lock mehr auf der Tabelle gehalten wird und somit weitere Zugriffe, während eines Index DDL Befehls möglich sind. Hiermit holt Informix einen lange gehaltenen Vorsprung von Oracle auf. Server-Architektur und Administration Abb. 1: Neuer Install Shield Assistent. 22 Konfigurierbare Page Size Eine weitere, sehr nützliche Funktion ist die konfigurierbare Page Size (Buffer Pool/DBspace). Ab 10.00 besteht jetzt die Möglichkeit, mehrere unterschiedliche Page Sizes pro DBspace zu konfigurieren (siehe Abbildung 2). Für jede entsprechende Page Size muss ein eigener Buffer Pool erzeugt werden. Abbildung 3 zeigt den neuen ONCONFIG-Parameter BUFFERPOOL. ORDIX News 2/2005 Datenbanken IBM Informix Dynamic Server Version 10.00.UC1 Dbspaces address number flags 494d37e0 1 0x60001 495e5310 2 0x60001 2 active, 2047 maximum Chunks address chunk/dbs offset 494d3938 1 1 0 495e5188 2 2 0 2 active, 32766 maximum fchunk 1 2 nchunks 1 1 size 20000 5000 -- On-Line -- Up 00:01:10 -- 110616 Kbytes pgsize 2048 4096 free 12307 4947 flags N N bpages owner B B name informix rootdbs informix data4k flags PO-B PO-B pathname /informix/dbs/rootdbs /informix/dbs/data4k NOTE: The values in the "size" and "free" columns for DBspace chunks are displayed in terms of "pgsize" of the DBspace to which they belong. Expanded chunk capacity mode: always Abb. 2: onstat –d Ausgabe / unterschiedliche Page Sizes. BUFFERPOOL default,buffers=1000, lrus=8,lru_min_dirty=50.000000,lru_max_dirty=60.000000 BUFFERPOOL size=4K,buffers=20000,lrus=8,lru_min_dirty=50.000000,lru_max_dirty=60.000000 BUFFERPOOL size=8K,buffers=22000,lrus=8,lru_min_dirty=50.000000,lru_max_dirty=60.000000 Abb. 3: Neuer ONCONFIG Parameter BUFFERPOOL. Das Anlegen kann auch dynamisch ohne erneutes Booten des Datenbankservers erfolgen. Die Allokierung erfolgt im virtuellen Shared Memory. Neuer Single User Mode Neben dem Quiescent Mode steht uns nun ein neuer, „richtiger“ Single User Mode zur Verfügung. Das bedeutet, nur der DBA (User Informix) kann eine Verbindung zur Datenbank aufbauen (onmode –j / oninit –j). • • • • • • • • Backup & Recovery Im Bereich Backup & Recovery gibt es ebenfalls einige sehr interessante Neuerungen. Table Level Restore Table Level Restore war bereits in früheren Informix Online 5.x Zeiten mittels des „undokumentierten“ Tools ARCUNLOAD für den TBTAPE möglich. Mit dem Release 10.00 steht diese Funktion nun offiziell auch für den ONBAR zur Verfügung. Grundlage für den Table Level Restore bildet das ARCHECKER Tool. Mit dem neuen Table Level Restore Feature können einzelne Tabellen nun auch Point in Time aus einem bestehenden Backup extrahiert werden. Tivoli Storage Manager Modul Hier versteckt sich ein integriertes TDPI Modul (Tivoli Data Protection for Informix), welches nun direkt mit der Datenbanksoftware installiert wird. Somit ist eine Sicherung mittels ON- ORDIX News 2/2005 Konfigurierbare Tablespace – Tablespace Extent Größen (Parameter TBLTBLFIRST, TBLTBLNEXT bzw. ONSPACES) Rename DBspace Konfigurierbarer LISTENER VP Externe Speicherung von Optimizer Directiven SAVE EXTERNAL DIRECTIVES Dynamisch änderbare OPTCOMPIND Einstellung Maximale Shared Memory Größe > 4 GB Explizite Speicherallokierung für Nicht-PDQ Queries DS_NONPDQ_QUERY_MEM (früher max. 128 KB) Hochverfügbarkeit: Neuerungen im Bereich HADR und ER • Möglichkeit der Verwendung von Master Replikaten (ER) • ALTER Befehle auf replizierte Tabellen (Beispiel: add/drop fragments, add / drop columns, usw.) Abb. 4: Weitere Neuerungen im Überblick. BAR nach TSM mit nur wenigen Handgriffen möglich. Hiermit unterstreicht IBM die stärkere Integration in andere IBM Produkte. Fazit Wie bereits erwähnt, war dieses nur ein erster Überblick über die Neuerungen des neuesten IBM Informix 10.00 Releases. Abbildung 4 fasst weitere, sehr interessante Neuerungen zusammen, die vor allem die Bereiche Performance und interne Architektur betreffen. In einer der kommenden Ausgaben erfahren Sie mehr Details zu den Neuerungen sowie technische Hintergründe zu den neuen Features. Sie wünschen vorab weitere Informationen zum IBM Informix 10.00 Release? Kein Problem, sprechen Sie uns an! Guido Saxler ([email protected]). 23 Datenbanken Oracle SQL Oracle SQL für Experten Oracle Datenbankprogrammierung mit PL/SQL Oracle Datenbankadministration Grundlagen Oracle Datenbankadministration Aufbau Oracle Administration für Informix Umsteiger Oracle Backup und Recovery Oracle Tuning und Monitoring Oracle Troubleshooting Oracle Real Application Cluster (RAC) Oracle 10g Neuheiten Oracle Net Zugriffskontrolle mit Oracle FGA / VPD Oracle Data Guard Workshop Oracle RMAN Workshop Informix SQL Informix Dynamic Server Administration Informix Tuning und Monitoring Informix Backup und Recovery mit ON-Bar Informix Dynamic Server 9.4 Neuheiten IBM DB2 UDB für Unix/Windows SQL Grundlagen MySQL Administration IBM DB2 UDB für Unix/Windows Administration Grundlagen Microsoft SQL Server Administration Programmierung Einführung in die objektorientierte Programmierung Java Programmierung Grundlagen Java GUI Entwicklung mit Swing Java Programmierung Aufbau Java 5.0 Neuheiten C# Programmierung Perl Programmierung Grundlagen Perl Programmierung Aufbau Einführung in XML XML Programmierung unter Java mit DOM und SAX Oracle und XML Einführung in Oracle Forms Developer Einführung in Oracle Reports Developer Oracle Designer 6i/9i Shell, Awk und Sed J2EE J2EE für Entscheider Einführung in J2EE Web-Applikationsentwicklung mit Java Server Pages und Servlets Applikationsentwicklung mit Enterprise Java Beans (EJB) Internet & Intranet Web-Design mit HTML Web-Design mit JavaScript Web-Design mit PHP Konzeptionierung und Entwicklung einer E-Commerce Lösung mit PHP PHP5 New Features Apache Web-Server Installation und Administration Tomcat Konfiguration und Administration WebSphere Application Server Installation und Administration System Management PATROL Update Workshop PATROL Basics PATROL Customizing and Development PATROL Advanced PATROL Central PATROL Express Betriebssysteme Unix/Linux Grundlagen für Einsteiger Linux Systemadministration HP-UX-, Solaris-, Linux-, AIX-Systemadministration Linux Hochverfügbarkeits-Cluster Solaris Systemadministration Grundlagen Solaris Systemadministration Aufbau Solaris 10 Neuheiten Netzwerke Linux Netzwerkadministration Security Unix/Linux Security im Internet Microsoft Windows 2000/XP Grundlagen für Einsteiger Windows 2000 Active Directory Grundlagen Windows 2000 Active Directory Aufbau Windows Enterprise Server 2003 Projektmanagement IT-Projektmanagement Grundlagen des IT-Controlling Wiesbaden Saarbrücken* Lippstadt* 1790,00 1190,00 1790,00 1890,00 1890,00 1890,00 1890,00 1890,00 1890,00 1190,00 1890,00 790,00 790,00 1190,00 1190,00 1590,00 1790,00 1890,00 1090,00 790,00 1790,00 1590,00 1890,00 1790,00 1090,00 1590,00 1590,00 1590,00 1090,00 1590,00 1590,00 1590,00 1090,00 790,00 790,00 1790,00 1790,00 1790,00 1590,00 450,00 1090,00 1590,00 1590,00 1490,00 1290,00 1490,00 920,00 920,00 1090,00 1090,00 1290,00 1490,00 1890,00 1490,00 1890,00 1190,00 790,00 1590,00 1590,00 1890,00 1390,00 1890,00 1890,00 1890,00 1590,00 1590,00 1790,00 1790,00 1790,00 1090,00 1890,00 1190,00 *) Preise pro Seminar pro Teilnehmer in Euro. Alle Preise gelten zzgl. ges. MwSt. **) Inhousepreise auf Anfrage. Einige der hier aufgeführten Bezeichnungen sind eingetragene Warenzeichen ihrer jeweiligen Inhaber. Irrtümer vorbehalten. Für weitere Informationen und Fragen zu individuell zugeschnittenen Seminaren, Ausbildungsreihen oder Inhouse Schulungen stehen wir jederzeit gerne zur Verfügung. Auf Wunsch senden wir Ihnen auch unser komplettes Seminarprogramm zu. 24 ORDIX News 2/2005 KW 37 KW 36 KW 35 September KW 34 KW 33 KW 32 KW 31 KW 30 August KW 29 KW 28 KW 27 Juli KW 26 Juni KW 25 Preis in EURO*)**) - herausnehmbare Übersicht - KW 24 Aus- & Weiterbildung Seminartermine http://training.ordix.de Online-Anmeldung und stets aktuelle Seminarinhalte und Termine! KW 51 KW 50 KW 49 KW 48 Dezember KW 47 KW 46 KW 45 KW 44 November KW 43 KW 42 KW 41 Oktober KW 40 KW 39 KW 38 Sept. Aus-Juni & Weiterbildung - Dezember 2005 Preis in EURO*)**) 1790,00 1190,00 1790,00 1890,00 1890,00 1890,00 1890,00 1890,00 1890,00 1190,00 1890,00 790,00 790,00 1190,00 1190,00 1590,00 1790,00 1890,00 1090,00 790,00 1790,00 1590,00 1890,00 1790,00 1090,00 1590,00 1590,00 1590,00 1090,00 1590,00 1590,00 1590,00 1090,00 790,00 790,00 1790,00 1790,00 1790,00 1590,00 450,00 1090,00 1590,00 1590,00 1490,00 1290,00 1490,00 920,00 920,00 1090,00 1090,00 1290,00 1490,00 1890,00 1490,00 1890,00 1190,00 790,00 1590,00 1590,00 1890,00 1390,00 1890,00 1890,00 1890,00 1590,00 1590,00 1790,00 1790,00 1790,00 1090,00 1890,00 1190,00 Datenbanken Oracle SQL Oracle SQL für Experten Oracle Datenbankprogrammierung mit PL/SQL Oracle Datenbankadministration Grundlagen Oracle Datenbankadministration Aufbau Oracle Administration für Informix Umsteiger Oracle Backup und Recovery Oracle Tuning und Monitoring Oracle Troubleshooting Oracle Real Application Cluster (RAC) Oracle 10g Neuheiten Oracle Net Zugriffskontrolle mit Oracle FGA / VPD Oracle Data Guard Workshop Oracle RMAN Workshop Informix SQL Informix Dynamic Server Administration Informix Tuning und Monitoring Informix Backup und Recovery mit ON-Bar Informix Dynamic Server 9.4 Neuheiten IBM DB2 UDB für Unix/Windows SQL Grundlagen MySQL Administration IBM DB2 UDB für Unix/Windows Administration Grundlagen Microsoft SQL Server Administration Programmierung Einführung in die objektorientierte Programmierung Java Programmierung Grundlagen Java GUI Entwicklung mit Swing Java Programmierung Aufbau Java 5.0 Neuheiten C# Programmierung Perl Programmierung Grundlagen Perl Programmierung Aufbau Einführung in XML XML Programmierung unter Java mit DOM und SAX Oracle und XML Einführung in Oracle Forms Developer Einführung in Oracle Reports Developer Oracle Designer 6i/9i Shell, Awk und Sed J2EE J2EE für Entscheider Einführung in J2EE Web-Applikationsentwicklung mit Java Server Pages und Servlets Applikationsentwicklung mit Enterprise Java Beans (EJB) Internet & Intranet Web-Design mit HTML Web-Design mit JavaScript Web-Design mit PHP Konzeptionierung und Entwicklung einer E-Commerce Lösung mit PHP PHP5 New Features Apache Web-Server Installation und Administration Tomcat Konfiguration und Administration WebSphere Application Server Installation und Administration System Management PATROL Update Workshop PATROL Basics PATROL Customizing and Development PATROL Advanced PATROL Central PATROL Express Betriebssysteme Unix/Linux Grundlagen für Einsteiger Linux Systemadministration HP-UX-, Solaris-, Linux-, AIX-Systemadministration Linux Hochverfügbarkeits-Cluster Solaris Systemadministration Grundlagen Solaris Systemadministration Aufbau Solaris 10 Neuheiten Netzwerke Linux Netzwerkadministration Security Unix/Linux Security im Internet Microsoft Windows 2000/XP Grundlagen für Einsteiger Windows 2000 Active Directory Grundlagen Windows 2000 Active Directory Aufbau Windows Enterprise Server 2003 Projektmanagement IT-Projektmanagement Grundlagen des IT-Controlling Informationen und Anmeldung: ORDIX AG Westernmauer 12-16 D-33098 Paderborn Tel.: +49 (0) 52 51 / 10 63 - 0 ORDIX AG Kreuzberger Ring 13 D-65205 Wiesbaden Tel.: +49 (0) 6 11 / 7 78 40 - 00 ORDIX News 2/2005 zentrales Fax: bzw. E-Mail: Online-Anmeldung: +49 (0) 180 / 1 ORDIX 0 +49 (0) 180 / 1 67349 0 [email protected] http://training.ordix.de 25 Aktuell Anzahl Blöcke ? Sequentieller Scan? Larry Ratlos: Widerspenstiges Oracle ... Larrys Kollegen und Vorgesetzte sind zufrieden: Das Unternehmens-CMS läuft inzwischen so, wie man sich das vorgestellt hatte. Larry hoffte also, nun endlich beruhigt Urlaub machen zu können. – Doch weit gefehlt: Es gibt schon wieder ein neues Problem, das auf seine Lösung wartet. „Wir können so nicht richtig arbeiten!“ beklagt sich der Vertrieb seit geraumer Zeit. „Unsere Kundendaten sind total veraltet: Firmenstandorte sind zum Teil schon seit Jahren nicht mehr aktuell, Ansprechpartner nicht mehr aufzufinden.“ Daraufhin hat sich die Geschäftsleitung zu einer groß angelegten Aktion zur Aktualisierung der Kundendatenbank entschlossen. Nachdem die Entwickler einen Batch Job zur Aktualisierung der Kundendatenbank bereitgestellt haben, müssen die Administratoren diesen Job auf den sehr umfangreichen Datenbeständen laufen lassen. Der Job beinhaltet viele Full Table Scans, da alle Daten zu verarbeiten sind. Das aber dauert den Administratoren viel zu lange. Dieses Problem landete – wie sollte es auch anders sein – mal wieder auf Larrys Tisch. Da fällt ihm ein: Er hatte da doch mal was in seiner Oracle Dokumentation gelesen ... Larry versucht, sich selbst zu helfen Schnell hat Larry die Stelle wiedergefunden, an der er gelesen hatte, dass der Parameter db_file_multiblock_read_count die Anzahl der Blöcke bei einem sequentiellen Scan festlegt. Als er den Wert zur Probe auf 64 erhöht und einen Full Table Scan analysiert, stellt er jedoch fest, dass die Anzahl nicht, wie erwartet, 64 sondern höchstens 32, meist aber noch geringer ist. Anbei ein Auszug aus der Trace Datei von Larrys Forschungen. Der Parameter p3 gibt die Anzahl der Blöcke an, welche mit einem I/O gelesen werden: WAIT #1: nam='db file scattered read' ela= 18651 p1=12 p2=10 p3=12 WAIT #1: nam='db file scattered read' ela= 4231 p1=12 p2=23 p3=13 WAIT #1: nam='db file scattered read' ela= 3787 p1=12 p2=37 p3=16 Larry ist ratlos. Können Sie ihm helfen? Warum tut Oracle nicht das, was es tun soll? Können Sie ihm mögliche Gründe nennen? Senden Sie Ihre Lösung/Begründungen bis zum 15. Juli 2005 an [email protected]. Wie immer wird sich Larry mit einer kleinen Aufmerksamkeit bei seinen Helfern bedanken und einige der eingesandten Lösungen veröffentlichen. 26 Die Lösung des Rätsels aus der ORDIX News 1/2005 In der letzten ORDIX News hatte Larry mit der Access Control für Solaris zu kämpfen. Um das Unternehmens-CMS mit Dateien zu „füttern“, sollten Benutzer ihre Dateien einfach auf ein Samba-Share ziehen können, die dann über einen Dienst vom CMS übernommen werden. Besondere Beachtung fand dabei die Definition der Benutzerrechte, die nun die Aufnahme der Dateien in das CMS regeln: setfacl –s d:mask:rwx,\ d:user::---,d:group::---,d:other:---,\ d:user:cms:rw,user::rwx,\ group::rwx,other:---,user:cms:rwx,\ mask:rwx cmsVerzeichnis Diese Kommandozeile sorgt dafür, dass der CMS-Dienst automatisch Lese- und Schreibrechte bekommt, sobald eine Datei abgelegt wird, die übernommen werden soll. Root-Rechte verbieten sich aus Sicherheitsgründen von selbst. ORDIX News 2/2005 Aktuell – Titelthema ORDIX Jubiläum Aktuell Vertrauen ist die Basis für den gemeinsamen Erfolg 15 Jahre ORDIX oder „Wenn einer eine Reise tut ...“ Wie viele der heute großen Unternehmen, hat auch ORDIX einmal ganz klein angefangen. Am 15. Mai 1990 wurde es amtlich: Die ORDIX Software GmbH wurde in das Handelsregister eingetragen. Bis zum heutigen Tag hat sich ORDIX als mittelständisches IT-Dienstleistungsunternehmen etabliert – mittlerweile unter der Firmierung ORDIX AG. Erfahren Sie hier die wichtigsten Stationen dieser bewegten Reise durch gute und auch etwas weniger gute Zeiten. Aller Anfang war gar nicht mal so schwer! „Unix für Alle“ oder „Henne oder Ei“ Zu einer Zeit, in der der IT-Markt boomte, war für den damals 34-jährigen Diplom-Mathematiker Wolfgang Kögler der richtige Zeitpunkt gekommen, Nixdorf zu verlassen und sich auf eigene Wege zu begeben. Da der Unternehmensgründer Wolfgang Kögler – wie er oftmals schon in seinem Editorial durchscheinen ließ – eher ein Open Source- und Unix-Verfechter ist und der „Großen Microsoft Macht“ dementsprechend kritisch gegenübersteht, fokussierte man in den Kinderschuhen der ORDIX Software GmbH vor allem das Thema offene Systeme und relationale Datenbanken unter Unix. Auf die Frage „Was war zuerst: Name oder Leitspruch?“ kommt hier die Auflösung: Erst war das Wort und dann der Name. Aus Abb. 1: Der Gründer der ORDIX AG Wolfgang Kögler damals ... und heute. Neben weiteren mehr oder weniger bedeutenden Ereignissen im Jahr 1990, wie der Entwicklung des WWW durch Tim Barners-Lee sowie der Microsoft-Erfindung von Windows und damit der „Allgemeinen Schutzverletzung“, wurde am 15. Mai 1990 die ORDIX Software GmbH in das Handelsregister eingetragen – der erste Meilenstein war gesetzt und der Traum vom eigenen IT-Unternehmen nun wohlüberlegte Realität. Offene Systeme und Relationale Datenbanken unter UnIX und Windows wurde ORDIX Historisch gesehen, war das „Fenster“ zwar 1990 noch nicht Bestandteil des Leitspruches. Wer allerdings heutzutage noch versucht, ohne das Thema Microsoft auszukommen, kann seine Kunden nicht mehr optimal zufrieden stellen. ORDIX nahm diesen Trend ernst und holte sich erfahrene Berater und Trainer ins Haus, um seinen Kunden auch umfangreiches Microsoft Knowhow anzubieten. In vielen Projekten ist heute auch nur Microsoft und nicht Unix die Basis Plattform. Die Wandlung: von der Software GmbH zur AG Ein wichtiger Meilenstein der „ORDIX Reise“: Die Wandlung zur Aktiengesellschaft. Basierend auf dem Wunsch, seinen Kunden gegenüber eine noch größere Vertrauensbasis zu schaffen, wurde im Geschäftsjahr 1996/1997 die Wandlung zur Kleinen Aktiengesellschaft vollzogen. Auch interne Änderungen ergaben sich dadurch. Mitarbeiter konnten von nun an Beteiligungen am Unternehmen erwerben und somit direkt am Unternehmenserfolg teil- ORDIX - Wichtige Eckdaten ► ► ► ► ► ► ► ► März 1990: 15. Mai 1990: 1992: GJ 1996/1997: 1997: 1999: 2003: 2005: Gründung der ORDIX Software GmbH mit Sitz in Paderborn Handelsregistereintrag und Tag der ersten fakturierbaren Dienstleistung Eröffnung der Geschäftsstelle in Köln Wandlung der ORDIX Software GmbH zur ORDIX AG Eröffnung der Geschäftsstelle/des Trainingscenters in Wiesbaden Eröffnung der Geschäftsstelle in Münster Eröffnung der Geschäftsstelle in Neu-Ulm 15 Jahre ORDIX ORDIX News 2/2005 27 Aktuell haben. Die ORDIX Aktie wird im Übrigen nur unter den Mitarbeitern gehandelt. Träume zerplatzt waren, hatte sich die Spreu vom Weizen getrennt. ORDIX bleibt auch in Zeiten des „Neuen Marktes“ bodenständig ORDIX folgte diesem Trend ganz bewusst nicht und hielt konsequent am einmal eingeschlagenen Weg des langsamen aber stetigen Wachstums fest. Diese Devise hat sich als das richtige Rezept für eine stabile Unternehmensentwicklung erwiesen. Auf große Gewinne und Expansion hoffend, haben etliche Unternehmen den Gang an den „Neuen Markt“ gewagt. Nachdem die Die Bewertung der Aktie erfolgt durch einen Wirtschaftsprüfer. Alle Inhaber haben deshalb bisher mit der „O-Aktie“ nur Gewinne gemacht. Prozessor: Registerbreite: Adressbusbreite: Datenbusbreite: Adressraum: 80286 16 Bit 24 Bit 26 Bit 16 Mbyte Prozessor: Registerbreite: Adressbusbreite: Datenbusbreite: Adressraum: Pentium 4 32 Bit 32 Bit 64 Bit 64 GB Abb. 2: Der erste ORDIX Computer ... und der heutige Standard. Das ORDIX SOFTWARE GMBH Ohne nennenswerte Einschnitte folgen die Umsatz- und Mitarbeiterzahlen seit dem Gründungsdatum einem positiven Aufwärtstrend (siehe Abbildungen 5 und 6). Bereinigt um die Produktumsätze 2001/2002 sind die Dienstleistungsumsätze Jahr für Jahr gestiegen. Frei nach dem Motto: „Immer da, immer nah!“ Regional gesehen ist ORDIX seinen Kunden immer weiter entgegengekommen. Zusätzlich zu dem Hauptsitz in Paderborn, eröffnete das Unternehmen bis heute vier Geschäftsstellen in Deutschland, um Kundennähe noch besser zu gewährleisten. Sie finden ORDIX heute in Paderborn, Wiesbaden, Münster, Köln und Neu-Ulm. Portfolio Abb. 3: Das „ORDIX Software GmbH“-Logo damals ... und das aktuDas ORDIX Leitmotiv: BEST-Practice Das gesamte ORDIX Leistungsportfolio orientiert sich am Leitmotiv elle „ORDIX AG“-Logo. „BEST stringente Umsetzung bedeutet für Si BEST PPractice“ Aktuell hat. Dessen ORDIX seine Kernkompetenzen ORDIX News Nr. 1 Dezember/90 definiert (sieheLeistungsspektrum: Abbildung 7) und arbeitet als Kunden klar ein umfassendes nach dem selbstgewählten Leitmotiv BESTPractice: B eratung hochqualifizierte E ntwicklung zuverlässiger S ervice praxiserprobtes T raining professionelles P rojektmanagement kompetente ORDIX SOFTWARE GMBH Ein Bestandteil zum Gelingen dieses Leitmotivs sicherlich die Ausund WeiterUnser Ziel ist es,istgemeinsam mitinterne unseren Kunden auf der Basis bildungspolitik der ORDIX AG. Im Rahmen von der besten Informationstechnologien performancestarke und umfangreichen Schulungsmaßnahmen werden IT-Lösungen zu realisieren und wirtschaftliche ► Auflage: 500 (1993) ► Auflage: 8.700 (2005)wertschöpfende fortwährend neue IT-Experten ausgebildet. ► Aufmachung: ► Aufmachung: IT-Services bereitzustellen. „Lose Blatt Sammlung“. „Vierfarbdruck“. Nicht übertrieben: So mancher Kunde wunderDiese wurde vom Layout und Satz te sich bereits über Leistungen, die Trainees Firmengründer noch erfolgt Inhouse, Druck bzw. Junior Consultants der ORDIX erbringen. eigenhändig und Versand werden Im Durchschnitt sind diese Tätigkeiten oft mit zusammengetackert fremdvergeben. denen von langjährig tätigen Consultants anund kouvertiert. Dienstleistungen Technologien derer Dienstleister vergleichbar. Ein zusätzlicher Pluspunkt für ORDIX: Die überaus niedAbb. 4: Die erste Ausgabe der ORDIX News ... und die aktuelle Ausrige Fluktuation. gabe der ORDIX News. Neue Mitarbeiter GUUG '94 28 Seite 32 Seite DB-Administration f. ORACLE & INFORMIX Seite 11 YARD-SQL Seite 13 ORDIX News 2/2005 Aktuell Das Beste für den Kunden: Starke Partnerschaften schaffen Vertrauen Die IT-Welt ist groß, die Themenvielfalt immens. Um hier seine Kunden exzellent zufrieden zu stellen und immer mit aktuellsten Informationen und Produkten versorgen zu können, wurden starke Partnerschaften aufgebaut, die stetig weiterentwickelt werden. So ist ORDIX mittlerweile u. a. Partner namhafter Firmen wie IBM, Oracle, Novell Suse, Fujitsu Siemens, Sun, EMC VMware, HP und BMC. Der Weg ist das Ziel ... Während dieser 15-jährigen Reise waren die ORDIX Mitarbeiter Tag für Tag ganz nah am Geschehen: „ORDIX baut sehr stark auf den eigenen Nachwuchs. Das Unternehmen bietet im Verhältnis zur gesamten Mitarbeiteranzahl viele Ausbildungs- und Praktikantenstellen an. Dieser Tatsache habe ich es zu verdanken, dass ich eine Ausbildungs- und später eine Praktikantenstelle bekommen habe.“ Markus Fiegler, 1. Auszubildender der ORDIX AG, jetzt Consultant, im Unternehmen seit 1995. „Einzigartig bei ORDIX ist die Kombination von personeller Verantwortung und fachlichen Aufgaben. Wo findet man sonst einen Vorstand beziehungsweise Vorgesetzte, die neben Führungsaufgaben auch fachliche Projekte bearbeiten?“ Antonio Salguero, Bereichsleiter IT-Services, Projektmanager und Geschäftsstellenleiter NeuUlm, im Unternehmen seit 1992. „Ich habe vor 5 Jahren bei der ORDIX AG angefangen, weil ich mir damals dachte: Die Firma gibt es jetzt seit 10 Jahren, also mache ich mal die nächsten 10 bis 20 Jahre mit – da gibt‘s dann immer schön was zu feiern. ORDIX wird 15 Jahre. Es ist wie bei der Java Technologie (wird in diesen Tagen erst schlappe 10 Jahre): Beide werden mit den Jahren immer besser. “ Dr. Hubert Austermeier, Senior Consultant, im Unternehmen seit 2000. ORDIX News 2/2005 Abb. 5: Umsatzentwicklung. Das Portfolio Das gesamte ORDIX Leistungsportfolio orientiert sich am Leitmotiv „BEST BEST PPractice“. Dessen stringente Umsetzung bedeutet für Sie als Kunden ein umfassendes Leistungsspektrum: B eratung E ntwicklung zuverlässiger S ervice praxiserprobtes T raining professionelles P rojektmanagement kompetente hochqualifizierte Unser Ziel ist es, gemeinsam mit unseren Kunden auf der Basis der besten Informationstechnologien performancestarke und Abb. 6: Mitarbeiterentwicklung. wertschöpfende IT-Lösungen zu realisieren und wirtschaftliche IT-Services bereitzustellen. Dienstleistungen Technologien Abb. 7: BEST-Practice Leitmotiv. ORDIX sagt „Danke“ Das komplette ORDIX Team sagt an dieser Stelle „Danke“ an alle Kunden für die Zeit ihres Vertrauens. Wir freuen uns schon jetzt, auf eine weiterhin gute Zusammenarbeit in der Zukunft. Fordern Sie uns – wenn es um Ihre IT-Projekte geht! Indra Hohlbein ([email protected]). 29 Aktuell Sind 15 Jahre im Zeitalter der IT jung oder alt? Im Gespräch mit Wolfgang Kögler, Vorstandsvorsitzender der ORDIX AG, Paderborn. Persönliche Daten ► ► ► ► ► Name: Kögler, Wolfgang Alter: 49 Familienstand: verheiratet Größtes Hobby: ORDIX und Golf Lieblingsgericht: Speisekarte im Paderborner Restaurant Balthasar ► Lieblingssendung (TV): Harald Schmidt Nicht jeder macht sich selbstständig. Was hat Sie bewegt, ein Unternehmen zu gründen? Die Vorstellung, mich selbstständig zu machen, hatte ich bereits Mitte der achtziger Jahre. Maßgeblich dafür waren damals sicherlich meine Ungeduld mit manchem Vorgesetzten, ein gewisser jugendlicher Drang, aber auch die Gewissheit, mit einer überdurchschnittlichen Leistung in einem für die Bundesrepublik unüblichen Terrain – der IT-Dienstleistung – Erfolg zu haben. Bereits 1989 führte ich eine Reihe von interessanten und, wie sich später herausstellte, auch wichtigen Gesprächen und ließ alte Kontakte aus meiner Siemens- und Softwarezeit aufleben. Die Feinplanung war schon sehr durchdacht und konkret. Auch wenn es im Nachhinein etwas anders losging als geplant. Schließlich kamen der Niedergang von Nixdorf und der DDR quasi zum gleichen Zeitpunkt doch etwas unerwartet. Und warum als Franke im westfälischen Paderborn? Damals lebte ich in Paderborn. Paderborn ist also eher zufällig Sitz des Unternehmens. Schließlich arbeiten wir bundes- oder sogar europaweit. Inzwischen weiß ich aber die Vorteile von Paderborn durchaus zu schätzen und für mich zu nutzen. Dennoch bin ich mindestens genauso gerne in einer unserer Geschäftsstellen in Wiesbaden, Köln, Münster oder Neu-Ulm. Sprich: der Franke hält es in Paderborn gut aus – unter anderem, weil er nicht immer in Paderborn ist. ☺ Wie beurteilen Sie heute Ihre Entscheidung? Sie war richtig für mich als Person, aber vor allem für unsere Kunden. Denn ich kann heute sagen, jeder hat bisher von unserer Leistung profitiert. Und wenn ich an unsere Mitarbeiter denke, glaube ich auch, dass sich sehr viele, vielleicht sogar alle sehr wohl fühlen, obwohl ich hohen Einsatz von Ihnen verlange. 30 sen sie erfüllen. Wenn nicht, so hat das fatale Auswirkungen. Ich bin mir aber sicher, wir sind bis heute diesen Anforderungen stets gerecht geworden und werden sie auch in Zukunft erfüllen. Hätten wir das nicht, gäbe es ORDIX heute schon nicht mehr. Ich habe von Anfang an darauf geachtet, dass unsere internen Prozesse so schnell und effizient wie möglich sind. Für deutsche Verhältnisse kommen wir trotz vieler Vorgaben und Vorschriften mit einer extrem schlanken Verwaltung aus. Als Datenbankspezialist sorge ich natürlich dafür, dass wir auch firmenintern mit unseren Daten optimal umgehen. Warum sollten wir es selbst anders handhaben, als wir es bei unseren Kunden umsetzen. Viele IT Unternehmen sind in der Zeit von 1998 bis 2001 immens gewachsen. Weshalb hat Ihr Unternehmen in den Boom-Jahren nicht so große Sprünge gemacht? Ganz einfach: Ich wollte nicht, dass ORDIX explosionsartig wächst. Ein zu schnelles Wachstum führt fast immer dazu, dass irgendwas oder auch irgendwer nicht mitkommt. Das gilt für interne genauso wie für externe Prozesse. Und wenn die nicht funktionieren, stört das die Homogenität im Unternehmen. Das ist der Anfang vom Ende. Ein anderer Punkt ist, wenn ich Mitarbeiter einstelle, trage ich eine soziale Verantwortung. Bei zu schnellem Wachstum besteht die Gefahr, dass Sie sich plötzlich auch Gedanken über den Abbau von Mitarbeitern machen müssen. ORDIX hatte trotz der schweren Zeiten in der IT in seinem Kerngeschäft immer ein Wachstum zu verzeichnen. Auf dieser Basis haben wir uns folgerichtig weiterentwickelt. Und wenn Sie die anderen ansprechen, die damals so rasant gewachsen sind. Wie groß sind diese Unternehmen denn heute noch, sofern sie überhaupt noch existieren? Sie sprechen davon, dass Ihre Planung bereits im Vorfeld sehr konkret war. Erfüllt Ihr Unternehmen auch heute noch die Anforderungen, die Sie damals gestellt haben? Sie sagen, Ihr Unternehmen sei erfolgreich. Was macht den Erfolg Ihres Unternehmens aus? Was sind die Stärken von ORDIX? Darüber habe ich mir bisher keine Gedanken gemacht. Die Anforderungen stellen täglich unsere Kunden aufs Neue. Und wir müs- Das sind Fragen, die Sie eigentlich unseren Kunden stellen müssten. Aber ich antworte so gut ich ORDIX News 2/2005 Aktuell kann. Es gibt viele Stärken. Ein hoher Grad an Zuverlässigkeit und Konstanz, gepaart mit einem exzellenten Know-how, bilden die Basis. Hervorragend ist zudem unser Know-how Netzwerk. Viele unserer Mitbewerber arbeiten beim Kunden mit „Einzelkämpfern“. Hat hingegen einer unserer Mitarbeiter ein Problem, bekommt er sofort Ratschläge und Hilfe von einem halben Dutzend absoluter Spezialisten. Und das ohne Mehrkosten für den Kunden! Unsere Philosophie ist es, auf Wissen und Können zu bauen, statt auf Hierarchien: Das fachliche Vorwärtskommen wird wesentlich stärker gefördert und lieber gesehen als ein Aufsteigen in Hierarchien. Natürlich verlangen wir auch ein fachliches Fortkommen von denen, die bereits aufgestiegen sind. In letzter Konsequenz heißt das natürlich, dass nicht nur Bereichsleiter sondern auch die Vorstandsmitglieder aktiv Projekte gestalten, leiten und durchführen. Genauso wichtig ist es für ORDIX, dass wir Vorstände uns um alles kümmern, was das Unternehmen betrifft – und ich meine damit wirklich alles. Diese Einstellung kommt der Qualität sämtlicher Prozesse und Arbeitsergebnisse zu Gute. Wie kommt das bei Ihren Kunden an? Sehr gut. Wir arbeiten heute immer noch eng mit unseren ersten Kunden von 1990 zusammen und nicht, weil wir uns dort unentbehrlich gemacht haben, sondern weil wir gute Arbeit geleistet haben. Wir geben unser Wissen und unser Können weiter, das schafft Vertrauen. Und Vertrauen ist die Basis für den gemeinsamen Erfolg. Diese Erfahrung mache ich zur Zeit auch wieder bei drei, vier Kunden, wo wir zur Zeit parallel aktiv sind. Lassen Sie uns noch mal auf diese aktive Projektarbeit der Vorstände zu sprechen kommen. Es stellt sich natürlich die Frage, welche Erfahrungen Sie in der Wahrnehmung der Doppelrolle „Mitarbeit in Projekten“ und „Leitung des Unternehmens“ gemacht haben? Dies bringt natürlich eine höhere Arbeitsbelastung mit sich, zeigt ansonsten aber nur positive Effekte. Wir stellen mit unserem Erfahrungsschatz, auch der Erfahrung aus unserer Vorstandstätigkeit, einen großen Nutzen für unsere Kunden dar. Neben unseren langjährigen Projekt- ORDIX News 2/2005 Karriere, beruflicher Werdegang ► ► ► ► ► ► ► ► ► ► ► 1975 Abitur 1975/76 Zivildienst 1982 Diplom Mathematiker 1982 Anstellung als wissenschaftlicher Mitarbeiter am Rechenzentrum der Universität Erlangen und am Lehrstuhl für angewandte Mathematik 1983 Assistent am Lehrstuhl für numerische Mathematik der Universität Düsseldorf 1983 Start bei der Siemens AG im Zentralbereich Forschung und Entwicklung; Entwicklung und Projektberatung im Umfeld von Konfigurationsmanagement Systemen 1985 Wechsel zum damals größten deutschen Software Haus der SCS. Tätig als Gruppenleiter für das Rechenzentrum und den Kundensupport 1987 Wechsel nach Paderborn zur Nixdorf Computer AG ins technische Marketing für Unix Server als Gruppenleiter für Datenbanksupport, Toolsupport und Benchmark später Abteilungsleiter (1989 „Gründung“ des einzigen Profitcenters im Marketing der NCAG) 1990 Gründung der ORDIX Software GmbH Derzeitige Position: Vorstandsvorsitzender ORDIX AG tätigkeiten bringen wir unsere Erfahrungen aus der Geschäftsführung in Form von Managementberatung und unternehmerischem Denken beim Kunden ein. Umgekehrt können wir aber auch die Erfahrungen aus den Projekten bei uns im Unternehmen nutzen. Das gilt insbesondere für das Thema Personalwesen. Ich glaube, dass wir hier Vorbildcharakter haben: sowohl im Vergleich zu ähnlich großen Firmen als auch zu Konzernen und Großunternehmen. Stichwort Personalwesen: Worauf kommt es Ihnen bei der Einstellung Ihrer Mitarbeiter besonders an? Ein solides Wissen in mindestens einer der von uns vertretenen Technologien muss vorhanden sein. Dieses können wir durch unsere regelmäßigen Weiterbildungsmaßnahmen dann verstärken und ausbauen. Als kundenorientiertes Dienstleistungsunternehmen stehen nahezu alle unsere Mitarbeiter immer wieder in direktem Kundenkontakt. Da benötigt der Mitarbeiter neben dem technischen Sachverstand natürlich auch eine persönliche Ausstrahlung und soziale Kompetenz. Bewerber, die nicht gleichzeitig solides Know-how und soziale Kompetenz mitbringen, haben bei uns in der Regel keine Chance. Aber natürlich stellen wir auch Newcomer ein, wenn wir bei ihnen dieses Potenzial erkennen. Schließlich bilden wir seit 10 Jahren DV Kaufleute beziehungsweise Fachinformatiker aus, die sich inzwischen alle zu guten und sehr guten Mitarbeitern entwickelt haben. Was ist derzeit das vorherrschende Thema im IT-Dienstleistungsmarkt? Es sind leider keine technologischen Themen. Vorherrschend ist die Auseinandersetzung mit wirtschaftlichen Themen wie Off-Shore Entwicklung oder Outsourcing von Leistungen in Billig-Lohn Länder. Seit 2001 herrscht ein immenser Preisdruck. Wenn ich be- 31 Aktuell trachte, dass wir heute eine um ca. 35 - 40 Prozent bessere Auslastung als vor ein bis zwei Jahren haben, aber nur ca. 5 Prozent mehr Umsatz machen, dann wird das mehr als deutlich. Das hat Auswirkungen, die weit über den IT-Dienstleistungsmarkt hinausgehen. Ich habe schließlich im Nebenfach Volkswirtschaftslehre studiert und wenn ich mir so die Ökonomie-Strategen in den Unternehmen ansehe, die am liebsten ständig an der Kostenschraube drehen, dann muss denen auch klar werden, dass fast an jedem Prozess – egal wie viel B2B es sein mag – am Ende irgendwo der Endverbraucher steht. Wenn der Endverbraucher aber nicht mehr konsumieren kann, wird der Binnenmarkt noch stärker zurückgehen. Irgendwann kann die deutsche Wirtschaft das dann nicht mehr durch Export wettmachen. Von den zunehmenden Renten-, Pensions- oder Krankenkassenproblemen ganz zu schweigen. Welche Auswirkungen hat diese Entwicklung auf ORDIX? Wie schon geschildert, spiegelt das Umsatzwachstum nicht das tatsächliche Wachstum wieder. Natürlich kommt auch immer wieder bei uns das Thema auf, bestimmte Dinge in Russland oder anderen, preiswerteren Staaten realisieren zu lassen. Aber bisher habe ich mich immer noch mit meinen Vorstellungen durchsetzen können, als Unternehmen in der Bundesrepublik mit hier ansässigen Mitarbeitern zu arbeiten. Wir sind auch noch nicht in die Schlagzeilen geraten, weil wir von unseren Mitarbeitern Mehrarbeit ohne Lohnausgleich verlangt haben. Wir haben aber leider auch seit über zwei Jahren keine Gehaltserhöhungen ausgesprochen. Vor drei Jahren habe ich meinem Aufsichtsrat vorgeschlagen auf 10 Prozent meines Gehaltes zu verzichten. Natürlich hat der dieses Angebot auch angenommen, genauso wie eine eigentlich vereinbarte Gehaltserhöhung meines Kollegen nicht durchzuführen. Die Kehrseite der Medaille ist aber, dass wir dieses Geld nicht investieren können, sei es in Konsum, der der Gesamtwirtschaft zu Gute kommt, oder wie vielfach in der Vergangenheit geschehen, wieder ins Unternehmen stecken. Als Gründer des Unternehmens haben Sie eine ganz besondere Beziehung zur ORDIX. Welche Rolle spielt ORDIX in Ihrem Leben? Zum Leidwesen meiner Frau nimmt das Unternehmen die Hauptrolle ein. Ich bin mir sicher, dass ich in den vergangenen 15 Jahren mehr Zeit in ORDIX investiert habe, als viele Durchschnittsbürger in ihrem gesamten Arbeitsleben für ihre Arbeitgeber arbeiten. Selbst wenn ich mich irgendwann zurückziehen werde, werde ich immer noch viel für das Unternehmen leisten. Welche der Entwicklungen, die ORDIX in den letzten 15 Jahren durchgemacht hat, macht Ihnen am meisten Freude? Genannt habe ich ja schon die Entwicklung als Ausbildungsbetrieb und die Entwicklung der ehemaligen Auszubildenden in unserem Unternehmen. Besonders spannend war die Wandlung von der GmbH zur Aktiengesellschaft. Selbst wenn ich dabei für die Ausbildung von Rechtsanwälten, Notaren und sicherlich auch von Behörden indirekt viel Geld bezahlen musste. 32 Sehr interessant ist auch die Entwicklung unserer Kundenzeitschrift ORDIX News. Außerdem freut es mich, zu sehen, dass unsere Entwicklung als Unternehmen mit einem erfolgreichen Trainingsbereich trotz der schwierigen Marktlage positiv zu beurteilen ist. Gibt es denn auch Entwicklungen oder Umstände, mit denen Sie nicht zufrieden sind? Im Unternehmen selbst gibt es eher wenige Entwicklungen, die mich nicht zufrieden stimmen – vielleicht die Tatsache, dass wir trotz der guten Leistungen unserer Mitarbeiter die Gehälter einfrieren mussten. Unzufrieden bin ich über die gesamtwirtschaftliche Situation. Wobei die Probleme zum Teil auch nur hausgemacht sind. Vor allem stört es mich, wie die ganz großen Unternehmen und auch die Politik damit umgehen. Auf der einen Seite wirft man Geld in großem Bogen und unkontrolliert zum Fenster hinaus – Stichwort Wiedervereinigung oder Globalisierung – und auf der anderen Seite macht man durch kleinkariertes Denken und teilweise unsinnige Sparmaßnahmen alles noch schlimmer. Nicht dass man mich falsch versteht: Der „einfache Bürger“ im Osten Deutschlands oder der „normale“ Mitarbeiter im Konzern trägt keine, wenn überhaupt nur geringfügige Schuld. Ich rede von denen, die Entscheidungen treffen. Aber ich gehöre nicht zu denen, die jammern. Die Situation ist so und ich versuche, aus ihr das Beste zu machen, auch wenn die Umstände es einem nicht leicht machen. Kommen wir zu positiven Meldungen zurück. Was wünschen Sie sich für die Zukunft von ORDIX? In der Hauptsache wünsche ich mir für unsere Kunden und Mitarbeiter, dass wir alle gemeinsam Erfolg haben. Denn mit diesem Erfolg ist automatisch ein gutes Ein- und Auskommen gesichert. Ich werde meinen Anteil dazu beitragen, dass das, was wir uns vorgenommen haben – nämlich kontinuierlich und stabil weiter zu wachsen – erreicht wird. Natürlich wünsche ich mir auch Gewinne für das Unternehmen. Schließlich bin ich ja nicht alleiniger Aktionär, sondern viele Mitarbeiter haben auch ORDIX Aktien, die sich in den Jahren seit 1996 als wesentlich stabiler erwiesen haben als viele andere Aktien. Ja und zuletzt vielleicht, dass spätestens zum 25. Geburtstag ein anderer an dieser Stelle Ihre Fragen beantwortet. ORDIX News 2/2005 Aktuell Chess Classic Mainz 2005: Spielen Sie gegen die „Schach-Könige“ Seit nunmehr 12 Jahren ist ORDIX Sponsor der Chess Classic, seit 1994 gibt es das ORDIX Open – das weltgrößte Schnellschachturnier, das im Rahmen der Chess Classic wieder in der Rheingoldhalle in Mainz ausgetragen wird. Seien Sie mit dabei vom 9. - 14. August 2005. Es lohnt sich, diese außergewöhnliche und prickelnde Atmosphäre zwischen Stars und „Springern“ einmal selbst mitzuerleben. Das ist Ihre Chance 1. 2. Lassen Sie sich dieses Top-Event nicht entgehen und spielen Sie höchstpersönlich gegen die Weltspitzen des Schachs. Wir verlosen unter den ersten 50 Einsendern ► 2 Plätze für das ORDIX Open am 13. und 14.08.2005 sowie ► 1 Platz im Simultan gegen den Gewinner des ORDIX Open von 2003 und 2004, Alexander Grischuk am 10.08.2005. Senden Sie das Lösungswort des Rätsels unter Angabe des Wunschturniers bis zum 15.07.2005 an: ORDIX AG Westernmauer 12-16 33098 Paderborn oder per Mail an [email protected] Stichwort: Chess Classic 2005 Der Rechtsweg sowie die Teilnahme von ORDIX Mitarbeitern sind ausgeschlossen. 3. 4. 5. 6. 7. 8. 9. 1. Wie heißt der ORDIX Kollege „Larry“ mit Nachnamen, der in jeder News Ihre Hilfe benötigt? 2. Wie nennt man das Pferd beim Schach? 3. Oracle, Informix, DB2 sind ... 4. Wie nennt man ein Schach-Match, wo einer gegen viele spielt? 5. Wie nennt man den Linux Pinguin? 6. Wenn der Quellcode offen ist, handelt es sich um ... 7. Wie heißt eine Artikelreihe aus unserer Rubrik Java/XML: „... im Vergleich“ 8. Englischer Begriff für Schach 9. Veranstaltungsort der Chess Classic in Mainz Impressum Autoren dieser Ausgabe: Herausgeber: Christof Amelunxen, Holger Demuth, Markus ORDIX AG Fiegler, Stefanie Heither, Thomas Hölzer, Martin Aktiengesellschaft für Softwareentwicklung, Weitere Informationen zu Systemintegration, den Chess Classic Mainz 2005 finden Sie Hohlbein, unter www.chesstigers.de. Hoermann, Indra Matthias Jung, Dr. Beratung, Schulung und Stefan Koch, Wolfgang Kögler, Andreas Kother, Paderborn Stefanie Heither ([email protected]). Axel Röber, Uwe Rübesamen, Guido Saxler Redaktion: Copyright: Helma Jenniches, Sascia Brinkmann ORDIX AG. Alle Rechte vorbehalten. Die Zeitschrift ORDIX News hat eine Auflage von 8.700 Exemplaren. Sie wird von der ORDIX AG an V.i.S.d.P.: Wolfgang Kögler ausgesuchte Kunden verteilt und kann für 2,20 Euro bestellt werden. Anschrift der Redaktion: Sie finden sowohl die neueste Ausgabe als auch ältere Ausgaben im ORDIX AG Archiv der ORDIX News im Internet unter: http://www.ordix.de. Westernmauer 12 - 16 Schauen Sie mal rein! D-33098 Paderborn Tel.: 0 52 51 / 10 63 - 0 Der Kontakt zu unseren Lesern ist uns sehr wichtig. Für Anregungen, Fax: 0 180 / 1 67349 0 Kritik und Anmerkungen zu den Themen, aber auch für interessante Ideen sind wir immer offen und dankbar. Sie erreichen die Redaktion Gestaltung/Layout: Sascia Brinkmann auch per E-Mail unter [email protected]. Druck: Druckerei Reike GmbH, Paderborn ORDIX News 2/2005 Wir freuen uns auf Ihr Feedback. 33 System Management – Titelthema OVPI HP OpenView Performance Insight: Vom Netzwerk-Tool zum strategischen ITIL Reporting Werden meine Ressourcen effizient eingesetzt? Wie kann ich meine Einkünfte mit existierenden Mitteln erhöhen? Wie kann ich meine Kosten senken, oder eine Kostenerhöhung verzögern? Ist die Einhaltung aller abgeschlossenen Service Level Agreements gewährleistet? Erreichen kritische Servicekomponenten ihre Kapazitätsgrenzen? Wann ist der kritische Punkt erreicht? Dies sind eine Menge Fragen! – Und es sind nur ein paar der Fragen, die sich jeden Tag ergeben, wenn man für die Kontrolle der IT Kosten und die Einhaltung der Service Level Agreements verantwortlich ist. Antworten auf all diese Fragen soll das neue HP OpenView Performance Insight (OVPI) Tool geben. Die Frage, welche Ressourcen benötigt werden und wo noch Verbesserungspotential liegt, beantwortet dieser Artikel. Dieser Artikel richtet sich an alle, die nach einem Reporting-Tool für Ihre Systemumgebung suchen. Geschichte Im September 2000 änderte die Firma Desktalk Systems INC. ihren Namen in „Trinagy“. Dies geschah, um die Richtung und die Visionen der Firma zu verdeutlichen. Dabei reflektierte der Name „Trinagy“ die drei Säulen, auf denen Ihre Visionen standen: • die Datensammlung für komplexe Netzwerke und Applikationen • die Datenaufbereitung über verteilte Systeme • die Darstellung der Daten in eigenen, leicht zu bearbeitenden und selbst erstellten Reports Der damalige Trinagy Präsident und CEO, David Woodall, drückte seine Vision wie folgt aus: „Our new name and our exciting product directions reflect the nature of Trinagy’s heritage – to optimize network performance for service providers and enterprises that function like service providers worldwide.“ [1] Hinter diesen Visionen stand die TREND-Produktsuite. Diese ermöglichte es dem Service Provider, schwebende Netzwerkprobleme zu erkennen, die unterschiedlichsten Wechselwirkungen zu verstehen und darauf zu reagieren, bevor es zu Ausfällen beim Kunden kam. Gleichzeitig bot die Suite aber auch dem Kunden die Möglichkeit, seine mit dem Provider definierten Service Level Agreements (SLA´s), über ein Web-Interface, im Auge zu behalten. Das große Potential dieser Reporting Suite, mit ihrer offenen Architektur und den Möglichkeiten der Integration in vorhandene OSS/ BSS Systeme, erkannte auch HP und entschloss sich im August 2001, die Firma Trinagy zu kaufen. Die damalige TREND-Produktsuite wurde zu HP OpenView Performance Insight und als strategischer Bestandteil in die OpenView Familie integriert. Allgemeiner Aufbau HP OpenView Performance Insight ist eine Performance Management Lösung, die für den Einsatz in unterschiedlichsten System- 34 landschaften entwickelt wurde. Natürlich ist auch heute noch die Herkunft des ehemaligen Netzwerk-Tools nicht zu übersehen. Doch die fortlaufende Weiterentwicklung der vorgefertigten Schnittstellen, sogenannter Report Packs (für ServiceDesk, IT-Operations, etc.), zeigt den Weg zum globalen Reportingtool. Abhängig von der Größe der Systemlandschaft und den gestellten Anforderungen an HP OpenView Performance Insight, kann die Architektur und die Anzahl der einzelnen Komponenten variieren. Die Skalierbarkeit des Tools gestattet den einfachen Aufbau einer 1-Host-Single-User Lösung, bis hin zur verteilten, netzwerkweiten Management Lösung mit mehreren Usern, Gruppen und Lokationen. Anhand der Abbildung 1 werden die grundlegende Architektur und die Hauptkomponenten von HP OpenView Performance Insight beschrieben. Sammeln der Daten Verantwortlich für das Sammeln der Daten sind die „Remote Poller“. Sie sind reine Datensammler und werden an zentralen Stellen im Netz platziert. Diese sammeln dann von einer Anzahl von Systemen die Daten und leiten diese an den Performance Manager weiter. Der Performance Manager ist für ein oder mehrere physikalische Server verfügbar. Je nach Aufgabe kann es sich dabei um einen „Satellite Server“, oder „Central Server“ handeln. Beide beinhalten eine relationale Datenbank (auf Basis von Oracle oder Sybase) und sind für die Verarbeitung der Rohdaten zuständig. Satellite Server Satellite Server kommen vor allem in größeren Umgebungen zum Einsatz und verringern die Datenflut auf den Central Server. Dabei über- ORDIX News 2/2005 System Management nehmen die Satellite Server einen Teil der Datenaufbereitung und schicken diese dann an den Central Server. Central Server Der Central Server ist das Hauptarchiv für alle benötigten Reportdaten. Der Central Server empfängt sowohl die Rohdaten der „Remote Poller“, wie auch die aufbereiteten Daten der Satellite Server und erstellt über die Rollup Prozeduren die aggregierten Datensätze für die Reports (täglich, monatlich, forecast, etc.) und legt sie in der OVPI Datenbank ab. Weiter ist er die Anlaufstelle für Anfragen über den Web Access Server und leitet die Reportanfragen an die entsprechenden Datensätze weiter. Web Access Server Der Web Access Server stellt die OVPI Webseite zur Verfügung. Über ihn ist es möglich, sich mit einem gängigen Web-Browser am Reportingtool zu authentifizieren und auf die Reports zuzugreifen. Auch die OVPI Clients nutzen den Web Access Server zur Authentifizierung ihrer User. Die OVPI Clients sind die Benutzerinterfaces für HP OpenView Performance Insight. Sie können auf einem beliebigen Rechner im Netz installiert sein. Zu den OVPI Clients gehören der Report Builder, der Report Viewer und die Management Konsole. Management Konsole Die Management Konsole ist dabei hauptsächlich als Administrationstool zu sehen und beinhaltet den Package-, Object-, System-, Group-, Polling- und Table Manager. Weiterhin ermöglicht sie das Datenbank Tuning und die Verwaltung der Discovery Prozesse. Der volle Funktionsumfang steht nur in Verbindung mit dem Performance Manager zur Verfügung. Mit dem Report Builder lassen sich, basierend auf den Daten der OVPI Datenbank, Reports erstellen. Der Report Viewer dient zum Betrachten der Reports. Er bietet die Möglichkeit, die Darstellung der Daten zu modifizieren, zu speichern und zu drucken. Skalierbarkeit Finden die Datensammlung, die Aufbereitung der Rohdaten, das Erstellen und zur Verfügung stellen der Reports und das Managen des Webzugriffs, inklusive Userverwaltung auf einem Rechner statt, dann handelt es sich um ein Standalone System. In der Praxis werden solche Systeme höchstens in Testumgebungen implementiert. Produktive Systeme bestehen fast immer ORDIX News 2/2005 User Authentifizierung, Report Entwicklung Remote Poller Remote Poller Remote Poller Management Konsole Datenfluss Web Access Server, Management Server Reports Reports Reports OVPI Datenbank Performance Manager, Management Server Builder Web-Browser Viewer Abb. 1: Die HP OpenView Performance Insight Architektur. aus mehreren Servern. In den folgenden Abschnitten werden einige mögliche Architekturen und ihre Vorteile dargestellt (siehe auch das Beispiel in Abbildung 2). Einsatz von mehreren Remote Pollern Wie schon erwähnt, handelt es sich bei den Remote Pollern um reine Datensammler, welche strategisch günstig im Netz verteilt werden. Sie sollten im Netz möglichst nah bei ihren Zielobjekten liegen, um lange Distanzen zu vermeiden. Der Einsatz eines einzelnen Remote Pollers hinter einer Firewall ist daher zu empfehlen. Einsatz von mehreren Satellite Servern Der Satellite Server besteht aus denselben Komponenten, wie der Central Server. Er besitzt eine eigene OVPI Datenbank und lässt sich über die Management Konsole verwalten. In einer verteilten Umgebung übernimmt er allerdings nur einen Teil der Aufgaben des Central Servers. Er soll vor allem den Central Server entlasten. Um diese Aufgabe zu erfüllen, berichten die Remote Poller nicht mehr direkt an den Central Server, sondern an einen Satellite Server. Auf ihm erfolgt eine „Vorverarbeitung“ der gesammelten Rohdaten. Dies geht gewöhnlich über das Wandeln der Rohdaten und das Erstellen von stündlichen Aggregationen nicht hinaus. Anschließend werden diese bearbeiteten Daten an den Central Server weitergeleitet, in dem dann die restlichen Rollup Prozeduren ausgeführt werden. Trennen von Central Server und Web Access Server Sowohl der Central Server als auch der Web Access Server benötigen wegen ihrer vielfältigen Aufgaben viel Hauptspeicher und eine dementsprechende Rechenleistung. Hinzu kommt beim Central Server noch eine möglichst große Plattenkapazität. Aus diesem Grund empfiehlt es sich, den Web Access Server auf einer separaten Maschine zu installieren. Arbeitsweise Unabhängig von der Architektur und der Größe der Systemlandschaft arbeitet HP OpenView Performance Insight immer auf dieselbe Art und Weise. Als erstes werden die Daten gesammelt, dann 35 System Management Remote Poller Remote Poller Remote Poller Remote Poller Satellite Server 1 Datenbank Management Server Remote Poller Satellite Server n Datenbank RAW Data Hourly Summaries Remote Poller Management Server RAW Data Hourly Summaries Daten aufbereiten Central Server Datenbank Management Server Hourly Summaries Web Access Server, Management Server Daily Summaries Reports Reports Reports Forecast ... Abb. 2: Beispiel einer verteilten HP OpenView Performance Insight Architektur. Netzwerk Daten sammeln RAW Daten to aufbereiten Delta Reports OVPI Datenbank Beim Aufbereiten der Daten werden die Rohdaten in sogenannte Delta (oder Rate) Daten gewandelt, zusammengefasst und alte Daten aus der Datenbank gelöscht. Die Delta Daten beinhalten dabei die Differenz zwischen zwei zeitlich aufeinander folgenden Werten. Beim Zusammenfassen werden die Daten in stündliche, wöchentliche, monatliche, vierteljährliche und jährliche Daten konvertiert und in einzelnen Tabellen abgelegt. Weiterhin legt OVPI Forecast Tabellen an. Darin werden Daten für einen Ausblick in die nächsten 30, 60 und 90 Tage gesammelt. Die Aufbewahrungszeit der Daten in den Tabellen wird über die „Retention Time“ bestimmt. Jede Tabelle hat dabei ihre eigene, voreingestellte Aufbewahrungszeit, welche sich natürlich auch ändern lässt. Ist diese abgelaufen, werden die Daten gelöscht. Abb. 3: Struktureller Ablaufplan der Datenverwaltung. Report Daten bearbeitet und anschließend als Reportdaten zur Verfügung gestellt. Diese drei Arbeitsschritte werden im Folgenden näher betrachtet (siehe Abbildung 3). Nach dem Aufbereiten der Daten lassen sich daraus Reports erstellen. Dabei stehen zwei unterschiedliche Methoden zur Verfügung: Daten sammeln • automatisch: Die Reports sind Bestandteil Über diese Funktion werden die Netzwerkkarten oder Systeme im Netzwerk identifiziert. Die Daten werden dann durch Polling oder durch das Einlesen von „Flat Files“ gesammelt. Ein „Flat File“ ist dabei eine abgeschlossene Datei mit historischen Daten eines Systems oder einer Applikation, die periodisch neu erzeugt wird. OVPI kann von folgenden Datenquellen sammeln: • SNMP Devices (inklusive RMON) • OV Performance Agent und OV Operations Agent • Non-SNMP Devices Um Daten zu sammeln, benutzt HP OpenView Performance Insight eine Liste von OIDs gängiger SNMP Geräte. Bei der Installation von Report Packs wird die Liste entsprechend erweitert beziehungsweise angepasst. Für die Erstellung eigener Datensammlungen steht ein MIB-Browser mit der Möglichkeit der Integration weiterer MIBs zur Verfügung. Sind über SNMP keine Daten abzufragen, bietet HP OpenView Performance Insight die Möglichkeit des Auslesens von „Flat 36 Files“. Diese Methode erfordert ein zusätzliches „TEEL Files“, welche die Information für das Ablegen der Daten in der Datenbank enthält. Bei der Installation von Report Packs sind alle notwendigen Dateien und Tabellen bereits vorhanden. Existieren keine fertigen Report Packs zu einem System oder einer Applikation, besteht die Möglichkeit, die notwendigen Dateien und Tabellen selbst anzulegen. • der Report Packs. In ihnen ist festgelegt, was sie beinhalten und zu welchen Zeiten sie generiert werden. manuell: Mit dem Report Builder besteht die Möglichkeit, eigene Reports zu generieren. Hierfür ist der Zugriff auf die gesamten Daten der Datenbank möglich. Alle gängigen Darstellungsarten wie Graphen, Tabellen, Bilder, Text, etc. sind frei verfügbar. Die fertigen Reports stehen nach der Erstellung über den Web Access Server zur Verfügung und lassen sich mit dem Web-Browser oder dem Report Viewer betrachten. Für die zeitliche Steuerung der Datensammlung, der Datenaufbereitung und der Reporterstellung ist der „trendtimer“ zuständig. Der „OVPI trendtimer“ ist ein Dienst / Daemon und kontrolliert über die Textdatei „trendtimer.sched“ die unterschiedlichen Prozesse und Startzeiten. ORDIX News 2/2005 System Management Links [1] http://www.geocapital.com/geo/news_02.asp?id=76&type=0&disp_type=1 [2] http://www.managementsoftware.hp.com/products/ovpi/index.html Report Packs Bei einem Report Pack handelt es sich um eine geschlossene Reporting Lösung. So ist das Report Pack normalerweise auf einen speziellen Anbieter, Typ oder eine spezielle Anwendung zugeschnitten. Es liefert Out-of-the-box Lösungen mit vorgefertigten Reports und ermöglicht die einfache Anpassung und Erweiterung entsprechend eigener Anforderungen. Bei der Installation von Report Packs werden automatisch die benötigten Tabellen und Views angelegt. Es werden alle Prozesse, die zur Datensammlung, -bearbeitung und Reporterstellung notwendig sind, installiert und dem „OVPI trendtimer“ übergeben. Spätestens beim Betrachten der verfügbaren Report Packs wird die Herkunft des Tools klar. Fast alle Report Packs stammen aus dem Netzwerk Segment. Erst in letzter Zeit ist HP dazu übergegangen für die eigenen Management Tools Report Packs anzubieten. Dies ist notwendig, um den Aufgaben einer strategischen Reporting Lösung gerecht zu werden. Eine Auswahl verfügbarer Report Packs finden Sie unter [2]. Handling Komplexität Die Installation von HP OpenView Performance Insight ist sehr einfach. Wie komplex und mächtig das Tool ist, zeigt sich erst im Betrieb. Es sollte von vornherein klar sein, dass die Administration des Tools ein Fulltime Job ist und nicht nebenbei erledigt werden kann. Gute Kenntnisse vorausgesetzt Soll effizient damit gearbeitet werden, sind gute Netzwerk- und Datenbank-Kenntnisse notwendig. Zum Erstellen von Reports, dem Verwalten der Systeme, der Zuordnung der gesammelten Daten sowie der Rechteverwaltung für Systeme und Reports steht als grafisches Tool die Management Konsole zur Verfügung. Allerdings ist es ohne Verständnis des Gesamtsystems und des Aufbaus der Tabellen und Indizes kaum möglich, hiermit eine sinnvolle Konfiguration zu erstellen. Die sehr differenzierte Darstellung und Rechteverwaltung erkauft man sich mit einem sehr hohen administrativen Aufwand. ORDIX News 2/2005 Glossar OSS BSS SNMP RMON OID MIB Operational Support System Business Support System Simple Network Management Protocol Remote Monitoring Object Identifiers Management Information Base Erstellen eigener Report Packs ist aufwendig Am aufwändigsten ist das Erstellen von eigenen Report Packs. Hierzu müssen entsprechende Tabellen für die einzelnen Zeiträume angelegt werden. Neben den zu definierenden Zeitperioden, wann die Daten gelöscht werden können, müssen Verweise zwischen den Rechnergruppen und den gesammelten Daten erstellt werden. Weiterhin müssen Report-Templates erstellt werden, die auf die angelegten Tabellen und Verweise zugreifen. Dies ist bei weitem noch nicht alles, sondern nur eine grobe Beschreibung der notwendigen Tätigkeiten. Fazit Ohne jetzt weiter auf das genaue Handling von HP OpenView Performance Insight eingehen zu wollen, wird schnell klar, welche Möglichkeiten zur Verfügung stehen und wie gut man dafür die OVPI Datenbank kennen muss. Hat man sich aber in dieses Tool eingearbeitet und die Arbeitsweise verstanden, stehen einem alle Tore offen, Service Level Agreements darin darzustellen. Interessant für große Firmen Mit dem Einkauf der TREND-Produktsuite und dem weiteren Ausbau zum HP OpenView Performance Insight Tool hat HP sicherlich den richtigen Weg eingeschlagen, um die komplexen Zusammenhänge einer heutigen IT Landschaft darzustellen. Durch die fertiggestellte Integrationslösung für HP OpenView Service Desk können alle wichtigen Fakten der ITIL Prozesse abgebildet werden. Der hohe administrative Aufwand für das Tool macht es in der Regel aber nur für große Firmen interessant, die trotz der dadurch anfallenden zusätzlichen Kosten dann auch einen wirklichen Mehrwert erhalten. Die Weiterentwicklung des Tools und vor allem der Report Packs wird darüber entscheiden, ob sich diese Reportinglösung auch außerhalb des HP Umfeldes durchsetzen wird. Die Möglichkeiten sind auf jeden Fall durch die offenen Schnittstellen gegeben. Thomas Hölzer ([email protected]). 37 Datenbanken Oracle 10g (Teil V): dbms_stats – Trau keiner Statistik, die du nicht selbst ... Dieser berühmte Spruch ist auch unter Datenbankadministratoren sehr verbreitet. Viele Anhänger des regelbasierten Optimizers oder des traditionellen Befehls ANALYZE TABLE wehren sich nach wie vor – selten mit guten Argumenten – das von Oracle empfohlene Paket zu verwenden. Mit der Version 10g liefert Oracle einige zusätzliche schlagkräftige Argumente für den Umstieg auf den kostenbasierten Optimizer. Lassen Sie die guten, alten Zeiten hinter sich und lösen Sie mit etwas Aufwand auch schwierige Statistikprobleme. Dieser Artikel richtet sich an Oracle Datenbank Administratoren, die sich mit 10g beschäftigen oder bereits mit Oracle 9 und dbms_stats gearbeitet haben. Übersicht Mit der Grid Version ihres Datenbank Management Systems liefert Oracle im Wesentlichen vier neue Funktionalitäten, welche im Zuge dieses Artikels näher beleuchtet werden. Die erste Erweiterung ermöglicht es, Objekte bezüglich ihrer Statistiken zu sperren und zu entsperren. Die zweite Erweiterung stellt die Wiederherstellung von Statistiken aus der Vergangenheit zur Verfügung. Weiterhin gibt es neue Prozeduren zum Sammeln der Statistiken für das Data Dictionary und erstmalig auch für die sogenannten fixed objects. Die automatisierten Features runden diesen Beitrag ab. Sperren, Entsperren und das dbms_stats Paradoxon Im Prinzip ist es nur dann sinnvoll, Statistiken zu sammeln, wenn aufgrund neuer Statistiken ein besserer/anderer Ausführungsplan für die wichtigsten SQL Befehle entsteht. Andererseits können gerade aus veränderten Statistiken schlechte Ausführungspläne resultieren. Dies ist das sogenannte „dbms_stats Paradoxon“ von 22 SCOTT A B 11 44 55 analyze C D unlock Abb. 1: Verwendung der Prozedur lock_table_stats. 38 Mit Oracle 10g ist es nun möglich, Statistiken für einzelne Objekte zu „sperren“. Weder die Aktualisierung noch das Löschen der zugehörigen Statistiken ist danach möglich. Lediglich mit der neuen Option FORCE kann bei einigen Prozeduren diese Sperre durchbrochen werden. Die Abbildung 1 veranschaulicht ein Szenario, in welchem auf der Tabelle C die Statistiken unverändert bleiben sollen. Die Statistiken der Tabelle C im Schema SCOTT werden mit der Prozedur lock_table_stats (‘SCOTT‘, ‘C‘ ) gesperrt . Wird nun das Schema SCOTT mit dem Befehl gather_schema_stats(‘SCOTT‘, ... ) analysiert, überspringt die Prozedur die Tabelle C. Auch die explizite Ausführung von gather_table_stats(‘SCOTT‘,‘C‘, ...) scheitert. Lediglich über die Option FORCE, z. B. mit import_column_stats(..., force=>true) lässt sich die Sperre durchbrechen. Über den Befehl unlock_table_stats (‘SCOTT‘, ‘C‘ ) wird die Sperre wieder aufgehoben. analyze Historisierung von Statistiken analyze Sollten sich nach dem Sammeln neuer Statistiken Ausführungspläne verschlechtern, so ist guter Rat meist teuer. skip 33 Dave Ensors: „It is only save to gather statistics when to do so will make no difference.“ analyze Bereits mit der Version 9 konnten Statistiken mit Hilfe des Pakets dbms_stats in der sogenannten stattab Tabelle gesichert und wiederhergestellt werden. Dies musste vom DBA aber explizit implementiert werden. ORDIX News 2/2005 Datenbanken Ab 10g sichert Oracle automatisch alle Statistiken vor dem Überschreiben. Mit den Restore Prozeduren lassen sich dann diese gesicherten Statistiken für die folgenden Objekte wiederherstellen: • • • • • • Tabellen Gesamtes Schema Gesamte Datenbank Fixed Objects Data Dictionary System Statistiken Sollen beispielsweise die Statistiken der Tabelle SCOTT.EMP von gestern wiederhergestellt werden, so kann dies mit folgendem Befehl erfolgen: DBMS_STATS.RESTORE_TABLE_STATS ( 'SCOTT‘, 'EMP‘, systimestamp – 1 ) Die Abbildung 2 veranschaulicht dieses Szenario noch mal in Zusammenhang mit der Option FORCE. Weitere hilfreiche Funktionen im Zusammenhang mit historisierten Statistiken sind get_ stats_history_availability zur Rückgabe der ältesten verfügbaren Statistiken und get_stats_history_retention zur Ausgabe der Anzahl an Sicherungen. Über die Prozedur alter_stats_history_ retention(n) lässt sich die History Retention einstellen. n nimmt dabei einen der folgenden Werte ein: • • • • 0 – keine Historie 1 – unendlich, Statistiken werden nie gelöscht m – Anzahl Tage, 2 bis maximal 365000 NULL – Default Anzahl an Tagen Sammeln – nicht nur – aus Leidenschaft Bereits in der Version 9 war die Erhebung von Statistiken für die Schemata SYS und SYSTEM erlaubt. Für Oracle 10g ist diese Aufgabe jetzt zur Pflicht geworden. Die folgende Prozedur sammelt alle benötigten Informationen: DBMS_STATS.GATHER_DICTIONARY_STATS Völlig neu dagegen ist die Möglichkeit, Statistiken für die sogenannten Fixed Objects zu sammeln. Hierbei handelt es sich im Wesentlichen um Speicherstrukturen im Shared Pool, welche über v$ Views sichtbar sind. Bis zum Redaktionsschluss haben wir damit noch nicht ausreichend gearbeitet, um Ihnen zuverlässige Informationen zu liefern. Die Prozedur heißt: GATHER_FIXED_OBJECTS_STATS ORDIX News 2/2005 dbms_stats.gather... Statistiken heute Statistiken gestern Statistiken vorgestern Statistiken vorvorgestern restore_table_stats( ‘SCOTT‘, ‘C‘, sysdate -1, force=>true ); Abb. 2: Historisierung von Statistiken. Glossar ANALYZE DBMS_STATS Data Dictionary Fixed Objects Tabellen Monitoring STALE Optimizer SQL Befehl zum Sammeln, Löschen und Aktualisieren von Objektstatistiken. PL/SQL Paket zur Verwaltung von Objekt- und System-Statistiken. Systemtabellen und Views zur Verwaltung der Datenbank. v$ Views des Data Dictionarys. Verfahren in 9i zum Verfolgen von DML Befehlen auf Tabellen. Status von veralteten Statistiken. Internes Werkzeug zum Erstellen von Ausführungsplänen. Automatisierung Neben der Historie gibt es weitere automatisierte Schritte in 10g. Das Tabellen Monitoring ist standardmäßig aktiv. Die Steuerung geschieht über den Parameter statistic_level=typical. Ändern sich mehr als 10 Prozent der Zeilen einer Tabelle, setzt Oracle die Statistiken auf STALE. Unter Oracle 9 ließ sich diese Eigenschaft mit dem Befehl ALTER TABLE ... MONITORING aktivieren. Für Objekte ohne Statistiken und für Objekte mit Statistiken im Status STALE erhebt oder aktualisiert der Scheduler Job GATHER_ STATS_JOB die Statistiken. Dieser Vorgang findet automatisiert über den neuen Scheduler statt. Für die täglichen Aufgaben des DBA ist das daher sicherlich eine der wichtigsten Neuerungen. Liegen keine Statistiken vor oder sind die Statistiken im Status STALE, so führt die Datenbank häufiger als früher eine dynamische Statistikerhebung durch. Die Statistik wird vor der Ausführung für ein einzelnes Statement temporär erzeugt, aber nicht gespeichert. Gesteuert wird die dynamische Erhebung durch den Initialisierungsparameter optimizer_dynamic_sampling. Fazit Oracle unterstützt mit 10g offiziell nicht mehr den regelbasierten Optimizer – vorhanden ist er allerdings nach wie vor. Da der Befehl ANALYZE für zahlreiche Funktionen kein Äquivalent bietet, ist es nun an der Zeit, sich der komplexen Thematik der Statistikerhebung zu stellen. Und schließlich ist es besser, die eigenen Statistiken zu fälschen, als dem Zensus veralteter Regeln zu gehorchen. Martin Hoermann ([email protected]). 39 Unix/Linux/Open Source Eines der mächtigsten Open Source Content Management Systeme (Teil II): TYPO3: Content. Einfach. Vielfältig. Nachdem wir im ersten Teil TYPO3 umfangreich vorgestellt haben, werden wir in dieser Ausgabe eine exemplarische Installation von TYPO3 vornehmen und beschreiben. Dieser Artikel richtet sich an Webmaster und Marketingmitarbeiter, die Webinhalte dynamisch präsentieren möchten. Aller Anfang ist schwer? Wir setzen für unsere Testinstallation ein lauffähiges System (Windows oder Linux) inklusive eines Webservers mit PHP-Unterstützung (PHP 4.3.X) und einer MySQLDatenbank (möglichst eine Version größer 4.1.) voraus (LAMP / WAMP System). Zusätzlich wird eines der aktuellen TYPO3Pakete [1] benötigt. Die Pakete unterscheiden sich im Konfigurations- und Dokumentationsgrad. Derzeit stehen die folgenden Produkte zur Auswahl: Die Administrationsoberfläche erreicht man über die folgende URL „$HOME_DIR/TYPO3/ index.php“. Nach der Installation können Sie sich als der Benutzer „admin“ mit dem Passwort „password“ authentifizieren: Es ist wichtig, dass Ihr Browser Cookies unterstützt, da Sie sich sonst nicht einloggen können. • Dummy-Package • • • Geeignet für erfahrene User, die schnell ein neues Projekt aufsetzen wollen Quickstart Enthält die Applikation plus ein Tutorial und ist damit für das Erlernen von TYPO3 gut geeignet Testsite Package Für den erfahrenen User, der seine Kenntnisse vertiefen möchte TYPO3 Source Die reine Applikation; geeignet für Unix/Linux-Systeme Administration leicht gemacht Nach dem erfolgreichen Login stehen Ihnen als Administrator alle Möglichkeiten offen. Die Administrationsoberfläche ist nach Aufgabenbereichen logisch strukturiert (siehe Abbildung 1). Der folgende Artikel basiert auf dem Quickstart-Package, da es zum einen unabhängig von der Plattform einsetzbar ist und zum anderen sehr schnell sichtbare Ergebnisse garantiert. Der erste Bereich „Web“ ist im Wesentlichen für die Inhalte und die Struktur Ihrer Internetpräsenz zuständig. Der anschließende Bereich „File“ verwaltet Objekte, die für Ihre Internetpräsenz zur Verfügung stehen sollen. Dies können z. B. Bilder, Videos, PDF-Dokumente und/oder Flash-Animationen sein. Im Anschluss daran folgen die Bereiche „User“ und „Tools“. Setup Die Bereiche „User“ und „Tools“ Die Basisinstallation der Applikation ist recht einfach zu bewerkstelligen. Zunächst wird das Paket unterhalb des DocumentRoots des Webservers entpackt. Das Aufsetzen der Applikation erfolgt über eine browserbasierte Installationsroutine, die automatisch beim Aufruf des entsprechenden Webserver-Verzeichnisses gestartet wird. Im Wesentlichen dient die dreistufige Installationsroutine der Einrichtung der Datenbank und der Erzeugung von Beispieldaten in der MySQL-Datenbank. 40 Nach dem Ausführen der Installationsroutine ist Ihr Content Management System (CMS) einsatzbereit. Um zur Seitenansicht zu gelangen, rufen Sie in Ihrem Browser einfach die Seite „index.php“ im Installationsverzeichnis auf. In unserem Beispiel wäre dies http://localhost/quickstart-3.6.2/ => ab sofort $HOME_DIR. Sofern Sie sich für das QuickstartPackage entschieden haben, sehen Sie hier das Demoprojekt „FC Bigfeet“. Abb. 1: Zur Verwaltung des Systems stehen dem Administrator viele verschiedene Tools zur Verfügung. In Abhängigkeit von ihren Aufgaben sehen andere User nur Ausschnitte aus der Administrationsoberfläche. Der Userbereich dient der internen Kommunikation zwischen den Projektbeteiligten. So können beispielsweise neue Workflows (Redaktionsprozesse: Wer legt wann welchen Inhalt an und wer gibt ihn frei?) angelegt und Nachrichten an bestehende User versendet werden. Über den Bereich Tools können Backups verwaltet oder die Konfiguration des Systems angepasst werden. Wir werden uns im Folgenden vermehrt um den Bereich „Web“ kümmern, da wir ein neues ORDIX News 2/2005 Unix/Linux/Open Source CMS-Projekt anlegen wollen. Selbstverständlich können die Bereiche, je nach den vergebenen Userrechten, ein- oder ausgeblendet werden. Ein normaler Redakteur, der ausschließlich für Inhalte verantwortlich ist, sollte normalerweise nur für die Bereiche „Web“ und „File“ Zugriff erhalten. What you code is what you get Die Grundlage für ein neues CMS-Projekt sollte immer ein bestehendes HTML-Design sein, welches mit jedem x-beliebigen HTML-Editor oder Grafikprogramm erstellt werden kann. Innerhalb des HTML-Codes werden sogenannte „SubParts“ definiert. Dies sind besonders gekennzeichnete (### SUBPART ### ) Stellen, die TYPO3 durch Datenbankinhalte ersetzen oder besser gesagt mit Inhalt füllen soll (siehe Abbildung 2). Für unser Beispiel haben wir aus Gründen der Übersichtlichkeit ein relativ schlichtes HTMLTemplate mit lediglich zwei Bereichen (Content und Navigation) entwickelt. Zusätzlich kann man einen Arbeitsbereich innerhalb der Vorlage definieren. In unserem Fall heißt dieser Bereich ###DOCUMENT###. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Unbenannt</title> </head> <body> <h1>Template</h1> ###DOCUMENT### <table width="800px" align="center" style="border:1px solid black"> <tr valign="top"> <td width="20%" style="background-color:#DDDDDD"> <table valign="top"> ###NAVIGATION### </table> </td> <td> ###INHALT### </td> </tr> </table> ###DOCUMENT### </body> </html> Abb. 2: HTML-Code als Design-Grundlage. Von entscheidender Bedeutung sind die Subparts. Die durch die drei Rauten „###“ gekennzeichneten Stellen werden von TYPO3 durch dynamische Inhalte ersetzt. TYPO3 wird angewiesen, den HTML-Bereich außerhalb dieses Blockes zu ignorieren. Das führt dazu, dass der komplette HEAD-Bereich unseres HTML-Dokumentes ignoriert und von TYPO3 selbst aufgebaut wird. Dies ist sinnvoll, da so z. B. Suchmaschinen-relevante Bereiche wie META-Tags auch auf Basis der dynamischen Inhalte erstellt werden und über das CMS gepflegt werden können. Zusammenspiel Im nächsten Schritt muss dafür gesorgt werden, dass unser Template für unser neues CMS-Projekt verwendet werden kann. Dafür legen wir zunächst eine neue Seite über die Administrationsoberfläche an. Dies funktioniert problemlos über die sehr intuitiven Symbole (siehe Abbildung 3). Danach weisen wir dieser Seite unser neues Template zu. Dies erfolgt per Klick auf den Punkt „Web“ → „Template“. Abb. 3: Das Ergebnis unseres Beispiels im Browser: Die SubParts wurden erfolgreich übersetzt. Gut zu erkennen sind die unterschiedlichen Templates für die Menüebenen. Wie im Template definiert, wird der aktuelle Menüeintrag in diesem Beispiel fett dargestellt. Die Seiten der zweiten Ebene sind eingerückt präsentiert. Alle Seiten, die dieser „Startseite“ (siehe Abbildung 3 Seite, „Demoprojekt“) untergeordnet werden, bekommen ebenfalls dieses Template zugewiesen, sofern auf einer tieferen Ebene nichts anderes definiert wird. zu finden ist. Die Zuordnung von diesen inhaltlichen „Objekten“ zu den entsprechenden „SubParts“ übernimmt die eigens für diesen Zweck entwickelte Skriptsprache TypoScript. Um unser Template mit der Webseite zu verknüpfen, muss TYPO3 wissen, an welchen Stellen die entsprechenden Inhalte (Menüs, Inhalte) auszugeben sind und wo die Vorlage Das Code-Beispiel in Abbildung 4 sorgt dafür, dass unsere HTMLSeite als Designvorlage eingebunden wird und gewährleistet, dass die Inhalte und die Navigationselemente an den richtigen Stellen in unserem Beispiel ausgegeben werden. ORDIX News 2/2005 Kein Code, kein Content 41 Unix/Linux/Open Source 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 # Default PAGE object: page = PAGE page.typeNum = 0 page.10 = TEMPLATE page.10.template = FILE page.10.template.file = fileadmin/temp.html # unser HTML Template page.10.workOnSubpart = DOCUMENT # unser definierter Arbeitsbereich page.10.marks.INHALT = CONTENT # unser SubPart ###INHALT### page.10.marks.INHALT { table = tt_content select.orderBy = sorting select.where = colPos=0 } page.10.marks.NAVIGATION= HMENU # unser SubPart ###NAVIGATION### page.10.marks.NAVIGATION.1 = TMENU page.10.marks.NAVIGATION.1.NO { allWrap = <tr><td>::&nbsp;|</td></tr> } page.10.marks.NAVIGATION.1.ACT = 1 page.10.marks.NAVIGATION.1.ACT{ allWrap = <tr><td>&nbsp;<b>::&nbsp;|</b> </td></tr> } page.10.marks.NAVIGATION.2 = TMENU page.10.marks.NAVIGATION.2.NO { allWrap = <tr><td>::&nbsp;::&nbsp;|</td></tr> } page.10.marks.NAVIGATION.2.ACT = 1 page.10.marks.NAVIGATION.2.ACT{ allWrap = <tr><td>&nbsp;<b>::&nbsp;::&nbsp;| </b></td></tr> } Abb. 4: Über TypoScript können beliebig flexible Templates realisiert werden. <!-- HAUPTMENÜ --> <table class="mainmenue_table" valign="top"> <tr> <td>&nbsp;::&nbsp; <a href="index.php?id=34" nfocus="blurLink(this);"> Startseite</a>&nbsp;</td> </tr> <tr> <td>&nbsp;::&nbsp; <a href="index.php?id=114" onfocus="blurLink(this);"> ORDIX AG</a>&nbsp;</td> </tr> <tr> <td class="level2">&nbsp;::&nbsp; <a href="index.php?id=115" target="_ordix" onfocus="blurLink(this);"> ORDIX im Web</a>&nbsp;</td> </tr> ... ... ... </table> <!-- HAUPTMENÜ --> Abb. 5: TYPO3 erzeugt die Menüs dynamisch. Der SubPart ###NAVIGATION### wurde von TYPO3 durch ein hierarchisches Menü ersetzt. 42 Zunächst wird festgelegt, wo sich unsere HTMLDatei befindet und welcher Teil aus dieser Datei interpretiert werden soll (Zeile 1 - 9). Anschließend werden unsere SubParts „Inhalt“ und „Navigation“ mit Content versorgt. Dazu wird diesen Platzhaltern ein internes Objekt zugewiesen. Der SubPart „Inhalt“ bekommt in diesem Fall das Objekt „Content“ und der SubPart „Navigation“ das Objekt „HMENU“ (hierarchisches Menü) zugewiesen. Die Angaben in den geschweiften Klammern dienen lediglich der genaueren Spezifikation und bestimmen das Layout der Elemente. Bitte beachten Sie, dass es für den SubPart „Navigation“ zwei Einträge gibt: • page.10.marks.NAVIGATION.1.NO • page.10.marks.NAVIGATION.1.ACT „NO“ regelt das Design eines Menüeintrages, der derzeit nicht ausgewählt wurde (NO = not active), während im Eintrag „ACT“ das Aussehen des gerade ausgewählten Menüeintrages (ACT = active) spezifiziert werden kann. Der numerische Wert vor diesen Einträgen beschreibt die Ebene, die beschrieben werden soll. Die Zeilen 19 - 29 sind somit zuständig für alle Seiten der ersten Ebene, die Einträge in den Zeilen 31 - 39 formatieren alle Seiten der zweiten Ebene. Besonderes Augenmerk sollte auf die Eigenschaft „allWrap“ gelegt werden. Hier wird festgelegt, wie die einzelnen Menüpunkte angezeigt werden sollen. Das Zeichen „|“ ist hierbei der Platzhalter für den jeweiligen Seitentitel, der als Menüpunkt ausgegeben wird. In unserem Beispiel werden die einzelnen Menüpunkte als Tabellen-Reihen (<tr>...</tr>) ausgeben. Das macht Sinn, da der SubPart ###NAVIGATION### von entsprechenden <table>...</table>-Tags umschlossen wird, so dass im Endeffekt dass Menü in einer sinnvollen HTML-Formatierung (Tabelle) ausgegeben wird (siehe Abbildung 5). Fortsetzung folgt ... TypoScript kennt natürlich noch weitaus mehr Objekte als „CONTENT“ und „HMENU“. Eine umfangreiche Beschreibung der Möglichkeiten von TypoScript würde an dieser Stelle den Rahmen sprengen. Nur so viel: TypoScript ist beispielsweise in der Lage, grafikbasierte Layermenüs zu erstellen, die wahlweise vertikal oder horizontal oder auch in beliebigen Kombinationen dargestellt werden können. ORDIX News 2/2005 Unix/Linux/Open Source Darüber hinaus gibt es weitere Objekte, die in eine Seite integriert werden können, so z. B. Pfadangaben, Suchmaschinenfelder, eine Sprachauswahl, das aktuelle Datum, Bilder, XML-Newsfeeds (RSS-XML) oder was das Herz sonst begehrt. Zusätzlich lässt sich TYPO3 um sehr viele Extensions erweitern, die von fleißigen Entwicklern kostenfrei zur Verfügung gestellt werden. Diese Extensions [2] stellen meist weitere Objekte zur Verfügung, die dann ebenfalls genutzt werden können. Content wirklich einfach? Werfen wir abschließend einen Blick auf das Frontend. Das Resultat lässt sich sehen (siehe Abbildung 3). Ordnungsgemäß wurden die SubParts von TYPO3 durch das Menü (siehe Abbildung 5) und die Inhalte ersetzt. Auch die Struktur, also die Hierarchie der Seiten des Menüs wurde anstandslos übernommen (siehe Abbildung 6, roter Kasten). Abb. 6: Intuitive Benutzeroberfläche: Das Anlegen von neuen Seiten für ein CMS-Projekt, hier Demoprojekt, funktioniert relativ einfach. Intuitive Symbole weisen den Weg. Die Symbole von links nach rechts: 1. Änderungen rückgängig machen. 2. Neue Seiteninhalte erstellen. 3. Seite verschieben (das Menü verändert sich entsprechend). 4. Neue Seite anlegen. 5. Meta-Informationen der Seite verändern. 6. Hilfe. Sichtbare Erfolge lassen sich somit sehr schnell erzielen. Allerdings soll diese Tatsache nicht darüber hinwegtäuschen, dass es sich bei TYPO3 um eine sehr komplexe Applikation handelt. Allein die Dokumentation von TypoScript [3] umfasst annähernd hundert Seiten. User mit besonderen Anforderungen oder sehr speziellen Designwünschen werden dementsprechend tief in die unterschiedlichen Dokumentationen einsteigen müssen. „Ohne Moos nix los?“ Der Erfolg gibt TYPO3 recht. Mit über 125.000 Installationen ist es eines der erfolgreichsten CMS derzeit. Ohne größere Probleme – und vor allem ohne Lizenzkosten – lässt sich das Produkt auf nahezu jedem Webserver installieren. Erste sichtbare Resultate lassen sich schnell und unkompliziert erzeugen. Allerdings steigt der Wissens- und Administrationsbedarf mit zunehmenden Anforderungen recht schnell an. In der Praxis ist dieses Tool wohl am besten in größeren Mittelstandsunternehmen aufgehoben, die ihre Webpräsenz intensiv zur Kunden- oder internen Kommunikation nutzen. Der Einsatz lohnt sich spätestens dann, wenn an der Erstellung und Pflege der Inhalte unterschiedliche Personen beteiligt sind, die keine oder wenige Kenntnisse im Bereich der Webtechnologie haben. Glossar Templates TYPO3 Templates führen eine HTML-Designvorlage über eine eigene Sprache „TypoScript“ mit den inhaltlichen Seiten des Content Management Systems (CMS) zusammen. SubParts SubParts umschließen Abschnitte einer HTML-Designvorlage, die von TYPO3 durch dynamischen Inhalt ersetzt werden. Dies geschieht mit Hilfe von TypoScript. TypoScript TypoScript führt die HTML-Vorlage mit dem Inhalt des CMS zusammen und kann darüber hinaus auf das Erscheinungsbild Einfluss nehmen. LAMP/WAMP Diese Abkürzung steht für Linux/Windows mit Apache-Webserver, MySQL-Datenbank und PHP als Programmiersprache. Links [1] Typo3-Pakete: http://typo3.org/download/packages/ [2] Typo3 Extensions: http://typo3.org/extensions/ [3] Dokumentation von TypoScript: http://typo3.org/documentation/document-library/doc_core_tsbyex/ Unser Leser Herr Wilfried Krug wies auf die folgenden hilfreichen TYPO3 Informationen hin. Vielen Dank! http://typo3.org/documentation/videos/xvid-format/ (als Video) news://news.netfielders.de (News Server) Matthias Jung ([email protected]). ORDIX News 2/2005 43 Datenbanken – Titelthema Data Guard Backup und Recovery mit Oracle 10g (Teil III): Näher am Original: Data Guard In der letzten Ausgabe der ORDIX News beschäftigten wir uns mit den neuen Flashback Funktionalitäten von Oracle 10g. In dieser Ausgabe wollen wir uns die Neuerungen bei Data Guard anschauen und das Zusammenspiel mit Flashback betrachten. Dieser Artikel richtet sich an Oracle Datenbank Administratoren, die Oracle Data Guard einsetzen möchten. Oracle Data Guard ist eine Möglichkeit, Hochverfügbarkeit bei Oracle Datenbanken zu realisieren. Der ursprüngliche Ansatz, die sogenannte Standby Datenbank, dient dazu, logische oder physikalische Fehlersituationen abzufangen. Allerdings lassen sich mit einer Oracle Data Guard Konfiguration noch andere Dinge tun, als auf den Ausfall zu warten. Je nachdem, welche weiteren Anforderungen realisiert werden sollen, bietet sich eine der beiden Data Guard Varianten, Physical oder Logical, an. Eine physikalische Standby Datenbank ist eine blockgenaue Kopie der Produktions-Datenbank und befindet sich normalerweise ständig im Recovery Modus. Bei einer logischen Standby Datenbank werden die Änderungen nicht recovert, sondern es werden über LogMiner-Techniken die SQL Statements aus den archivierten Redo Log Dateien extrahiert und als SQL-Anweisung in die Datenbank eingespielt. Damit wird ein weiterer Unterschied zwischen den beiden Formen des Data Guard deutlich: eine physikalische Standby Datenbank befindet sich üblicherweise im Zustand MOUNT, während eine logische Standby Datenbank sich ständig im Zustand READ_WRITE (OPEN) befindet. Grundsätzlich werden die beiden Typen unter folgenden Rahmenbedingungen eingesetzt: Data Files (DF) Managed Recover Process (MRP) (Oracle 10g) Archive Process (ARCn) Abb. 1: Real Time Apply. 44 • Hochverfügbarkeitsansatz • Abfangen von logischen Fehlern durch bewusstes zeitversetztes Recovery • Backup entzerrt vom Primärsystem, somit eine Entlastung • Reporting – die Datenbank kann lesend geöffnet werden, dann ist allerdings das Recovery unterbrochen Logische Standby Datenbank: • Hochverfügbarkeitslösung • Reporting – die Datenbank ist ständig READ WRITE geöffnet Real Time Apply In Oracle 9.x konnten die Redolog Informationen erst in die Standby-Datenbank eingefahren werden, wenn sie in Form archivierter Redo Log Dateien vorlagen, also ein Logswitch stattgefunden hat. Somit hing die StandbyDatenbank mindestens das CURRENT LOG hinterher. Mit Oracle 10g ist es nun möglich, die Redo Informationen sofort nach ihrem Erhalt auf dem Standby System zu recovern beziehungsweise als Transaktion auszuführen. Diese neue Technik wird als REAL TIME APPLY bezeichnet. Die Vorteile dieser neuen Technik bestehen in der höheren Aktualität der Daten und in kürzeren Ausfallzeiten während einer Switchover oder Failover Operation. Redodaten Strom Standby Log Files (SLF) Physikalische Standby Datenbank: Managed Recover Process (MRP) (Oracle 9i) Archivierte Log Files (A) Den Unterschied zwischen den beiden Techniken verdeutlicht Abbildung 1. REAL TIME APPLY bietet folgende Vorteile: Physical Data Guard: Bei einem Failover oder Switchover geht weniger Zeit verloren, da es weniger zu recovern gibt. Logical Data Guard: Beim Reporting stehen aktuellere Daten zur Verfügung. ORDIX News 2/2005 Datenbanken Flashback Die bereits in der ORDIX News 1/2005 vorgestellte Flashback Database Funktionalität ist vollständig in das Oracle Data Guard Umfeld integriert. Bisher erforderte die Anforderung, logische Fehler abzufangen und gleichzeitig im Failover-Fall sofort verfügbar zu sein, den Betrieb von mindestens zwei physikalischen Standby Datenbanken. Eine Datenbank die sofort verfügbar sein soll, darf keinen großen Delay zur Produktions-Datenbank haben. Genau diesen Delay braucht man jedoch, um logische Fehler abfangen zu können. Dies ist mit Oracle 10g und Flashback Database nicht mehr zwingend erforderlich. Die Standby Datenbank lässt sich mit nur wenig, oder bei Nutzung von Real Time Apply im optimalen Fall ohne Zeitversatz (Delay) hinter der Produktionsdatenbank betreiben. Damit ist die Anforderung der sofortigen Verfügbarkeit im Fehlerfall erfüllt. Soll die Produktions-Datenbank aufgrund eines logischen Fehlers zurückgesetzt werden, so ist dies ebenfalls möglich. Dabei wird die Flashback Funktionalität genutzt, um das erneute Anlegen einer Standby Datenbank nach einem OPEN RESETLOGS der ProduktionsDatenbank zu verhindern. Ein Öffnen der Datenbank mit der OPEN RESTLOGS Option bedeutet, dass der Zähler für die Sequenznummer der Redo Log Dateien auf 1 zurückgesetzt wird. Ein Überspringen dieser Option war mit bisherigen Standardmitteln beim Recovery nicht möglich. Konzept bei OPEN RESETLOGS Damit Flashback genutzt werden kann, muss vor dem Aufbau der Standby Datenbank auf dem Produktions-System bereits Flashback initialisiert sein. Die Vorteile der Nutzung von Flashback beim OPEN RESETLOGS der Produktions-Datenbank verdeutlicht Abbildung 2. Nach einem OPEN RESETLOGS der Produktions-Datenbank wird die Standby Datenbank mittels Flashback Technik auf einen Stand vor dem OPEN RESETLOGS zurückgesetzt. Durchführung Das Nachfahren der Redo Log Dateien wird während des Recoverys der Produktionsdatenbank kurz gestoppt. ORDIX News 2/2005 Nach dem Zurücksetzen des Produktionssystems wird mit dem Kommando select resetlogs_change# -2 from v$database; die SCN ermittelt, die kleiner als die SCN des OPEN RESETLOGS ist. Die Standby Datenbank muss jetzt auf jeden Fall auch auf eine SCN gebracht werden, die kleiner als die SCN des Produktionssystems ist. Die aktuelle SCN erhalten wir über das Kommando: select current_scn from v$database; Ist die aktuelle SCN kleiner als die OPEN RESETLOGS SCN, so lässt sich jetzt mit dem Kommando recover managed standby database ...; das Recovery der Standby Datenbank wieder anstoßen. Sollte jedoch die aktuelle SCN der Standby Datenbank größer sein als die SCN beim OPEN RESETLOGS, so können wir die Standby Datenbank mit dem Kommando flashback standby database to scn <resetlogs_SCN - 2>; entsprechend zurücksetzen. Danach kann wieder mit dem normalen Recovery begonnen werden. Dieses Procedere lässt sich im Falle eines Misserfolgs solange wiederholen, bis der richtige Aufsatzpunkt, sprich die richtige SCN, gefunden wurde. Mit diesem Vefahren lässt sich eine Standby Datenbank, die ohne Zeitversatz (delay=0) betrieben wird, sehr schnell wieder in den Recovery Mode bringen. Sie muss dazu nicht aufwändig neu aufgebaut werden, sondern kann mit Flashback Database einfach zurückgesetzt werden. Dies bedeutet, dass der Datenbank Administrator viel kostbare Arbeitszeit und somit seinem Arbeit- oder Auftraggeber Geld spart. Konzept bei einem Failover Ein Failover ist die ungeplante Übernahme der Produktion durch die Standby Datenbank. In den allermeisten Fällen ist ein Failover mit einem Datenverlust verbunden, da nicht alle Redo Daten auf ProduktionsDatenbank Arch. Redo Log Schritt 1: RESETLOGS nach einem Point-in-Time Recovery ProduktionsDatenbank Standby Datenbank Schritt 2: Flashback der Standby Datenbank Arch. Redo Log Standby Datenbank Abb. 2: Der Einsatz von Flashback beim OPEN RESETLOGS der Produktions-Datenbank. 45 Datenbanken das Standby System übertragen werden konnten. Da es sich bei einem Failover um ein unvollständiges Recovery handelt, bedeutet es immer ein OPEN RESETLOGS der Standby Datenbank. Mit Oracle 9i galt, dass nach einem Failover die alte ProduktionsDatenbank als Standby Datenbank neu aufgebaut werden muss. Es fand ein OPEN RESETLOGS auf der Standby Seite statt. Damit war das Nachfahren der neu anfallenden archivierten Redo Log Dateien auf der neuen Standby Seite nur mit einem Neuaufbau möglich. Unter Nutzung von Flashback lässt sich die alte Produktions-Datenbank auf einen Zeitpunkt vor dem Failover zurücksetzen und dann per recover managed standby database wieder an den aktuellen Stand heranführen. Das Konzept zeigt die Abbildung 3. Bisher war ein Failover zwingend mit dem Neuaufbau der Standby Datenbank verbunden, da die neue Produktions-Datenbank mit OPEN RESETLOGS geöffnet wird. Der Neuaufbau der Standby Datenbank ist aber deutlich zeitaufwendiger, als das neue Standby System mit einem Flashback Kommando an die richtige Stelle zurückzusetzen und danach das Recovery zu beginnen. Initialisierungsparameter Bisher galten die Initialisierungsparameter bezüglich der Archivierung unabhängig von der jeweiligen Datenbank-Rolle. Die Datenbank-Rolle kann sein: Damit ist es möglich, eine init.ora Datei für alle Rollen einer Datenbank zu erstellen. Der Inhalt bleibt immer gleich, egal ob die Datenbank Produktions- oder Standby Datenbank ist. Neuerungen spezifisch für physical Data Guard Für die physikalische Standby Datenbank hat sich das Verhalten des startup Kommandos beziehungsweise des Kommandos alter database [ mount | open ] geändert. In den Oracle Versionen 8i und 9i erfolgte das Starten der Datenbank folgendermaßen: startup nomount alter database mount standby database; alter database open read only; In der Version 10g lassen sich folgende Kommandos absetzen: • Primary: Das ist die Produktions-Datenbank • Physical Standby: Die physikalische Standby Datenbank • Logical Standby: Die logische Standby Datenbank startup mount alter database open; Mit Oracle 10g lassen sich die Archivierungsparameter derart definieren, dass sie je nach aktueller Datenbank-Rolle (Primary oder Standby) wirken. Ein kleines Beispiel verdeutlicht das: startup LOG_ARCHIVE_DEST_3 = "service=stdby valid for = (online_logfile, primary role)" Redo Strom vor dem Failover ProduktionsDatenbank Arch. Redo Log Schritt 2: Flashback der neuen Standby Datenbank Neue ProduktionsDatenbank Standby Datenbank Schritt 1: Failover Arch. Redo Log Neue Standby Datenbank Redo Strom nach dem Failover Abb. 3: Der Einsatz von Flashback beim Failover. 46 Der Archive Prozess soll die anfallenden Redo Log Dateien an die Standby Datenbank stdby kopieren. Und zwar nur dann, wenn er dabei auf normale Online Redo Log Dateien als Quelle zurückgreifen kann und die „Quell“-Datenbank sich in der Rolle PRIMARY (also Produktion) befindet. oder Dabei erkennt Oracle beim Mounten der Datenbank, dass es sich bei der Control Datei um eine Standby Control Datei handelt und verhält sich entsprechend. Ebenso verhält es sich beim Öffnen der Datenbank. Die Information STANDBY CONTROLFILE wird ausgewertet und die Datenbank automatisch READ ONLY geöffnet. Neuerungen Logical Data Guard Mit Oracle 9i war es möglich, mit dem LGWR Dateien auf die Archive Log Destination einer logischen Standby Datenbank zu schreiben, aus denen anschließend per LogMinerTechnik die Transaktionen ausgelesen werden. Dabei schreibt die logische Standby Datenbank eigene online und archivierte Redo Log Dateien. Mit Oracle 10g ist es jetzt auch bei der logischen Standby Datenbank möglich, mit Standby Redo Log Dateien zu arbeiten. Dies bedeutet, dass jetzt auch eine logische Standby Da- ORDIX News 2/2005 Datenbanken tenbank Bestandteil einer DataGuard Konfiguration sein kann, die sich im Modus MAXIMUM PROTECTION befindet. Dort gelten Transaktionen erst dann als beendet, wenn der LGWR in alle Redo Log Dateien geschrieben hat. Mit Oracle 10g werden mit der logischen Standby Datenbank weitere, bisher nicht unterstützte Datentypen und Objekte, unterstützt. Tabellen, die die Datentypen LONG, LONG RAW oder NCLOB enthalten, können nun auch in diesem Konzept bearbeitet werden: Index Organized Tables (IOT) können jetzt auch übertragen werden, es sei denn, die IOT hat Überlaufsegmente oder LOB Spalten. Was weiterhin nicht unterstützt wird, sind Userdefinierte Datentypen. Dazu gehören leider auch funktionsbasierte Indizes. Fazit Beim Logical Data Guard ist eine erfreuliche Tendenz zur Komplettierung zu beobachten. Die Anzahl der nicht unterstützten Datentypen ist stetig sinkend. Eine fundamentale Verbesserung ist jedoch die Integration von Flash- Glossar SCN LONG LONG RAW NCLOB IOT System Change Number: Eine Oracle interne Nummer, die für jeden internen Befehl (nicht Transaktion!) vergeben wird. Datentyp zum Abspeichern langer Felder mit alphanumerischem Inhalt. Die Speicherung der Daten findet Inline, also innerhalb der Tabellenstruktur, statt; maximal 2 GB Größe. Datentyp zum Abspeichern von binären Informationen; maximal 2 GB Größe. Datentyp zum Speichern langer alphanumerischer Felder mit dem National Characterset der Datenbank. Bis 4000 Byte wird inline gespeichert, bei größeren Datenmengen außerhalb der Tabellenstruktur in einem eigenen Segment. Index Organized Table: Die Daten werden direkt als Index abgespeichert. back Database in das Data Guard Konzept. Dort lässt sich im Falle eines Failovers sehr viel Zeit sparen, was für den Kunden letztlich weniger Kosten bedeutet. In der kommenden ORDIX News werden wir uns mit den Neuerungen beim Oracle Recovery Manager beschäftigen. Andreas Kother ([email protected]). Einladung zum 3. ORDIX Fachtreff in 2005 VMware – Serverkonsolidierung und Ressourcenoptimierung leichter gemacht Sie möchten Ihre Hardwarekosten reduzieren und gleichzeitig die Verfügbarkeit Ihrer Anwendung erhöhen? Sie planen eine effiziente Konsolidierung Ihrer Server? Dann laden wir Sie herzlich zu unserem VMware Fachtreff im September 2005 ein. Eine genaue Agenda, Termin und Ort finden Sie ab Anfang Juli auf der ORDIX Webseite. In Kooperation mit unserem Partner VMware (siehe Seite 21) zeigt ORDIX Ihnen in diesem Fachtreff, • wann der Einsatz von VMware sinnvoll ist. • wie Sie Ihre Server mit VMware sehr effizient konsolidieren können. • wie Sie Test- oder Schulungsumgebungen flexibel aufbauen können. Die Optimierung des Ressourcen-Managements und das Desaster-Recovery stehen zusätzlich im Blickpunkt dieser Veranstaltung. Wozu dient VMware? Die VMware Software erlaubt es, unterschiedliche, physikalische (Intel/AMD basierte) Rech- ORDIX News 2/2005 ner mit unterschiedlichen Betriebssystemen (Linux, Windows, NetWare) auf einem Server zu betreiben. Dort werden sie in eigenständigen virtuellen Maschinen betrieben. Dieses Konzept erlaubt eine weitreichende Hardware-Unabhängigkeit und ermöglicht mit Hilfe der Virtual Infrastructure Management Software und dem Einsatz von mindestens zwei VMware-Servern einfache(re) Load-Balancing- oder Hochverfügbarkeitsszenarien. Physikalische Ressourcen, wie z. B. CPU, Speicher und Netzwerk, können einzelnen virtuellen Maschinen gezielt und mit einer bestimmten Bandbreite zugeteilt werden. Wie von unseren vorangegangenen Fachtreffs gewohnt, erwarten Sie kompetente und praxisbezogene Vorträge. Informationen finden Sie ab Juli unter: http://www.ordix.de/fachtreff 47