IBM 64-bit Runtime Environment for Windows AMD64 architecture, Java 2 Technology Edition, Version 1.4.2

Runtime Environment Benutzerhandbuch


Copyrightvermerk

Anmerkung: Vor Verwendung dieser Informationen und des dazugehörigen Produkts sollten Sie die allgemeinen Informationen im Abschnitt Bemerkungen lesen.

Diese Ausgabe des Benutzerhandbuchs bezieht sich auf IBM 64-bit Runtime Environment for Windows AMD64 architecture, Java 2 Technology Edition, Version 1.4.2 und auf alle nachfolgenden Releases und Änderungen bis zur Herausgabe neuer Dateiversionen.

(c) Copyright Sun Microsystems, Inc. 1997, 2003, 901 San Antonio Rd., Palo Alto, CA 94303 USA. Alle Rechte vorbehalten.

(c) Copyright International Business Machines Corporation, 1999, 2004. Alle Rechte vorbehalten.

(c) Copyright IBM Deutschland GmbH 1999, 2004. Alle Rechte vorbehalten.

Vorwort

IBM(R) 64-bit Runtime Environment for Windows(R) AMD64 architecture, Java(TM) 2 Technology Edition, Version 1.4.2 umfasst die Java Virtual Machine (JVM), die wichtigsten Java-Klassen von Sun Microsystems und Unterstützungsdateien. Runtime Environment enthält nicht alle Klassen des SDK-Pakets.

Das Benutzerhandbuch stellt allgemeine Informationen zu Runtime Environment und spezielle Informationen zu allen Unterschieden zwischen der IBM Implementierung und der Sun Microsystems-Implementierung von Runtime Environment zur Verfügung. Lesen Sie dieses Benutzerhandbuch zusammen mit der ausführlicheren Dokumentation auf der folgenden Website von Sun Microsystems: http://java.sun.com.

Runtime Environment wird unter Microsoft(R) Windows XP 64-Bit-Edition und Windows Server 2003 64-Bit-Edition unterstützt.

Das Handbuch IBM JVM Diagnostics Guide enthält weitere Informationen zu IBM JVM.

Beachten Sie, dass es sich bei Runtime Environment for Windows um eine Untergruppe von SDK handelt, mit der Sie nur Java-Anwendungen ausführen können. Wenn Sie SDK installiert haben, ist auch Runtime Environment enthalten.

Die Begriffe "Runtime Environment" und "Java Virtual Machine" sind in diesem Handbuch gleichbedeutend.

Inhaltsverzeichnis

Copyrightvermerk
Vorwort
Verwenden von Runtime Environment
Abrufen der IBM Build- und Versionsnummer
Starten einer Java-Anwendung
Befehle im Überblick
Optionen
Globalisierung des Befehls 'java'
Arbeiten mit Klassenpfaden
Automatisches Ausführen einer Java-Datei
Angeben der Garbage-Collection-Richtlinie
Der JIT-Compiler (Just-in-Time)
Implementieren des Steuerroutinenpools für Verbindungen für RMI
Signalverarbeitung durch die JVM
Von der JVM verwendete Signale
Verbinden eines nativen Codetreibers mit der Signalverkettungsbibliothek
Arbeiten mit einem Editor für Eingabemethoden
Verwenden des Befehls 'more' mit der Version in traditionellem Chinesisch
Kommentare zu diesem Handbuch
Bemerkungen
Marken

Verwenden von Runtime Environment

Abrufen der IBM Build- und Versionsnummer

Geben Sie den folgenden Befehl an einer Eingabeaufforderung ein, um die IBM Buildnummer und die Versionsnummer abzurufen:

java -version

Starten einer Java-Anwendung

Mit dem Tool java wird eine Java-Anwendung gestartet. Dabei ist der Name einer ursprünglichen Java-Klasse als Parameter erforderlich. Wenn Sie keinen Java-Klassennamen angeben, wird ein Benutzungshinweis ausgegeben.

Die JVM sucht die ursprüngliche Klasse und andere verwendete Klassen in den drei folgenden Positionsgruppen: im Klassenpfad des Bootprogramms, in den installierten Erweiterungen und im Benutzerklassenpfad. Argumente, die auf den Klassennamen oder den Namen der JAR-Datei folgen, werden an die Funktion "main" weitergegeben.

Der Befehl javaw ist identisch mit dem Befehl java, außer dass beim Verwenden des Befehls javaw kein zugeordnetes Konsolfenster angezeigt wird. Verwenden Sie den Befehl javaw, wenn kein Fenster mit einer Eingabeaufforderung angezeigt werden soll. Der Startbefehl javaw zeigt im Falle eines fehlgeschlagenen Starts ein Dialogfenster mit Fehlerinformationen an.

Befehle im Überblick

Die Befehle java und javaw haben folgende Syntax:

java [ Optionen ] Klasse [ Argumente ... ]
java [ Optionen ] -jar Datei.jar [ Argumente ... ]
javaw [ Optionen ] Klasse [ Argumente ... ]
javaw [ Optionen ] -jar Datei.jar [ Argumente ... ]

Elemente in eckigen Klammern sind optional.

Optionen
Befehlszeilenoptionen.
Klasse
Der Name der Klasse, die aufgerufen werden soll.
Datei.jar
Der Name der Datei mit der Erweiterung 'jar', die aufgerufen werden soll. Sie wird nur mit der Option -jar verwendet.
Argumente
Die Argumente, die an die Funktion main weitergeleitet werden.

Wenn die Option -jar angegeben wurde, enthält die benannte JAR-Datei Klassen- und Ressourcendateien für die Anwendung, wobei die Systemstartklasse über den Manifestheader für die Hauptklasse angegeben wird.

Optionen

Das Startprogramm verfügt über mehrere Standardoptionen, die in der aktuellen Laufzeitumgebung und auch in zukünftigen Releases unterstützt werden. Daneben gibt es mehrere vom Standard abweichende Optionen.

Standardoptionen

Vom Standard abweichende Optionen

Die unten aufgelisteten Optionen -X weichen vom Standard ab und können jederzeit ohne vorherige Ankündigung geändert werden.

Globalisierung des Befehls 'java'

Mit dem Befehl java und mit anderen Java-Startbefehlen (wie beispielsweise javaw) kann ein Klassenname mit beliebigen Unicode-Zeichen angegeben werden, die im Zeichensatz der aktuellen Ländereinstellung enthalten sind.

Sie können außerdem beliebige Unicode-Zeichen im Klassennamen und in den Argumenten angeben, indem Sie Java-Escapezeichen verwenden. Für diesen Vorgang müssen Sie die Option -Xargencoding angeben. Verwenden Sie zum Angeben eines Unicode-Zeichens Escapezeichenfolgen im Format \u####. Dabei ist # eine Hexadezimalziffer (0-9, A-F).

Wenn Sie alternativ angeben möchten, dass der Klassenname und die Befehlsargumente im UTF8- oder ISO8859_1-Code verschlüsselt sind, verwenden Sie für UTF8 -Xargencoding:utf8 und für ISO8859_1 -Xargencoding:latin.

Die Befehle java und javaw geben übersetzte Ausgabenachrichten aus. Diese Nachrichten sind abhängig von der Ländereinstellung unterschiedlich, unter der Java ausgeführt wird. Die detaillierte Fehlerbeschreibung und andere von java zurückgegebene Fehlerinformationen werden in Englisch angezeigt.

Arbeiten mit Klassenpfaden

Sie können einen Klassennamen als vollständigen Dateinamen mit einem vollständigen Pfad und der Erweiterung .class angeben. In früheren Versionen konnten Sie die Klasse nur in Relation zu CLASSPATH angeben. Die Erweiterung .class war nicht zulässig. Durch Angabe des vollständigen Dateinamens können Sie eine Java-Anwendung über den Desktop oder über ein Dateistartprogramm starten. Wenn Sie eine Datei mit der Erweiterung .class mit Pfad und Erweiterung angeben, wird der angegebene Pfad in CLASSPATH eingefügt. Beispielsweise entspricht der Befehl java c:\myapp\thisapp.class der Angabe java -classpath c:\myapp thisapp.

Automatisches Ausführen einer Java-Datei

Klicken Sie zum Definieren einer Java-Klasse oder JAR-Datei, damit diese automatisch über die Datei ausgeführt wird, im Windows-Explorer Extras->Ordneroptionen->Dateitypen an. Sie können auch Folgendes an einer Eingabeaufforderung eingeben:

assoc .class=javaclass 
ftype javaclass=C:\Program Files\IBM\Java142\jre\bin\java.exe %l %*
Anmerkungen:
  1. Bei %l handelt es sich um den Buchstaben l und nicht die Zahl 1.
  2. Wenn Java in einem anderen Verzeichnis als C:\Program Files\IBM\Java142\ installiert wurde, müssen Sie das entsprechende Verzeichnis angeben.

Angeben der Garbage-Collection-Richtlinie

Die JVM-Laufzeitoption -Xgcpolicy gibt die Garbage-Collection-Richtlinie an.

-Xgcpolicy nimmt die Werte optthruput (Standardwert), optavgpause oder gencon an. Die Option steuert das Verhalten der Garbage-Collection, so dass zwischen dem Durchsatz der Anwendung und des Gesamtsystems und den durch die Garbage-Collection verursachten Pausezeiten abgewogen werden kann.

Das Format der Option und der zugehörigen Werte lautet wie folgt:

-Xgcpolicy:optthruput

-Xgcpolicy:optavgpause

-Xgcpolicy:gencon

Pausezeit

Wenn eine Anwendung wegen des verfügbaren Freispeichers nicht sofort ein Objekt erstellen kann, ist die Garbage-Collection für die Erkennung von Objekten ohne Verweis (Garbage) zuständig sowie für deren Löschung und für die Wiederherstellung eines Freispeicherstatus, mit dem sofortige und nachfolgende Zuordnungsanforderungen schnell beantwortet werden können. Solche Garbage-Collection-Zyklen ergeben gelegentliche unerwartete Pausen bei der Ausführung des Anwendungscodes. Wenn sich die Größe und Komplexität der Anwendungen erhöht und wenn die Freispeicher entsprechend umfangreicher werden, tendiert diese Pausezeit der Garbage-Collection dazu, größer zu werden. Der Standardwert optthruput für die Garbage-Collection bietet Anwendungen einen sehr hohen Durchsatz, verursacht jedoch gelegentliche Pausen. Diese Pausen können wenige Millisekunden bis zu mehreren Sekunden dauern, je nachdem, wie groß der Freispeicher und das Garbagevolumen ist.

Verringerung der Pausezeit

Die JVM verwendet zur Verringerung der Pausezeit zwei Verfahren:

Die Befehlszeilenoption -Xgcpolicy:optavgpause fordert die Verwendung der gleichzeitig ablaufenden Garbage-Collection an, um die Pausezeit der Garbage-Collection (GC) erheblich zu verringern. Die gleichzeitig ablaufende GC verringert die Pausezeit, indem die Ausführung einiger GC-Aktivitäten zur gleichen Zeit wie die normale Programmausführung erfolgt. Dabei wird die durch die Erfassung des Freispeichers verursachte Unterbrechung minimiert. Die Option -Xgcpolicy:optavgpause begrenzt außerdem den Effekt eines höheren Freispeicherumfangs während der Garbage-Collection-Pause. Die Option -Xgcpolicy:optavgpause ist für Konfigurationen mit großen Freispeichern am nützlichsten. Die Verringerung der Pausezeit hat möglicherweise einen reduzierten Anwendungsdurchsatz zur Folge.

Während der gleichzeitig ablaufenden Garbage-Collection wird viel Zeit für die Identifizierung von Objekten mit einer relativ langen Lebensdauer verwendet, die nicht erfasst werden können. Wenn sich die GC nur auf Objekte konzentriert, die höchstwahrscheinlich wiederverwendbar sind, können Sie die Pausezeit für einige Anwendungen weiter verringern. Bei der GC nach Objektalter wird dies erreicht, indem der Freispeicher in zwei "Generationen" aufgeteilt wird, nämlich in die Bereiche "Junge Objekte" und "Alte Objekte". Die Objekte werden abhängig von ihrem Alter in einen dieser Bereiche gestellt. Der Bereich "Junge Objekte" ist der kleinere der beiden Bereiche und enthält jüngere Objekte. Der Bereich "Alte Objekte" ist größer und enthält ältere Objekte. Objekte werden zuerst dem Bereich "Junge Objekte" zugeordnet. Wenn sie lang genug überleben, werden Sie schließlich in den Bereich "Alte Objekte" umgestuft.

Die GC nach Objektalter basiert darauf, dass die meisten Projekte nur eine kurze Lebensdauer haben. Die GC nach Objektalter verringert Pausezeiten, indem sie sich auf das Zurückgewinnen von Speicher im Bereich "Junge Objekte" konzentriert, da dieser Bereich über den meisten wiederverwendbaren Speicherplatz verfügt. Im Gegensatz zu gelegentlichen aber übermäßig langen Pausezeiten beim Erfassen des gesamten Freispeichers wird der Bereich "Junge Objekte" regelmäßiger erfasst. Außerdem sind Pausezeiten verhältnismäßig kurz, wenn der Bereich klein genug ist. Die GC nach Objektalter hat jedoch den Nachteil, dass der Bereich "Alte Objekte" mit der Zeit voll wird, wenn zu viele Objekte eine zu lange Lebensdauer haben. Verwenden Sie eine Kombination aus der gleichzeitig ablaufenden GC und der GC nach Objektalter, um in dieser Situation die Pausezeit zu minimieren. Die Option -Xgcpolicy:gencon fordert die kombinierte Verwendung der gleichzeitig ablaufenden GC und der GC nach Objektalter an, um die GC-Pausezeit zu verringern.

Umgebungen mit sehr vollen Freispeichern

Wenn der Java-Freispeicher nahezu voll ist und wenn sehr wenig zurückzufordernder Garbagespeicher vorhanden ist, werden Anforderungen für neue Objekte möglicherweise nicht schnell beantwortet, da kein Speicherbereich sofort verfügbar ist. Bei der Ausführung mit nahezu vollem Freispeicher kann die Anwendungsleistung geringer werden, unabhängig davon, welche der oben genannten Optionen Sie verwenden; wenn weiterhin Freispeicher angefordert wird, empfängt die Anwendung eine Ausnahmebedingung wegen ungenügender Speicherkapazität und die JVM wird beendet, es sei denn, die Ausnahmebedingung wird abgefangen und bearbeitet. Zu diesem Zeitpunkt erstellt die JVM die Diagnosedatei "javadump". In diesen Situationen sollten Sie entweder die Freispeichergröße mit der Option -Xmx erhöhen oder die Anzahl der verwendeten Anwendungsobjekte verringern.

Der JIT-Compiler (Just-in-Time)

Der JIT-Compiler (Just-in-Time), jitc.dll, generiert während der Ausführung dynamisch Maschinencode für häufig verwendete Bytecodesequenzen in Java-Anwendungen und Java-Applets.

Runtime Environment für Windows enthält den JIT-Compiler (jitc.dll), der standardmäßig aktiviert ist. Sie können den JIT-Compiler inaktivieren, um beispielsweise mögliche Probleme mit einer Java-Anwendung, einem Java-Applet oder dem Compiler selbst einzugrenzen.

Verwenden Sie zum Inaktivieren des JIT-Compilers die Option -Xint. Geben Sie in der Eingabeaufforderung, in der Sie die Anwendung ausführen, Folgendes ein:

    java -Xint Klasse

Wenn Sie prüfen wollen, ob der JIT-Compiler aktiviert ist, geben Sie folgenden Befehl an der Eingabeaufforderung ein:

    java -version

Wenn der JIT-Compiler aktiv ist, wird folgende Nachricht angezeigt:

(JIT enabled)

Wenn der JIT-Compiler nicht aktiv ist, wird folgende Nachricht angezeigt:

(JIT disabled)

Implementieren des Steuerroutinenpools für Verbindungen für RMI

Thread-Pooling für Steuerroutinen von RMI-Verbindungen wird nicht standardmäßig aktiviert.

Wenn Sie das Verbindungs-Pooling aktivieren wollen, das in der RMI-TCPTransport-Ebene implementiert ist, legen Sie die folgende Option fest:

-Dsun.rmi.transport.tcp.connectionPool=true (oder einen Wert ungleich Null) 

Diese Runtime Environment-Version verfügt über keine Einstellungen, die Sie verwenden können, um die Anzahl Threads im Verbindungspool zu begrenzen.

Weitere Informationen finden Sie auf der Java-Website von Sun: http://java.sun.com.

Signalverarbeitung durch die JVM

Wenn ein für die Java Virtual Machine (JVM) wichtiges Signal gesendet wird, wird eine Signalroutine aufgerufen. Diese Signalroutine legt fest, ob das Signal für einen Java- oder Nicht-Java-Thread aufgerufen wurde.

Wurde das Signal für einen Java-Thread aufgerufen, steuert die JVM die Signalverarbeitung. Wenn eine Anwendungsroutine für dieses Signal installiert ist, und Sie die Befehlszeilenoption -Xnosigchain nicht angegeben haben, wird die Anwendungsroutine für dieses Signal aufgerufen, nachdem die JVM die Verarbeitung abgeschlossen hat.

Wurde das Signal für einen Nicht-Java-Thread aufgerufen und wurde zuvor mit der Anwendung, mit der die JVM installiert wurde, eine eigene Routine für das Signal installiert, übernimmt diese Signalroutine die Steuerung. Wenn das Signal jedoch von der JVM oder der Java-Anwendung angefordert wird, wird esignoriert, oder die Standardaktion wird ausgeführt.

Unter Windows gibt es eine Ausnahme für diese Regel: Für ein extern generiertes Signal (z. B. durch Drücken der Taste Strg-Untbr) wird zum Ausführen der Signalroutine ein neuer Thread erstellt. In diesem Fall führt die JVM-Signalroutine die Verarbeitung aus, und die Anwendungsroutine für dieses Signal wird installiert, wenn für dieses Signal eine Anwendungsroutine installiert ist und Sie die Befehlszeilenoption -Xnosigchain nicht angegeben haben.

Die JVM führt für Signale bei Ausnahmebedingungen und für Fehlersignale eine der folgenden Aktionen aus:

Information zum Schreiben eines Startprogramms, das die oben aufgeführten Hooks angibt, finden Sie unter der folgenden Adresse: http://www-106.ibm.com/developerworks/java/library/i-signalhandling/. Dieser Abschnitt wurde für Java Version 1.3.1 geschrieben, gilt jedoch auch für spätere Versionen.

Bei Interruptsignalen beginnt die JVM ebenfalls eine Sequenz für einen kontrollierten Systemabschluss, der jedoch in diesem Fall wie eine normale Beendigung behandelt wird. Hierbei führt die JVM die folgenden Aktionen aus:

Der Systemabschluss entspricht dem Systemabschluss, der über einen Aufruf der Java-Methode System.exit() eingeleitet wurde.

Weitere von der JVM verwendete Signale werden für die interne Steuerung verwendet und führen nicht zur Beendigung der JVM. Das einzige wichtige Steuerungssignal ist SIGBREAK, durch das ein Java-Speicherauszug generiert wird.

Von der JVM verwendete Signale

In Tabelle 1 sind die von der JVM verwendeten Signale aufgeführt. Die Signale werden in der Tabelle nach Typ oder Verwendung wie folgt zusammengefasst:

Tabelle 1. Von der JVM verwendete Signale
Signalname Signaltyp Beschreibung Inaktiviert durch -Xrs
SIGSEGV Ausnahmebedingung Falscher Zugriff auf den Speicher (es wurden Daten in einen Speicherbereich geschrieben, auf den nicht zugegriffen werden kann). Nein
SIGILL Ausnahmebedingung Nicht zulässige Anweisung (es wurde versucht, eine unbekannte Maschineninstruktion aufzurufen). Nein
SIGFPE Ausnahmebedingung Ausnahmebedingung bei der Gleitkommaverarbeitung (Division durch Null). Nein
SIGABRT Fehler Abnormale Beendigung. Die JVM setzt dieses Signal ab, sobald sie einen JVM-Fehler feststellt. Nein
SIGINT Interrupt Interaktiver Abruf (Strg-C). Die JVM wird normal beendet. Ja
SIGTERM Interrupt Beendigungsanforderung. Die JVM wird normal beendet. Ja
SIGBREAK Steuerzeichen Ein Unterbrechungssignal von einem Terminal. Die JVM verwendet dieses Signal zum Ausführen von Java-Speicherauszügen. Nein

Mit Hilfe der Option -Xrs (Reduzierung der Verwendung von Signalen) können Sie verhindern, dass die JVM die meisten Signale verarbeitet. Weitere Informationen hierzu finden Sie auf der Sun-Website zum Startprogramm für Java-Anwendungen unter http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/java.html.

Auf Grund der Signale 2 (SIGINT), 4 (SIGILL), 6 (SIGABRT), 8 (SIGFPE) und 11 (SIGSEGV) für JVM-Threads wird die JVM beendet. Daher sollte eine Anwendungssignalroutine bei diesen Signalen keine Wiederherstellung versuchen, es sei denn, die Services der JVM werden nicht mehr benötigt.

Verbinden eines nativen Codetreibers mit der Signalverkettungsbibliothek

Runtime Environment enthält eine Signalverkettungsfunktion. Die Signalverkettung ermöglicht eine effizientere Interaktion der JVM mit nativem Code, über den eigene Signalroutinen installiert werden.

Mit der Signalverkettungsfunktion kann eine Anwendung mit der gemeinsam benutzten Bibliothek jsig.dll verbunden werden und diese vor msvcrt.dll laden. Mit Hilfe der Bibliothek jsig.dll wird sichergestellt, dass signal()-Aufrufe abgefangen werden, so dass die JVM-Signalroutinen nicht durch die zugehörigen Routinen ersetzt werden. Stattdessen werden die neuen Signalroutinen durch diese Aufrufe gesichert oder nach den durch die JVM installierten Signalroutinen hinzugefügt. Wenn diese Signale zu einem späteren Zeit gesendet werden und nicht an die JVM gerichtet sind, werden die vorinstallierten Signalroutinen aufgerufen.

Wenn Sie jsig.dll verwenden möchten, verbinden Sie die Datei mit der Anwendung, die eine JVM erstellt oder integriert.

Arbeiten mit einem Editor für Eingabemethoden

Wenn Sie mit einem Editor für Eingabemethoden (Input Method Editor, IME) arbeiten, sollten Sie die Zeichenzusammensetzung beendet und die Kandidaten ausgewählt haben, bevor Sie den Arbeitsbereich für weitere Verarbeitungen verwenden.

Verwenden des Befehls 'more' mit der Version in traditionellem Chinesisch

Benutzer der Version in traditionellem Chinesisch sollten die Ausgabe von Java-Anwendungen nicht über eine Pipe direkt in den Befehl more umleiten. Übertragen Sie die Ausgabe stattdessen direkt in eine temporäre Datei, und zeigen Sie die Datei einzeln an.

Kommentare zu diesem Handbuch

Wenn Sie Ihren Kommentar zur Zweckmäßigkeit oder zu anderen Eigenschaften dieses Benutzerhandbuchs mitteilen möchten, können Sie sich über eine der im Folgenden aufgeführten Möglichkeiten an uns wenden. Beachten Sie, dass diese Mitteilungswege nicht eingerichtet wurden, um technische Fragen zu beantworten. Sie sind nur für Kommentare zur Dokumentation bestimmt. Senden Sie Ihre Kommentare an folgende Adresse:

Das Kleingedruckte. Wenn Sie eine Nachricht an IBM senden, erklären Sie sich einverstanden, dass alle in Ihrer Nachricht enthaltenen Informationen, einschließlich der Rückmeldedaten, wie beispielsweise Fragen, Kommentare, Anregungen o. Ä., nicht vertraulich behandelt werden und dass IBM keinerlei Verpflichtungen in Bezug auf diese Informationen hat und diese uneingeschränkt abdrucken, verwenden, veröffentlichen und an andere weitergeben kann. Des Weiteren kann IBM in diesen Informationen enthaltene Ideen, Konzepte oder Angaben zu Know-how oder technischen Verfahren uneingeschränkt und für beliebige Zwecke verwenden, u. a. für die Entwicklung, die Produktion und das Marketing von Produkten, die diese Informationen enthalten.

Bemerkungen

Die vorliegenden Informationen wurden für Produkte und Services entwickelt, die auf dem US-amerikanischen Markt angeboten werden. Möglicherweise bietet IBM die in dieser Dokumentation beschriebenen Produkte, Services oder Komponenten in anderen Ländern nicht an. Informationen über die gegenwärtig im jeweiligen Land verfügbaren Produkte und Services sind beim IBM Ansprechpartner erhältlich. Hinweise auf IBM Lizenzprogramme oder andere IBM Produkte bedeuten nicht, dass nur Programme, Produkte oder Dienstleistungen von IBM verwendet werden können. Anstelle der IBM Produkte, Programme oder Dienstleistungen können auch andere ihnen äquivalente Produkte, Programme oder Dienstleistungen verwendet werden, solange diese keine gewerblichen Schutzrechte der IBM verletzen. Die Verantwortung für den Betrieb von Fremdprodukten, Fremdprogrammen und Fremdservices liegt beim Kunden.

Für in diesem Handbuch beschriebene Erzeugnisse und Verfahren kann es IBM Patente oder Patentanmeldungen geben. Mit der Auslieferung dieses Handbuchs ist keine Lizenzierung dieser Patente verbunden. Lizenzanforderungen sind schriftlich an folgende Adresse zu richten (Anfragen an diese Adresse müssen auf Englisch formuliert werden):

Trotz sorgfältiger Bearbeitung können technische Ungenauigkeiten oder Druckfehler in dieser Veröffentlichung nicht ausgeschlossen werden. IBM kann jederzeit ohne Vorankündigung Verbesserungen und/oder Änderungen an den in dieser Veröffentlichung beschriebenen Produkten und/oder Programmen vornehmen.

Verweise in dieser Veröffentlichung auf Websites anderer Anbieter dienen lediglich als Benutzerinformationen und stellen keinerlei Billigung des Inhalts dieser Websites dar. Das über diese Websites verfügbare Material ist nicht Bestandteil des Materials für dieses IBM Produkt. Die Verwendung dieser Websites geschieht auf eigene Verantwortung.

Werden an IBM Informationen eingesandt, können diese beliebig verwendet werden, ohne dass eine Verpflichtung gegenüber dem Einsender entsteht.

Lizenznehmer des Programms, die Informationen zu diesem Produkt wünschen mit der Zielsetzung: (i) den Austausch von Informationen zwischen unabhängigen, erstellten Programmen und anderen Programmen (einschließlich des vorliegenden Programms) sowie (ii) die gemeinsame Nutzung der ausgetauschten Informationen zu ermöglichen, wenden sich an folgende Adresse:

Die Bereitstellung dieser Informationen kann unter Umständen von bestimmten Bedingungen - in einigen Fällen auch von der Zahlung einer Gebühr - abhängig sein.

Die Lieferung des in der Informationsdatei aufgeführten Lizenzprogramms sowie des zugehörigen Lizenzmaterials erfolgt im Rahmen der Allgemeinen Geschäftsbedingungen der IBM oder einer äquivalenten Vereinbarung.

Alle in diesem Dokument enthaltenen Leistungsdaten stammen aus einer gesteuerten Umgebung. Die Ergebnisse, die in anderen Betriebsumgebungen erzielt werden, können daher erheblich von den hier erzielten Ergebnissen abweichen. Einige Daten stammen möglicherweise von Systemen, deren Entwicklung noch nicht abgeschlossen ist. Eine Garantie, dass diese Daten auch in allgemein verfügbaren Systemen erzielt werden, kann nicht gegeben werden. Darüber hinaus wurden einige Daten unter Umständen durch Extrapolation berechnet. Die tatsächlichen Ergebnisse können abweichen. Benutzer dieses Dokuments sollten die entsprechenden Daten in ihrer spezifischen Umgebung prüfen. Diese Daten stellen deshalb keine Leistungsgarantie dar.

Informationen über Produkte anderer Hersteller als IBM wurden von den Herstellern dieser Produkte zur Verfügung gestellt, bzw. aus von ihnen veröffentlichten Ankündigungen oder anderen öffentlich zugänglichen Quellen entnommen. IBM hat diese Produkte nicht getestet und übernimmt im Hinblick auf Produkte anderer Hersteller keine Verantwortung für einwandfreie Funktion, Kompatibilität oder andere Ansprüche. Fragen zu den Leistungsmerkmalen von Produkten anderer Anbieter sind an den jeweiligen Anbieter zu richten.

Marken

IBM ist in gewissen Ländern eine Marke der International Business Machines Corporation.

Java und alle Java-basierten Marken und Logos sind in gewissen Ländern Marken oder eingetragene Marken von Sun Microsystems, Inc.

Microsoft, Windows, Windows NT und das Windows-Logo sind in gewissen Ländern Marken der Microsoft Corporation.

Andere Namen von Unternehmen, Produkten oder Dienstleistungen können Marken oder Dienstleistungsmarken anderer Unternehmen sein.

Dieses Produkt enthält Software, die von der Apache Software Foundation (http://www.apache.org/) entwickelt wurde.