IBM WebSphere Application Server
Enterprise Edition Version 4.1
Release Notes

Letzte Aktualisierung 11.01.2002

Dieses Dokument wird regelmäßig aktualisiert. Die jeweils neueste Version finden Sie auf der Seite WebSphere Application Server InfoCenter unter der Adresse www.ibm.com/software/webservers/appserv/infocenter.html.

Diese Releaseinformationen gelten ausschließlich für Enterprise Services. Eine Beschreibung von Enterprise Services finden Sie unter dem Thema What are Enterprise Services? im Enterprise Edition InfoCenter.

Für die folgenden Produkte stehen separate Releaseinformationen zur Verfügung:

Inhalt dieses Dokumentes

Vorbedingungen
Installieren von Enterprise Services
Business Process Beans (BPBeans) - Technologievorschau
Defekte und Lösungsmöglichkeiten

Vorbedingungen und unterstützte Software

Auf der folgenden Website sind die Softwareprodukte aufgelistet, die für WebSphere Application Server erforderlich sind oder für dessen Verwendung unterstützt werden:

www.ibm.com/software/webservers/appserv/doc/latest/prereq.html

Hinweis: Dieses Release von Enterprise Services unterstützt nicht CICS Universal Clients & Transaction Gateway.

Installieren von Enterprise Services

Die vollständigen Installationsanweisungen finden Sie im Enterprise Services Installation Guide (pdf).

Version 4.1 von Enterprise Services erfordert Advanced Edition Version 4.0.2.

Die meisten Installationen von Enterprise Services (mit Ausnahme von CORBA C++ Clients) erfordern, dass Sie zuerst den Server oder Client von Advanced Edition installieren, um so eine J2EE-Basis bereitzustellen. Zur Installation von Version 4.1 Enterprise Services muss die Basis Ihrer Advanced Edition die Ebene der Version 4.0.2 haben. Diese Ebene entspricht der Version 4.0 (oder 4.0.1) plus. FixPack 2 Advanced Edition Version 4.0 wird mit der Enterprise Edition geliefert. Sie können FixPack 2 von folgender Webseite herunterladen:

http://www.ibm.com/support/manager.wss?rs=180&rt=0&org=SW&doc=4001038.

Bei der Deinstallation werden sowohl Advanced Edition als auch Enterprise Services entfernt.

Bei der Deinstallation von WebSphere Application Server werden sowohl Advanced Edition als auch Enterprise Services aus Ihrem System entfernt. Es gibt kein separates Deinstallationsprogramm für Enterprise Services. Denken Sie daran, dass Sie nach der Installation von Enterprise Services keine Möglichkeit haben, Advanced Edition FixPack 2 zu deinstallieren (oder "zurückzusetzen").

Installieren der Beispiele

Im Gegensatz zur Installation von Advanced Edition werden die Beispiele bei der "typischen" Installation von Enterprise Services nicht installiert. Um die Beispiele für Enterprise Services zu installieren, wählen Sie die Installationsoption "Angepasst", und wählen Sie dann "Beispiele" aus der Optionsliste.

Business Process Beans (BPBeans) - Technologievorschau

BPBeans ist eine neue Technologie zum Erstellen von Java-Komponenten, die Paradigmen der erweiterten Transaktionsverarbeitung verwenden. Mit BPBeans können die folgenden Tasks ausgeführt werden:

BPBeans ist eine Technologievorschau. Das bedeutet, dass die Technologie für Demonstrationen oder Projekte zur "Prüfung der Erfolgschancen" eingesetzt werden kann. BPBeans können in einer Produktionsumgebung nicht verwendet werden. BPBeans können unter Windows NT Version 4 mit SP4 oder später oder unter Windows 2000 installiert werden. Diese Technologievorschau umfasst Ausrüstung, Laufzeit und Dokumentation der Anwendungen. Sie steht nur in amerikanischem Englisch zur Verfügung.

Installieren von BPBeans

Um die BPBeans-Technologie zu installieren, führen Sie den Befehl Windows/BPB_tech_preview/BPBeansSetup.exe aus, der sich auf der CD Enterprise Edition Server befindet. Mit diesem Befehl werden Ausrüstung, Laufzeit und Dokumentation der Anwendungen installiert.

Defekte und Lösungsmöglichkeiten

Die folgenden Abschnitte enthalten Informationen zu bekannten Defekten und Lösungsmöglichkeiten sowie ergänzende Informationen zu Abschnitten im Enterprise Edition InfoCenter. Soweit nicht anders angegeben, gelten die Defekte und Lösungsmöglichkeiten für alle unterstützten Plattformen.

Installation
Brücke von ActiveX zu EJB
Business Rule Beans (BRBeans)
CORBA C++-SDK
Extended Messaging Support
Probleme mit der Landessprache

Installation

Defekt 106140: Während der Installation funktioniert die Tabulatortaste nicht (HP-UX/Linux/Solaris)

In Installationsanzeigen, die ein Textfeld enthalten, kann nach Erreichen des Textfeldes die Tabulatortaste nicht weiterverschoben werden, so dass die nächste Anzeige nicht erreicht werden kann.

Lösungsmöglichkeit: Verwenden Sie eine Zeigereinheit, um Weiter anzuklicken.

Defekt 108598: Das Fenster für die Benutzerauswahl verschwindet hinter dem Hintergrundfenster (Solaris)

Bei der Installation unter Solaris (Bildschirm X11) kann das kleine Fenster, in dem Sie Ihre Auswahl treffen können, hinter dem größeren Hintergrundfenster verschwinden, wenn dieses ausgewählt wird.

Lösungsmöglichkeit: Bringen Sie das kleine Fenster wieder in den Vordergrund, indem Sie Alt+Tabulatortaste drücken und dann das kleine Fenster anklicken.

Brücke von ActiveX zu EJB

Defekt 112685.RN: Catching-Fehler "440 Automationsfehler " bei Verwendung von CallByName() in Visual Basic

Die CallByName()-Funktion in Visual Basic wird mit der Brücke von ActiveX zu EJB verwendet, wenn die Groß- und Kleinschreibung des Aufrufs einer Java-Methode nicht garantiert werden kann (z. B. Visual Basic ändert myJavaObject.create in myJavaObject.Create um). Dies wird in der Microsoft Knowledge Base in Artikel Q194418 unter folgender Adresse dokumentiert: http://support.microsoft.com/support/kb/articles/Q194/4/18.ASP:

"Wenn ein Fehler während einer Prozedur des ActiveX-Servers auftritt und die Prozedur mit einer CallByName()-Funktion von einem Client aufgerufen wird, meldet der Client Fehler 440, unabhängig von der ursprünglichen Fehlernummer."

Sämtliche Java-Ausnahmebedingungen, die normalerweise als Fehler 0x6003 mit Stack-Trace von Java in der Fehlerbeschreibung ausgegeben werden, werden als Fehler 440 mit den Worten "Automationsfehler" in der Fehlerbeschreibung ausgegeben.

Lösungsmöglichkeit: Führen Sie einen der folgenden Schritte aus:

  1. Verwenden Sie das Replacement Tool Microsoft DispInvoker, das in der Microsoft Knowledge Base in Artikel Q202057 unter folgender Adresse bereitgestellt wird: http://support.microsoft.com/support/kb/articles/Q202/0/57.asp
  2. Benennen Sie die Java-Methode um oder erstellen Sie eine Java-Ersatzmethode, um die Ziel-Java-Methode aufzurufen. Indem Sie einen Namen wählen, der kein Schlüsselwort von Visual Basic ist, bleibt die Groß- und Kleinschreibung mit größter Wahrscheinlichkeit erhalten.

Defekt 111006.RN: Ungültiger XJBInit()-Parameter (Windows)

Der folgende Fehler wird angezeigt, wenn im Zeichenfolgebereich von XJBInit() ungültige Parameter auftreten:

0x6002 "XJBJNI::Init() konnte VM nicht erstellen" beim Aufruf von XJBInit().

Ist die C++-Protokollfunktion aktiviert, ist der ungültige Parameter im Aktivitätenprotokoll aufgeführt.

Defekt 111009.RN: Aktivieren der Protokollierung und des Trace (Windows)

Die Brücke von ActiveX zu EJB stellt für Protokollierung und Trace zwei Formate bereit: C++ und Java.

C++-Aktivitätenprotokoll
Das C++-Aktivitätenprotokoll enthält JNI-Fehler, Fehlernachrichten der Java-Konsole und XJB-Initialisierungsnachrichten. Diese Protokoll eignet sich am besten zur Ermittlung von XJBInit()-Fehlern und ungewöhnlichen Ausnahmebedingungen, die nicht aus der Java-Umgebung stammen.

Um das C++-Aktivitätenprotokoll aktivieren zu können, muss der CORBA C++-SDK-Client installiert werden. Danach kann die Brücke von ActiveX zu EJB das Vorhandensein des SDK erkennen und die Protokollierung automatisch aktivieren. Einzelheiten zu den Protokolleinstellungen finden Sie im Abschnitt "Corba-Unterstützung > Entwickeln eines C++-CORBA-Servers > Festlegen der Laufzeitmerkmale" im Enterprise Edition InfoCenter.

Standardmäßig wird das Protokoll im Verzeichnis WAS_HOME\Enterprise\service erstellt. Für Serviceprogramme wie Active Server Pages wird das Protokoll im Verzeichnis C:\WINNT\SYSTEM32\service erstellt. Das Standardprotokollverzeichnis kann mit Hilfe der Umgebungsvariablen SOMCBASE geändert werden, die durch launchClientXJB.bat und setupCmdLineXJB.bat im Verzeichnis WAS_HOME\Enterprise\bin festgelegt wird.

Um zum Beispiel die Merkmaldatei zu aktivieren, stellen Sie die Umgebungsvariable SOMCBASE wie folgt ein (für Active Server Pages müssen Sie eine Systemumgebungsvariable verwenden): 

set SOMCBASE= C:\WebSphere\AppClient\Enterprise

Nach dem Neustart der Anwendung wird die Protokolldatei activitycpp.log im Verzeichnis C:\WebSphere\AppClient\Enterprise\service erstellt. Um das Protokoll anzuzeigen, öffnen Sie ein Befehlsfenster, wechseln in das Verzeichnis C:\WebSphere\AppClient\Enterprise\service und geben dann den folgenden Befehl ein: 

launchClientXJB showlogcpp activitycpp.log

Um die Protokollierung zu sperren, sobald das C++-SDK installiert ist, benennen Sie die Datei SOMRSBSM.DLL um, die sich im Verzeichnis WAS_HOME\Enterprise\bin befindet. Beachten Sie, dass das C++-SDK nach dem Umbenennen dieser DLL-Datei nicht mehr verwendet werden kann.

Java-Traceprotokoll
Das Java-Traceprotokoll enthält Informationen, die für das Debug von Methodenaufrufen, von Klassensuchfunktionen und von Problemen bei der Formatumwandlung von Argumenten verwendet werden können. Da der Java-Abschnitt der Brücke die Funktionalität der Schnittstelle COM IDispatch widerspiegelt, ähneln die Informationen im Traceprotokoll denen, die Sie von einer IDispatch-Schnittstelle erwarten. Um das Traceprotokoll verstehen zu können, ist ein grundlegendes Verständnis von IDispatch erforderlich.

Um Benutzerprotokollierung zu aktivieren, fügen Sie dem XJBInit()inputstringarray die folgenden Parameter hinzu: 

"-DtraceString=com.ibm.ws.client.xjb.*=event=enabled"
"-DtraceFile=C:\MyTrace.txt"

Falls z. B. Probleme mit dem folgenden Visual Basic-Code auftreten:

Dim oInt as Object
Dim strHexValue as String
Set oInt = oXJB.FindClass("java.lang.Integer")
strHexValue = oInt.toHexString(24579)

Der sich ergebende Trace für die fehlerhafte Zeile könnte folgendermaßen aussehen:

[01.07.31 11:17:13:815 CDT] 6b2d2635 JDispatch  E dispGetIDsOfNames: Retrieving DISPID
from Method or Field.
          ClassID:-102|ObjectID:0|Name:FindClass|Result DISPID:60
[01.07.31 11:17:13:875 CDT] 6b2d2635 JDispatch  E dispInvoke: Retrieving Member from DISPID
and Arg Types.
          ClassID:-102|ObjectID:0|DISPID:60|Arg Sig:Ljava.lang.String;|Found Member:public
static java.lang.Class com.ibm.ws.client.xjb.JClassFactory.FindClass(java.lang.String)
throws java.lang.Exception
[01.07.31 11:17:13:946 CDT] 6b2d2635 JClassFactory E FindClass complete.
          ClassName:java.lang.Integer|ClassID:-103
[01.07.31 11:17:13:946 CDT] 6b2d2635 JDispatch E dispInvoke: Method.invoke() Succeeded. Result:
class java.lang.Integer
[01.07.31 11:17:13:956 CDT] 6b2d2635 JDispatch E dispGetIDsOfNames: Retrieving DISPID
from Method or Field.
          ClassID:-103|ObjectID:0|Name:toHexString|Result DISPID:115
[01.07.31 11:17:13:986 CDT] 6b2d2635 JDispatch  E dispInvoke: Retrieving Member from DISPID
and Arg Types.
          ClassID:-103|ObjectID:0|DISPID:115|Arg Sig:S|Found Member:NOT FOUND

Es folgt eine Erklärung des obigen Traces:

Zeile 1: dispGetIDsOfNames() wurde für eine interne Klasse (Nr. -102) aufgerufen und sucht nach der Methode FindClass. Es wurde die DISPID (Dispatch-ID) 60 zurückgegeben.
Zeile 2: dispInvoke() wurde für dieselbe interne Klasse (Nr. -102) aufgerufen, um die der DISPID 60 zugeordnete Methode mit der Argumentkennung "Ljava.lang.String;" auszuprobieren und aufzurufen (Die interne Formulierung von Java für java.lang.String. Dies ist das Format der Ausgabe von javap.exe.). Das Member wurde gefunden und seine Definition im Protokoll angezeigt.
Zeile 3: Die Methode FindClass() wurde ausgeführt und gab die ClassID -103 für java.lang.Integer zurück.
Zeile 4: dispInvoke: Gibt die resultierende Klasse java.lang.Integer zurück.
Zeile 5: Die Methode toHexString wurde in dispGetIDsOfNames gefunden und gab die DISPID 115 zurück.
Zeile 6: dispInvoke konnte jedoch das Member mit der DISPID 115 mit der Argumentkennung "S" nicht finden ("S" ist die interne Formulierung von Java für "short").

Argumentkennungen (oder Deskriptoren) werden folgendermaßen definiert:

BaseType Zeichen Typ Interpretation
B byte signiertes Byte
C char Unicodezeichen
D double Gleitkommawert doppelter Genauigkeit
F float Gleitkommawert einfacher Genauigkeit
I int Integer
J long langes Integer
L<classname>; reference eine Instanz der Klasse <classname>
S short kurz mit Vorzeichen
Z boolean true oder false
[ reference eine Feldgruppendimension

Weitere Einzelheiten finden Sie in Kapitel 4.3.2, Felddeskriptoren in der Sun VM Specification unter der Adresse: http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html

Defekt 111010.RN: Pfadschrägstriche in beiden Richtungen (Windows)

Im Mustercode und in der Dokumentation für die Brücke von ActiveX zu EJB werden sowohl der Schrägstrich als auch der umgekehrte Schrägstrich im Java-Verzeichnis und im Verzeichnis WAS_HOME angezeigt. Sowohl Windows NT als auch Windows 2000 können beide Arten von Schrägstrichen behandeln. Zum Beispiel ist der Pfad C:/WebSphere/AppClient\java\jre korrekt.

Defekt 111011.RN: Wie werden Java-System.out-Nachrichten angezeigt (Windows)

In der Brücke von ActiveX zu EJB steht für die Anzeige von Java-System.out-Nachrichten keine Konsole zur Verfügung. Um diese Nachrichten bei aktivem Standalone-Client-Programm (wie Visual Basic) anzeigen zu können, leiten Sie die Ausgabe in eine Datei um. Zum Beispiel starten Sie Ihre Clientanwendung mit Hilfe des folgenden Befehls:

launchClientXJB.bat MyProgram.exe > output.txt

Um diese Nachrichten bei Ausführung eines Serviceprogramms wie Active Server Pages anzeigen zu können, ändern Sie das System.out-Objekt OutputStream von Java in
FileOutputStream. Zum Beispiel würden Sie in VBScript folgendes tun:

' Umleiten von system.out in eine Datei
' Annehmen, dass oXJB ein initialisiertes Objekt XJB.JClassFactory ist
Dim clsSystem
Dim oOS
Dim oPS
Dim oArgs
' Abrufen der Klasse System
Set clsSystem = oXJB.FindClass("java.lang.System")
' Erstellen eines Objekts FileOutputStream
Set oOS = oXJB.NewInstance(oXJB.FindClass("java.io.FileOutputStream"), "c:\sysout.txt")
' Erstellen eines Objekts PrintStream und ihm Ihr FileOutputStream zuordnen
Set oArgs = oXJB.GetArgsContainer
oArgs.AddObject "java.io.OutputStream", oOS
Set oPS = oXJB.NewInstance(oXJB.FindClass("java.io.PrintStream"), oArgs)
' Festlegen von OutputStream des Systems auf die Datei
clsSystem.setOut oPS

Business Rule Beans (BRBeans)

Defekt 110828.RN: Ausführen von BRBeans-Beispielen mit anderen Datenbänken als DB2

Wenn Sie eine andere Datenbank als DB2 mit den BRBeans-Beispielen verwenden (Movie Sample oder Simple Sample), müssen Sie die generierte Datei Table.ddl modifizieren. Genauere Informationen finden Sie im Abschnitt Modifizieren der Datei Table.ddl zur Verwendung von anderen Datenbänken als DB2.

Defekt 114312.RN: Neue BRBeans Jar-Datei zur Unterstützung von Informix Version 7.3.1

Eine neue BRBeans Jar-Datei mit Namen BRBeansInformix731.jar wurde in das Verzeichnis <WAS_HOME>/Enterprise/BRBeans für die Unterstützung von Informix Version 7.3.1 hinzugefügt. Sie müssen diese Jar-Datei verwenden, wenn Sie BRBeans auf einem Server ausführen möchten, der auf eine Informix 7.3.1 Datenbank zugreift. Verwenden Sie für Informix Version 9.2.1 weiterhin die Datei BRBeansInformix.jar.

Um BRBeans auf Informix Version 7.3.1 auszuführen, benötigen Sie ebenfalls einen Fix für Informix Programmfehler Nummer 153465. Dies ist ein Fix für den Informix JDBC-Treiber und ist mit Version 2.21 und höher des Treibers verfügbar. Ohne diesen Fix können BRBeans Enterprise-Beans ihren Status nicht in der Datenbank speichern und BRBeans werden nicht funktionieren.

Defekt 116462.RN: Ignorieren von ejbdeploy-Warnungen

Wenn Auswerten angegeben wurde, werden vier Warnungen bei der Implemetierung von BRBeans angezeigt. Diese Warnungen gelten für createRule. Sie geben an, dass arg1 und der Rückgabetyp serialisierbar sein müssen. Sie können diese Warnungen ignorieren.

Defekt 110956.RN: Das GUI-Regelexportprogramm erzeugt kein korrektes XML-Dokument

Beim Importieren von Regeln aus einem XML-Dokument, das mit Hilfe der Exportfunktion der BRBeans-Anwendung zur Verwaltung von Regeln erstellt wurde, gibt der XML-Parser Fehlernachrichten zurück, die anzeigen, dass das Dokument nicht syntaktisch analysiert werden kann und dass keine Regeln importiert worden sind. Dies tritt nur dann auf, wenn ein mit der Anwendung zur Verwaltung von Regeln (nicht mit dem Befehlszeilendienstprogramm) erstelltes Dokument importiert wird. Die Ursache liegt darin, dass die Exportfunktion der Anwendung zur Verwaltung von Regeln dem exportierten XML-Dokument nicht die richtigen Header- und Trailer-XML-Tags hinzufügt.

Lösungsmöglichkeit: Die folgende Verfahrensweise:

Defekt 109743.1.RN: Programmfehler im Treiber Merant SequeLink

Wegen eines Programmfehlers im JDBC-Treiber Merant SequeLink setzt die Methode clearParameters die Parameter nicht richtig zurück, um die Wiederverwendung vorbereiteter Anweisungen zu ermöglichen.

Lösungsmöglichkeit: Bei Verwendung des Treibers Merant SequeLink mit einer Datenbank sperren Sie die vorbereitete Anweisung, die in der BRBeans-Datenquelle in den Cache gestellt wird, indem Sie die Cache-Größe der Anweisung (Statement Cache Size) auf 0 festlegen. Bei der Verwendung von Advanced Edition ist das Merkmal Cache-Größe der Anweisung eines der Verbindungs-Pooling-Merkmale der Datenquelle. Bei der Verwendung von Advanced Developer Edition ist das Merkmal Cache-Größe der Anweisung eines der Merkmale für die Datenquelle.

Defekt 111105.RN: Base Folder von Auslösepunkten (Trigger Point Base Folder) und abhängige Regeln

Wenn Sie eine Regel, die abhängige Regeln besitzt, an einem Auslösepunkt auslösen, dessen Attribut Base Folder auf einen Wert ungleich Null festgelegt ist, wird eine NullPointerException zurückgegeben.

Lösungsmöglichkeit: Stellen Sie kein Attribut Base Folder eines Auslösepunktes, an dem Regeln mit abhängigen Regeln ausgelöst werden, ein.

Defekt 111371.RN: Netscape startet nicht nach Anforderung von Hilfe (Solaris).

Der Netscape-Browser startet nicht nach der Anforderung von Hilfe über eine Benutzerschnittstelle auf einer Solaris-Plattform.

Lösungsmöglichkeit: Legen Sie eine gültige Ländereinstellung für Ihre Sitzung fest, und inaktivieren Sie die Zugriffssteuerung.

Führen Sie die folgenden Schritte aus, um eine gültige Ländereinstellung festzulegen:

  1. Geben Sie den folgenden Befehl ein, um eine Liste der gültigen Ländereinstellungen für Ihr System anzuzeigen:

    locale -a

  2. Geben Sie folgenden Befehl ein, um eine Ländereinstellung festzulegen, wobei locale eine der gültigen Ländereinstellungen ist:

    export LANG=locale

    Geben Sie Folgendes ein, um die Ländereinstellung beispielsweise auf amerikanisches Englisch festzulegen:

    export LANG=en_US

Geben Sie folgenden Befehl ein, um die Zugriffssteuerung zu inaktivieren:

xhost +

CORBA C++-SDK

Defekt 110529.RN: Installation von C++ SDK-Server

Führen Sie die folgenden Schritte aus, um die Datenbank CDS, die durch C++-Server verwendet wird, und den C++-Location Service-Dämon somorbd zu initialisieren:

  1. Legen Sie unter dem Pfad, der durch die Umgebungsvariable SOMCBASE angegeben wird, das Verzeichnis data an.
  2. Führen Sie das ORB-Dienstprogramm cdspop aus, um die Datenbank CDS, die sich im Verzeichnis SOMCBASE/data befindet, zu initialisieren.

Defekt 111218.RN: RMIC generiert doppelte Getter und Setter

Wenn Sie die aktuelle Version von RMIC mit einer Java-Klasse ausführen, die Getter und Setter enthält, und sind diese Getter und Setter entsprechend der JavaBean-Namenskonventionen benannt, generiert RMIC doppelte Getter und Setter.

Lösungsmöglichkeit: Ändern Sie die Java-Klasse so, dass die Getter und Setter umbenannt werden.

Das folgende Codefragment aus der Java-Klasse "Book" soll als Beispiel dienen:

public class Book implements Serializable
{
private String BookTitle = null;
private double price = 0.0;
private int salesCount;
public Book()
{
salesCount = 0;
}
public void setBookTitle( String name )
{
bookTitle = name;
}
public String getBookTitle()
{
return( bookTitle );
}
...

Der obige Code enthält einen Getter und einen Setter für BookTitle. Getter und Setter folgen der JavaBeans-Namenskonvention: get<var> und set<var>. Dies führt für RMIC zu Fehlern. Die Tatsache, dass die Klassenvariablen als privat deklariert sind, führt dazu, dass RMIC IDL mit einer allgemein zugänglichen Deklaration und mit einer Attributdeklaration für jede Variable generiert, zum Beispiel:

public long a;
attribute long a;

Wird IDLC zum Generieren von Code aus der IDL verwendet, werden für jede Klassenvariable zwei Getter und zwei Setter erstellt, davon die eine allgemein zugänglich und die andere geschützt, und der Code wird nicht kompiliert.

Lösungsmöglichkeit: Benennen Sie die Getter und Setter in der Java-Klasse so um, dass sie der JavaBean-Namenskonvention nicht mehr entsprechen. Es folgt eine Möglichkeit der Nutzung von sendBookTitle und receiveBookTitle:

...
salesCount = 0;
}
public void sendBookTitle( String name )
{
bookTitle = name;
}
public String receiveBookTitle()
...

Defekt 110688.RN: Verweise auf die Bibliothek Valuetype, die einfache Java-Datentypen unterstützt, werden ignoriert

Die Dokumentation der CORBA-Unterstützung im Enterprise Edition InfoCenter sagt aus, dass die Bibliothek Valuetype Implementierungen der C++-Wertetypen für die allgemein gebräuchlichen einfachen Java-Datentypen enthält. Dies ist nicht korrekt.

Die Bibliothek Valuetype unterstützt viele der Basisklassen im Paket java.lang wie Integer, Short und Long. Diese sind nicht mit den einfachen Java-Typen wie short, long und integer gleichzusetzen. In der Liste der in der C++-Bibliothek Valuetype implementierten Methoden im InfoCenter sind die verschiedenen java.lang-Klassen, die bereitgestellt werden, korrekt angegeben. Die Liste der Zuordnungen von IDL-Typen zu CORBA-Typen sollten Sie jedoch ignorieren, da diese Liste für die Bibliothek Valuetype nicht relevant ist.

Defekt 110689.RN: Die Bibliothek Valuetype unterstützt stream- und writer-Wertetypen nicht

Die Methoden printStackTrace(java.io.PrintStream) und printStackTrace(java.io.PrintWriter) von java::lang::Throwable werden in der Bibliothek Valuetype nicht unterstützt, da die Übergabe von Stack-Trace von Java in die C++-Laufzeit Probleme bereitet.

Die konkreten Implementierungen der Argumente zu den printStackTrace-Methoden java.io.PrintStream und java.io.PrintWriter sind nicht vorhanden. Die stream- und writer-Wertetypen in der Bibliothek Valuetype (das sind OutputStream, FilterOutputStream, PrintStream, Writer und PrintWriter) sind abstrakte Klassen, die in Ihren C++-Clientprogrammen nicht als lokale Ausgabedatenströme verwendet werden können.

Defekt 110895.RN: Die Methode Byte_init create__() ist in der Bibliothek Valuetype nicht vorhanden

Die Byte_init-Methode create__() ist in der Bibliothek Valuetype nicht vorhanden. Ignorieren Sie alle Verweise auf diese Methode in der Dokumentation zur CORBA-Unterstützung.

Defekt 111225.RN: Korrekturen zu Befehlen im Abschnitt "Erstellen Ihrer eigenen C++-Wertetypen"

Beachten Sie im InfoCenter-Artikel mit der Überschrift "Erstellen Ihrer eigenen C++-Wertetypen" die Korrekturen zu den folgenden Befehlen:

In Schritt eins lautet der Befehl:

rmic -idl java.util.Hashtable

In Schritt zwei lautet der Befehl:

idlc .... java/util/Hashtable.idl

Extended Messaging Support

Defekt 111034.RN: Herunterladen der neuesten Version von MQSeries supportPac MA88

Um Extended Messaging Support nutzen zu können, laden Sie die neueste Version von MQSeries supportPac MA88 herunter, und installieren Sie sie: MQSeries-Klassen für Java und MQSeries-Klassen für Java Message Service: www.ibm.com/software/ts/mqseries/txppacs/ma88.html

Installieren Sie Version 1.1.3 vom 29.08.2001 oder später.

Defekt 110963.RN: Einschließen von MQSeries Jar-Dateien im Klassenpfad des Custom-Services

Sowohl in der InfoCenter-Dokumentation als auch in der MQSeries-Dokumentation wird vorgeschlagen, Jar-Dateien und Bibliotheksdateien aus der Verzeichnisstruktur unter MQSeries\java in verschiedene WebSphere-Verzeichnisse zu kopieren. Diese Konfiguration ist zwar funktionstüchtig, wird aber aus Gründen der Servicefreundlichkeit nicht empfohlen. Upgrades und Patches zu MQSeries werden nicht wie gewünscht wirksam. Eine geeignetere Methode besteht darin, diese Jar-Dateien im Klassenpfad des Custom-Services für den Service Extended Messaging Support einzuschließen. Die einzuschließenden MQSeries Jar-Dateien sind com.ibm.mq.jar und com.ibm.mqjms.jar.

Falls Sie Advanced Developer Edition (AEd) verwenden, müssen Sie außerdem die Jar-Dateien jedes erforderlichen Namensproviders im Klassenpfad des Ressourcenproviders angeben. Unter Defekt 106821.RN finden Sie dazu weitere Informationen.

Defekt 106821.RN: Konfigurieren von Extended Messaging Support mit AEd

Da Advanced Edition for Developers (AEd) keinen persistenten Namespace bereitstellt, müssen Sie beim Konfigurieren von Extended Messaging Support mit AEd einen zweiten Namensprovider verwenden.

Lösungsmöglichkeit: Führen Sie die folgenden Schritte aus, um den Provider des Dateisystems als zweiten Namensprovider zu konfigurieren:

Hinweis: Der Namensprovider des Dateisystems nutzt das Systemmerkmal "file.separator" als Separator. Achten Sie auf Windows-Plattformen darauf, dass ein Name, der normalerweise jms/mq/Destination lautet, als jms\mq\Destination erscheint. Möglicherweise muss der einzelne Backslash (\) durch zwei Backslashes (\\) ersetzt werden.

  1. Editieren Sie Ihre Datei JMSAdmin.config.
  2. Ändern Sie den Provider in FSContext, und ändern Sie den Provider-URL entsprechend.
  3. Legen Sie das Verzeichnis C:\temp\JNDI-Directory an.
  4. Führen Sie JMSAdmin.bat aus, und binden Sie Ihre ConnectionFactories und Warteschlangen/Abschnitte (Queues/Topics) wie gewohnt.
  5. Erstellen Sie eine Referenz nach außen in den Namespace von WebSphere zum Namespace des Dateisystems wir folgt:
    1. Öffnen Sie die Administrationskonsole in einem Webbrowser (http://localhost:9090/admin).
    2. Durchsuchen Sie die Baumstruktur nach Ressourcen > JMS-Provider.
    3. Klicken Sie auf Neu, und geben Sie die folgenden Werte an:
      • Klassenpfad des Servers:

        MQSeriesInstallDir\java\lib\fscontext.jar;
        MQSeriesInstallDir\java\lib\providerutil.jar;

      • Name: MQFscontextProvider
      • Kontext-Factory: com.sun.jndi.fscontext.RefFSContextFactory
      • Provider-URL: file:/C:/temp/JNDI-Directory
    4. Klicken Sie auf OK, um die Änderungen zum Provider zu sichern.
  6. Heben Sie die Komprimierung des erstellten JMS-Providers auf, und fügen Sie Ihre Zieladresse und Ihre Verbindungs-Factory hinzu. Dadurch werden Referenzen aus dem Namespace von WebSphere in den Namespace des Dateisystems angelegt. Verwenden Sie dieselben Namen, die Sie für den Befehl JMSAdmin angegeben haben. Beispiel:

    Verbindungs-Factory:

    Name: ConnectionFactory
    JNDI-Name: Sample/JMS/ConnectionFactory
    Fremder JNDI-Name (Windows): Sample\JMS\ConnectionFactory
    Fremder JNDI-Name (Unix): Sample/JMS/ConnectionFactory

    Zieladresse:

    Name: Q1
    JNDI-Name: Sample/JMS/Q1
    Fremder JNDI-Name (Windows): Sample\JMS\Q1
    Fremder JNDI-Name (Unix): Sample/JMS/Q1

  7. Sichern Sie Ihre Konfiguration.
  8. Starten Sie den Anwendungsserver neu.

Defekt 116467.RN: Nachrichtenbroker wird nicht initialisiert (Linux SuSE Version 7.2)

Wenn Sie MQSeries auf Linux SuSE Version 7.2 ausführen, wird die Initialisierung des Nachrichtenbrokers nicht beendet, nachdem Sie den Startbefehl eingegeben haben: strmqbrk -m <Queue Manager>. Sie können den Befehl durch Drücken von Strg+C nicht unterbrechen. Wenn Sie den Status des Nachrichtenbrokers mit dem Befehl dspmqbrk überprüfen, ist das Ergebnis weiterhin "MQSeries Nachrichtenbroker für Warteschlangenmanager <Warteschlangenmanager> starten."

Es gibt keine Lösungsmöglichkeit und Sie können deshalb keine Anwendungen von WebSphere ausführen, die Veröffentlichen/Subskribieren unter Linux SuSE Version 7.2 verwenden.

Defekt 115709: Fehler MQJMS1086 bei Senden oder Veröffentlichen einer Nachricht (HP-UX) ausgelöst

Die mit WebSphere auf HP-UX gelieferte JVM unterstützt nicht die von den Warteschlangen von MQSeries verwendete Codierung. Dies führt dazu, dass die JMS-Klassen eine JMS-Ausnahme mit einem Fehlercode von MQJMS1086 und die verbundene Ausnahmebedingung des Typs UnsupportedEncodingException auslösen, wenn Sie versuchen, eine Nachricht an eine Warteschlange zu senden oder zu veröffentlichen.

Lösungsmöglichkeit: Ändern Sie die vom Wartenschlangenmanager verwendete Codierung. Setzen Sie den CCSID-Wert auf 850 oder 819, indem Sie folgende Befehle eingeben:

runmqsc
alter qmgr CCSID(850)

Weitere Informationen dazu finden Sie im Buch MQSeries, Using Java in Kapitel 2.

Defekt 111014.RN: Verwendung von InitialContextFactory mit dem Tool JMSAdmin

Das mit MQSeries supportPac MA88 gelieferte Tool JMSAdmin zum Verwalten von JMS-Objekten erfordert die Festlegung bestimmter Konfigurationsparameter. Für das Factory-Merkmal Anfangskontext gibt es zurzeit drei unterstützte Werte:

com.ibm.ejs.ns.jndi.CNInitialContextFactory in WebSphere Application Server ist veraltet. Sie sollten stattdessen com.ibm.websphere.naming.WsnInitialContextFactory verwenden. Damit JMSAdmin mit der Namens-Repository von WebSphere zusammenarbeiten kann, ist com.ibm.ejs.ns.jndi.CNInitialContextFactory aber noch notwendig. Die Objekte von WebSphere Application Server und die verwalteten JMS-Objekte können mit diesen unterschiedlichen Werten für das Factory-Merkmal Anfangskontext zusammenarbeiten.

Defekt 114590: Kein mqjbnd02 in Java-Bibliothekspfad (nur AIX)

Enthält die Umgebungsvariable LIBPATH nicht den Pfad zu Ihrer MQSeries-Java-Bibliothek, wird die folgende Ausnahmebedingung ausgelöst:

Ausnahmebedingung:
no mqjbnd02 (libmqjbnd02.a or .so) in java.library.path
java.lang.UnsatisfiedLinkError: no mqjbnd02 (libmqjbnd02.a or .so) in java.library.path

Lösungsmöglichkeit: Fügen Sie den folgenden Pfad in Ihre Umgebungsvariable LIBPATH ein:

/mq_install_path/java/lib

Defekt 114907: Verbindung mit Warteschlangenmanager von MQSeries nicht möglich (AIX)

Wenn Sie MQSeries über den WebSphere Application Server verwenden, kann die Erstellung einer JMS QueueConnection oder eines WMQ MQQueueManagers mit dem WMQ-Ursachencode 2059 fehlschlagen, auch wenn der Warteschlangenmanager aktiv ist. Dies geschieht, weil WebSphere Verbindungen zum Warteschlangenmanager verwendet, die eine gesonderte Konfiguration erfordern.

Lösungsmöglichkeit: Wenn Sie MQSeries V5.2 verwenden, können Sie eine zusätzliche Zeilengruppe in die mqs.ini hinzufügen, die den Teil des gemeinsam benutzten Speichers beeinflusst, den MQSeries bei der Herstellung der Verbindung verwendet (Die Datei mqs.ini befindet sich normalerweise im Verzeichnis /var/mqm). Der Parameter ist "IPCCBaseAddress". Er wird pro Warteschlangenmanager festgelegt. Standardmäßig wird dieser Parameter auf den Wert "8" festgelegt, es wird jedoch der Wert "11" empfohlen (zulässige Werte für diesen Parameter sind "4", "5", "8", "9", "10", "11" oder "12").

Es folgt ein Beispiel für eine geänderte Zeilengruppe des Warteschlangenmanagers in der Datei mqs.ini:

QueueManager:
Name=MQJavaTest
Prefix=/var/mqm
IPCCBaseAddress=11

Der Warteschlangenmanager muss erneut gestartet werden, damit die Änderungen gültig werden. Wenn die Anwendung mit dem Wert "11" keine normale Verbindung herstellen kann, probieren Sie die anderen Werte aus. Je mehr Komponenten in der Anwendung enthalten sind (WebSphere, DB2 und so weiter), desto weniger Speicher steht für MQSeries zur Verfügung.

Auf der folgenden Website finden Sie die neusten Informationen zu diesem Fehler:

http://www.ibm.com/software/ts/mqseries/support/summary/javasupp.html

Dieser Fehler tritt nicht auf, wenn die Anwendungsdatenbank und die Administrationsdatenbank ferne Datenbanken sind.

Defekt 106667.RN: Der Anwendungsserver kann nach dem Stopp des Warteschlangenmanagers von MQSeries nicht gestoppt werden

Beim Versuch, nach dem Stopp eines Warteschlangenmanagers von MQSeries den Anwendungsserver zu stoppen, löst der Serverprozess in java.exe einen ungültigen Zugriff aus. Dies geschieht, wenn Extended Messaging Support im Server konfiguriert wurde und an einer MQSeries-JMS-Zieladresse empfangsbereit ist.

Lösungsmöglichkeit: Stoppen Sie bei der Verwendung von Extended Messaging Support den Warteschlangenmanager von MQSeries nicht vor dem Anwendungsserver. Falls ein abnormaler Fehler zum Stopp des Warteschlangenmanagers führt, führen Sie in der Administrationskonsole einen erzwungenen Stopp des Anwendungsservers durch.

Defekt 116061.RN: Warteschlangenmanager von MQSeries kann nicht erneut gestartet werden

Der Versuch, den Warteschlangenmanager von MQSeries zu stoppen und erneut zu starten, löst den folgenden Fehler aus:

AMQ8041: Der Warteschlangenmanager kann nicht erneut gestartet oder gelöscht werden, denn die zuvor verbundenen Prozesse sind noch aktiv.

Lösungsmöglichkeit: Starten Sie MQSeries und WebSphere Application Server erneut.

Ein Fix für dieses Problem ist für MQSeries Version 5.2 CSD 3 geplant. Aktualisierungen finden Sie auf der Unterstützungsseite von MQSeries:

http://www.ibm.com/software/ts/mqseries

Defekt 106907.RN: Ausnahmebedingung ClassDefNotFound beim Empfang einer javax.jms.ObjectMessage

Beim Empfang einer javax.jms.ObjectMessage in einem durch die Listener-Funktion JMS gesteuerten Nachrichten-Bean wird beim Aufruf von getObject() für die JMS ObjectMessage gelegentlich die Ausnahmebedingung ClassDefNotFound zurückgegeben. Diese Ausnahmebedingung tritt auf, wenn die Anwendungsklasse innerhalb von ObjectMessage nicht geladen werden kann, da sie im Enterprise-Bean-Classloader und nicht im Systemklassenpfad gefunden wurde.

Lösungsmöglichkeit: Bringen Sie die Objektklassendefinition im Klassenpfad ws.ext.dirs unter, indem Sie die JAR-Datei in das Verzeichnis \WebSphere\AppServer\lib\ext kopieren.

Defekt 109440.RN: Fehler bei Teilnehmern mit JMS-Listener-Funktionen auf mehreren Servern

Falls Sie zwei WebSphere-Anwendungsserver mit JMS-Listener-Funktionen konfigurieren, die die Teilnehmerberechtigung für JMS-Themen unter Verwendung derselben MQ-JMS-Subskriptionswarteschlange besitzen, können manchmal Veröffentlichungen verloren gehen oder auf der Konsole erscheint die folgende Fehlernachricht:

MQJMS1031: Es ist ein interner Fehler aufgetreten

Dies tritt auf, da die MQSeries JMS Pub/Sub-Unterstützung erfordert, dass jeder JVM-Teilnehmer eine andere Subskriptionswarteschlange benutzt.

Lösungsmöglichkeit: Wenn Sie JMSAdmin verwenden, um Ihre TopicConnectionFactory zu erstellen, geben Sie entweder eindeutige Namen für die Subskriptionswarteschlangen für BROKERCCSUBQ() an, oder nutzen Sie das Tool für mehrere Warteschlangen, indem Sie ein Präfix angeben, z. B. BROKERCCSUBQ(SYSTEM.JMS.ND.CC.MySubQueues.*).

Internationalization Service

Defekt 110993.RN: Behandlung nicht unterstützter Zeitzonen

In diesem Release unterstützt der Internationalization Service die Zeitzonentypen des Java 2-SDK außerhalb von java.util.SimpleTimeZone nicht. Nicht unterstützte TimeZone-Typen werden bei ihrer Übergabe an API-Methoden der standardmäßig vorgegebenen SimpleTimeZone zugeordnet. Dies hat die folgenden Auswirkungen:

Probleme mit der Landessprache

Defekt 114777: Nichtenglische Readme-Datei kann nicht geöffnet werden (nur HP-UX)

Für HP-UX Version 11.11 steht nur die Version mit englischer Ländereinstellung von Netscape als Standardanwendung zur Verfügung. Wenn Sie eine nichtenglische Installation von WebSphere Application Server beenden, kann die Readme-Datei aus diesem Grund nicht geöffnet werden.

Lösungsmöglichkeit: Geben Sie über eine Eingabeaufforderung den folgenden Befehl ein, um die Readme-Datei zu öffnen:

netscape [WAS_HOME]/Enterprise/readme/xx_XX/readme.htm

wobei xx_XX für eine der folgenden Landessprachen steht:

de_DE Deutsch
en_US Englisch
es_ES Spanisch
fr_FR Französisch
it_IT Italienisch
ja_JP Japanisch
ko_KR Koreanisch
pt_BR brasilianisches Portugiesisch
zh_CN vereinfachtes Chinesisch
zh_TW traditionelles Chinesisch

Defekt 111350.RN: Zeichen im DOS-Fenster beschädigt (Windows)

Bei der Ausführung von Befehlen in einem DOS-Fenster sind einige Zeichen in den Ausgabenachrichten beschädigt.

Lösungsmöglichkeit: Leiten Sie den DOS-Befehl in eine Ausgabedatei um, und zeigen Sie diese Ausgabedatei mit Hilfe des Editors Write von Windows an.