1.0 Bekannte Probleme und Einschränkungen
1.1 Generischer Protokolladapter
1.1.1 Probleme bei der Ausführung von Regeln des generischen Protokolladapters unter IBM Java Runtime Environment (JRE) Version 1.4.1
1.2 Steuerkomponente zur Datenerfassung
1.2.1 Konsolentext ist nicht lesbar bei der Profilermittlung einer Java-Anwendung auf einem DBCS-System
1.2.2 Dateikopie der Steuerkomponente zur Datenerfassung funktioniert auf HP 11i nicht
1.2.3 Steuerkomponente zur Datenerfassung berichtet Fehler "sh: sysdef: not found" unter Solaris
1.2.4 Steuerkomponente zur Datenerfassung gerät bei Ausführung mit einer Sun JVM unter Linux in eine Endlosschleife
1.2.5 Agentenerweiterung funktioniert auf iSeries-Systemen nicht
1.2.6 Mehrere Instanzen der Steuerkomponente zur Datenerfassung auf einer Maschine sind nicht zulässig
1.3 Log and Trace Analyzer (Protokoll- und Traceanalyseprogramm)
1.3.1 Arbeitspfad kann bei Profilermittlung nicht gesetzt werden
1.3.2 Agenten und Prozesse gehen beim Schließen des Profiling Monitor verloren
1.3.3 Aktualisierte Anzeigen funktionieren in Abhängigkeit von der Auswahl in Profiling Monitor unter Umständen nicht
1.4 Probekit
1.4.1 *ProbeInstrumenter-Programm entfernt das gesamte Verzeichnis META-INF aus den JAR-Dateien
1.4.2 *ProbeInstrumenter-Programm löst bei der Einsetzung einiger Klassen eine Ausnahmebedingung aus
1.5 Profilermittlungstool
1.5.1 Problem mit Sammlung fehlerhafter Daten bei Verwendung von IBM JDK 1.4.1
1.5.2 Bei Sun JVM wird für einige Methodenaufrufe kein Trace durchgeführt
1.5.3 Profilermittlung unter Solaris mit Sun JDK 1.4.x kann einen Absturz der JVM verursachen
1.5.4 Möglicher Absturz bei Ausführung im Standalonemodus mit STACK_INFORMATION=contiguous unter Solaris
1.5.5 Negative Zeitlimitwerte für Ereignisse WAIT und WAITED
1.5.6 Falsche Monitorspeicherauszüge mit IBM JDK 1.4.2
1.6 Statistikkonsole
1.7 Test
1.7.1 Allgemeine Testthemen
1.7.1.1 JUnit-Tests, manuelle Tests und URL-Tests funktionieren auf iSeries nicht
1.7.1.2 Automatisierte Implementierung und Ausführung von Tests unter Verwendung von heterogenen Plattformen funktioniert nicht
1.7.1.3 Ausführung auf einem fernen System mit manueller Implementierung
1.7.1.4 Datenpoolzugriff
1.7.2 Hyades-URL-Test
1.7.2.1 URL-Antwortzeit- und Trefferratenberichte sind im Testnavigator nicht sichtbar
1.7.2.2 URL Test Recorder zeigt "IWAT3042E recording aborted due to exception: null" an
1.7.2.3 URL-Tests als JUnit-Tests ausführen
1.7.2.4 URL-Testbeispiel ausführen
1.7.2.5 Datei readme.html des URL-Testbeispiels bezieht sich fälschlicherweise auf 'Component Test'
Die in 2003 ausgelieferte IBM JDK 1.4.1 verursacht Probleme im regelbasierten Apache-Zugriffsprotokollparser.
Service Release (SR2 und höher) ist bei Ausführung der IBM Java Runtime Environment (JRE) Version 1.4.1 zur Verwendung des generischen Protokolladapters und/oder zum Importieren von Protokolldateien in Hyades mit Hilfe eines regelbasierten Protokolldateiparsers erforderlich.
Bei der Profilermittlung einer fernen Java-Anwendung innerhalb Eclipse auf einem DBCS-System (z. B. traditionelles Chinesisch, vereinfachtes Chinesisch, Japanisch, Koreanisch) wird die Konsolausgabe als nicht lesbarer Text angezeigt. Dieses Problem tritt auf allen Plattformen außer z/OS und iSeries auf.
Um dieses Problem zu umgehen, fügen Sie beim Starten der fernen Java-Anwendung ein Java-VM-Argument -Dconsole.encoding=UTF8 hinzu. Dies stellt die korrekte Codierung bei der Übertragung der Konsolausgabe vom fernen System zurück zur Eclipse-Workbench sicher.
Die Dateikopie funktioniert nicht, da der Dateiserver nicht startet. Dies liegt daran, dass die JVM-Bibliothek libjvm.sl zur Laufzeit nicht geladen wird, was wiederum zur Folge hat, dass der Dateiserver nicht ausgeführt wird.
Zur Umgehung dieses Problems ist ein Verbindungseditorpatch Version PHSS_30049 oder höher erforderlich. Die Verbindungseditorversion aus Patch 30049 stellt sich wie folgt dar:
/bin/ld:
$Revision: 1.5 $
HP aC++ B3910B X.03.37.01 Classic Iostream Library
HP aC++ B3910B X.03.37.01 Language Support Library
ld_msgs.cat: $Revision: 1.5 $
92453-07 linker command s800.sgs ld PA64 B.11.38 REL 031217
Überprüfen der Versionsnummer: what /bin/ld
Auflisten der installierten Patches: swlist -l fileset
Grep für "ld" zum Abrufen der Versionsnummer für das kumulative ld und Verbindungstoolpatch.Die Hyades-Steuerkomponente zur Datenerfassung verwendet den Befehl sysdef, um die maximale Größe für den Puffer eines gemeinsam genutzten Hauptspeichers auf Ihrem System abzurufen. Kann die Steuerkomponente zur Datenerfassung sysdef nicht ausführen, wird dataChannelSize="30M" (wie in der Datei <RAServer>/plugins/org.eclipse.hyades.datacollection/pluginconfig.xml angegeben) verwendet. Der folgende Fehler wird in der Konsole berichtet, in der RAServer.exe gestartet wurde:
sh: sysdef: not foundUm dieses Problem zu umgehen, fügen Sie der Variable PATH das Verzeichnis /usr/sbin hinzu, welches sysdef enthält.
<SERVER_MSG time="2004:6:3:17:42:49" severity="INFORMATION" text="Service starting"/>Um dieses Problem zu umgehen, legen Sie fest, dass LD_LIBRARY_PATH auf alle .so-Dateien zeigt, bevor Sie die Steuerkomponente zur Datenerfassung starten. Führen Sie vor der Ausführung von RAServer beispielsweise folgenden Befehl aus:
<SERVER_MSG time="2004:6:3:17:42:49" severity="INFORMATION"
text="Successfully loaded plugin: org.eclipse.hyades.datacollection"/>
<SERVER_MSG time="2004:6:3:17:42:49" severity="INFORMATION"
text="Successfully loaded plugin: org.eclipse.hyades.logging.parsers"/>
<SERVER_MSG time="2004:6:3:17:42:49" severity="INFORMATION"
text="Successfully loaded plugin: org.eclipse.hyades.test"/>
<SERVER_MSG time="2004:6:3:17:42:49" severity="INFORMATION"
text="Active configuration set to: default"/>
<SERVER_MSG time="2004:6:3:17:42:49" severity="INFORMATION"
text="Loaded configuration: default"/>
<SERVER_MSG time="2004:6:3:17:42:49" severity="INFORMATION"
text="Service started successfully"/>
<SERVER_MSG time="2004:6:3:17:42:49" severity="WARNING" text="Server stopping"/>
<SERVER_MSG time="2004:6:3:17:42:49" severity="WARNING" text="Internal server closed"/>
<SERVER_MSG time="2004:6:3:17:42:49" severity="WARNING" text="External server closed"/>
<SERVER_MSG time="2004:6:3:17:42:49" severity="WARNING" text="Server stopping"/>
<SERVER_MSG time="2004:6:3:17:42:49" severity="WARNING" text="Internal server closed"/>
<SERVER_MSG time="2004:6:3:17:42:49" severity="WARNING" text="External server closed"/>
export
LD_LIBRARY_PATH=/opt/j2sdk1.4.2_04/jre/lib/i386/server:/opt/j2sdk1.4.2_04/jre/li
b/i386
Agentenerweiterungen funktionieren nicht auf iSeries-Systemen.
Um dieses Problem zu umgehen, führen Sie vor dem Starten der Steuerkomponente zur Datenerfassung auf der iSeries-Maschine folgenden Befehl aus:
ADDLIBLE LIBNAMEDabei ist LIBNAME der Bibliothekenname, der den Code der Agentenerweiterung enthält. Dies bewirkt, dass die Steuerkomponente zur Datenerfassung die Bibliothek suchen und laden kann.
Es kann jeweils nur eine Instanz der Steuerkomponente zur Datenerfassung auf einer Maschine installiert werden. Das heißt, wenn Sie die Steuerkomponente oder eine erweiterte Version der Steuerkomponente mit einem anderen Produkt installiert haben, müssen Sie zunächst diese Instanz deinstallieren, damit eine neue Instanz korrekt arbeiten kann. Beispielsweise enthalten einige IBM WebSphere Studio- oder IBM Rational-Produkte sowie das Autonomic Computing Toolkit von developerWorks optionale Installationen der Hyades-Steuerkomponente zur Datenerfassung unter dem Namen Agent Controller.
Bugzilla-Fehler: 61754
Gegenwärtig gibt es bei der Konfiguration einer Anwendung zur Profilermittlung keine
Möglichkeit, einen beliebigen Arbeitspfad zu setzen.
Das unter der
Registerkarte für Argumente des Java-Anwendungstyps bereitgestellte Arbeitsverzeichnis
wird nicht verarbeitet und korrekt vom startenden Benutzer von der Workbench an die
Steuerkomponente zur Datenerfassung gesandt.
Für den Typ der externen Java-Anwendung ist kein Feld zum Angeben eines Arbeitspfads
verfügbar.
Führen Sie die folgenden Schritte aus, um dieses Problem zu umgehen:
Bugzilla-Fehler: 51161
Falls in der Sicht des Profiling Monitors (Profilermittlungsüberwachungsprogramms) ungesicherte Daten wie z. B. Agenten oder
Prozesse angezeigt werden, gehen diese beim Schließen der Sicht verloren. Es wird
empfohlen, vor dem Schließen der Profiling Monitor-Sicht deren gesamten Inhalt zu sichern.
Hinweis: Durch das Öffnen einer neuen Perspektive und anschließendes Umschalten
zurück zur Profilermittlungs- und Protokollierungsperspektive entsteht kein Datenverlust.
Bugzilla-Fehler: 71567
Wenn die Option für Verknüpfung mit Anzeigefunktion in Profiling Monitor inaktiviert ist,
funktioniert die Aktion zur Anzeigenaktualisierung (in derselben Symbolleiste) nur dann,
wenn die aktuelle Auswahl im Profiling Monitor mit der gegenwärtig geöffneten Sicht
übereinstimmt.
Um dieses Problem zu umgehen, führen Sie einen der folgenden Schritte aus:
Enthält das Verzeichnis META-INF der JAR-Dateien noch andere Dateien außer der MANIFEST.MF-Datei, führen Sie diese Schritte aus, um diese Dateien in der eingesetzten JAR-Datei zu erhalten:
jar xf yourfile.jar META-INF
jar uf yourfile.jar META-INF
Hinweis: Dies wurde in in V6.0.0.1 behoben.
Bugzilla-Fehler:68435
Beim Einsetzen einiger Klassen löst das Probekit-Programm "ProbeInstrumenter"
eine Ausnahmebedingungsnachricht mit der folgenden Fehlernachricht aus:
Probe Kit Exception number 4 from location 3
Eine Ursache für diese Ausnahmebedingung sind Methoden, die nicht erreichbare Byte-Codes nach der letzten erreichbaren Anweisung einer Methode enthalten. Manche Java-Compiler generieren solchen Code.
Zu diesem Problem gibt es derzeit keine Fehlerumgehung.
Hinweis: Dies wurde in in V6.0.0.1 behoben.
Wenn die Benutzeranwendung ein extrem großes Maß Freispeicher belegt, kann durch die Anforderungen Objektreferenzen sammeln oder GC ausführen potenziell ein Absturz der JVM mit folgender Fehlernachricht verursacht werden:
**Out of memory, aborting**
*** panic: JVMCI023: Cannot allocate memory to collect heap dump in jvmpi_heap_dump
abnormal program termination
Sie können versuchen, dieses Problem zu umgehen, indem Sie die Ausführung ohne den Parameter -Xmx durchführen, sollte der Parameter aktuell in die Ausführung eingeschlossen sein.
Bugzilla-Fehler: 69051
Bei Verwendung von Sun JDK unter Windows führt JVMPI für bestimmte Methodenaufrufe in Java-Programmen kein Trace durch.
Zu diesem Problem ist derzeit keine Fehlerumgehung bekannt.
Bugzilla-Fehler:56404
Bei der Profilermittlung unter Solaris mit Hilfe von Sun JDK 1.4.x kann unter Umständen
ein Absturz der JVM verursacht werden. Dies ist auf einen Programmfehler in der Sun
JVM zurückzuführen.
Um dieses Problem zu umgehen, verwenden Sie eine der folgenden Einstellungen zur Profilermittlung:
Das Problem tritt auf, wenn beides in Kombination verwendet wird oder wenn die Option zum Anzeigen von Instanzstufeninformationen aktiviert ist.
Bugzilla-Fehler:
50090
Bei der Profilermittlung unter Solaris können Probleme bei der Standalone-Profilermittlung
auftreten. Das Problem ergibt sich nur, wenn STACK_INFORMATION=contiguous (oder
boundaryAndContiguous) und TRACE_MODE=full ist. Dieses Problem kann zu einem Absturz
Ihrer JVM führen.
Um dieses Problem mit STACK_INFORMATION=contiguous zu umgehen, legen Sie TRACE_MODE=noObjectCorrelation fest. Das Problem ergibt sich nicht, wenn STACK_INFORMATION=none oder STACK_INFORMATION=normal ist.
Bugzilla-Fehler: 63969
Bei Ausführung mit IBM 1.4.2 JDK mit der Hyades-jvmpi-Profiloption 'MONITOR_MODE=all' (im Standalonemodus) sehen Sie unter Umständen negative Zeitlimitattribute für die Elemente monitorWait und monitorWaited in deren Trace. Dabei handelt es sich um extrem große Zeitlimitwerte, die als positive 64-Bit-Integer umgesetzt wurden. Dieser Fehler basiert auf einem JDK-Programmfehler.
Bugzilla-Fehler: 65193 und 72180
Wegen eines JDK-Programmfehlers erhalten Sie bei der Ausführung von Hyades im Standalonemodus mit der jvmpi-Profiloption 'MONITOR_MODE=all' unter Umständen falsche Monitorspeicherauszüge. Besonders bei Fehler 65193 passiert dies, wenn das VM-Argument '-Xj9' verwendet wird.
Nicht verfügbar
Automatisierte Implementierung/Ausführung von Tests auf fernen Systemen, die auf heterogenen Plattformen (Windows zu Linux oder Unix und umgekehrt) laufen, funktioniert nicht. Informationen darüber, wie ein Test auf einem fernen System ausgeführt werden kann, finden Sie in diesem Dokument im Abschnitt Ausführung auf einem fernen System.
Bugzilla-Fehler:68910
Die allgemeine Verwendung eines Tests (URL, JUnit oder manuell) besteht in der
Installation der Workbench (Eclipse-Benutzerschnittstelle) auf einer Windows-basierten
Maschine und der Ausführung auf einem fernen Linux- oder Unix-System. Gegenwärtig
funktioniert die automatisierte Implementierung nicht über Plattformen hinweg. Tests
können jedoch immer noch über Remotezugriff durchgeführt werden.
Die Datei, die den auszuführenden
Test darstellt, muss von dem System, auf dem sie erstellt wurde, zu dem System
übertragen werden, auf dem sie ausgeführt werden soll. Die Übertragung erfolgt
am wahrscheinlichsten mit Hilfe von FTP. Der Datenkollektor (RAC) muss so konfiguriert
werden, dass er auf die übertragene Testressource zeigt.
Beim Kompilieren des Bytecodes für einen Test wird er im Verzeichnis 'bin' des Java-Projekts gespeichert, in dem der Test erstellt wurde. Ein Beispiel wäre:
[ECLIPSE_HOME]/workspace/project1/bin/test/URLTest.class
Eine Methode, die oben genannte Datei für die Ausführung auf einem fernen System zu packen, ist die Erstellung einer JAR-Datei. Die unten stehenden Befehle zeigen, wie dies durchgeführt wird.
"cd [ECLIPSE_HOME]/workspace/project1/bin"
"jar -cf test.jar test"
Die Datei test.jar kann dann zu der Verzeichnisstruktur des Datenkollektors auf der fernen Maschine übertragen werden.
Danach muss die Datei [RAC_HOME]/config/serviceconfig.xml so angepasst werden, dass sie auf test.jar zeigt, wie unten dargestellt.
<AgentControllerEnvironment configuration="default">
...
...
<Variable name="CLASSPATH" position="append" value="%RASERVER_HOME%/test/test.jar"/>
</AgentControllerEnvironment>
Wenn der Test von der Workbench aus gestartet wird, hat der Datenkollektor einen Klassenpfad, der auf die Testposition zeigt, und der Test wird ausgeführt.
Bugzilla-Fehler:68911
In der Dokumentation, die den Zugriff auf einen Datenpool von einem Hyades-Test aus
beschreibt, fehlt ein Arbeitsschritt und es ist ein Codebeispiel enthalten, das nicht
vollständig funktioniert.
Folgende JAR-Dateien müssen dem Java-Erstellungspfad hinzugefügt werden.
([ECLIPSE_HOME] ist das Verzeichnis, in dem Eclipse installiert ist.
[ECLIPSE_HOME]/plugins/org.eclipse.hyades.models.common_3.0.0/common_model.jar
[ECLIPSE_HOME]/plugins/org.eclipse.hyades.test.datapool_3.0.0/datapool_api.jar
[ECLIPSE_HOME]/plugins/org.eclipse.emf.ecore_2.0.0/runtime/ecore.jar
[ECLIPSE_HOME]/plugins/org.eclipse.emf.common_2.0.0/runtime/common.jar
Das folgende Codefragment demonstriert den Zugriff auf einen Datenpool und die ordnungsgemäße Extrahierung der Informationen.
IDatapoolFactory dpFactory = new Common_DatapoolFactoryImpl();
IDatapool datapool = dpFactory.load(new File("d:\\hyades3.0\\workspace\\testproj\\dpoo1.datapool"), false);
IDatapoolIterator iter = dpFactory.open(datapool, "org.eclipse.hyades.datapool.DatapoolIteratorSequentialPrivate");
iter.dpInitialize(datapool, -1);
while (!iter.dpDone())
{
String firstName = iter.dpCurrent().getCell("First Name").getStringValue();
// your code here
iter.dpNext();
}
Bugzilla-Fehler:68553
URL-Antwortzeit- und Trefferratenberichte sind im Testnavigator nicht sichtbar. Auf die
Berichte kann in der Ressourcenperspektive durch Öffnen des Projekts, unter dem sie
erstellt wurden, zugegriffen werden.
Bugzilla-Fehler:66199
Wenn Eclipse mit dem Argument '-Xj9' gestartet wird, zeigt die Sicht 'Recorder Control'
nach mehreren Aufzeichnungen die Nachricht "IWAT3042E recording aborted due to
exception: null" an. Zur Umgehung des Fehlers muss Eclipse geschlossen und erneut
geöffnet werden.
Hyades-URL-Tests können als JUnit-Tests ausgeführt werden. Dazu müssen dem Java-Erstellungspfad des Projekts, das den URL-Test enthält, folgende Einträge hinzugefügt werden:
[ECLIPSE_HOME]/plugins/org.eclipse.hyades.logging.core_3.0.0/hlcore.jar
[ECLIPSE_HOME]/plugins/org.eclipse.hyades.logging.core_3.0.0/hlcbe101.jar
[ECLIPSE_HOME]/plugins/org.eclipse.emf.ecore_2.0.0/runtime/ecore.jar
[ECLIPSE_HOME]/plugins/org.eclipse.hyades.logging.java14_3.0.0/hl14.jar
[ECLIPSE_HOME]/plugins/org.eclipse.emf.common_2.0.0/runtime/common.jar
Das URL-Testbeispiel lässt sich nicht direkt nach dieser Erstellung ausführen. Zwei Artefakte müssen konfiguriert sein, damit es erfolgreich läuft. Die Variable CLASSPATH von artifact1 sollte auf die Workspaceposition auf der Maschine zeigen:
[ECLIPSE_HOME]/eclipse/workspace/URL Test Sample/bin
Die Variable ROOTDIR von location1 sollte auf das Verzeichnis zeigen, welches das Workspace darstellt.
[ECLIPSE_HOME]/workspace
Der Standardname des URL-Testbeispiels enthält Leerzeichen. Dies kann bei einigen Betriebssystemen zu Problemen führen. Der Name des Beispiels kann geändert werden, sobald das Beispiel erstellt ist.
Bugzilla-Fehler:68910
Die Webseite des URL-Testbeispiels verweist auf einen Abschnitt 'Component Test' in der Onlinehilfe, der jedoch nicht existiert. Die Webseite müsste sich stattdessen auf den Abschnitt 'Test' in der Onlinehilfe beziehen.
Zurück zur Readme-Hauptdatei