Tipps zur Fehlerbehebung bei busfähigen Web-Services

Verwenden Sie die folgenden spezifischen Tipps für die Behebung von Problemen, die bei SIB-fähigen Web-Services auftreten können.

[z/OS]Verwenden Sie zum Identifizieren und Beheben von Problemen, die sich auf busfähige Web-Services beziehen, die Trace- und Protokollierungsfunktionen von WebSphere Application Server gemäß der Beschreibung im Artikel Komponententrace (CTRACE) konfigurieren.

Wenn Sie die Traceerstellung für busfähige Web-Services aktivieren möchten, setzen Sie die Tracezeichenfolge des Anwendungsservers auf com.ibm.ws.sib.webservices.*=all=enabled. Wenn ein Problem auftritt, dass sich Ihrer Meinung nach auf busfähige Web-Services bezieht, können Sie in der Administrationskonsole von WebSphere Application Server und in der Datei SystemOut.log des Anwendungsservers prüfen, ob Fehlernachrichten vorhanden sind. Sie können auch den Debug-Trace des Anwendungsservers aktivieren, um einen ausführlichen Ausnahmespeicherauszug zu erhalten.

Eine Liste der wichtigsten bekannten Einschränkungen bei der Verwendung von busfähigen Web-Services finden Sie im Artikel Busfähige Web-Services: Bekannte Einschränkungen.

Systemnachrichten von WebSphere Application Server werden von vielen Quellen, einschließlich Komponenten und Anwendungen des Anwendungsservers, protokolliert. Nachrichten, die von Komponenten des Anwendungsservers sowie zugeordneten IBM Produkten protokolliert werden, beginnen mit einer eindeutigen Nachrichten-ID, die die Komponente oder Anwendung anzeigt, welche die Nachricht ausgegeben hat. Das Präfix für die busfähigen Web-Services ist CWSWS.

Der Artikel Nachrichten enthält Informationen zu allen Nachrichten von WebSphere Application Server, die nach Nachrichtenpräfix indexiert sind. Zu jeder Nachricht finden Sie eine Beschreibung und die empfohlenen Maßnahmen zur Behebung des Fehlers.

Tipps, die sich nicht auf die Sicherheit beziehen:

Busfähige Web-Services können keine Verbindung zu einem sicheren Service Integration Bus herstellen

Wenn die Komponente für busfähige Web-Services keine Verbindung zu einem sicheren Bus herstellen können, wird die folgende Fehlernachricht während des Serverstarts (in der Anwendungsserverdatei SystemOut.log) ausgegeben, wenn der Serviceintegrationsressourcenadapter versucht, eine Verbindung zum Busziel herzustellen:
CWSIV0801E: Die Ausnahme javax.resource.ResourceException:
CWSIV0958E: Die Berechtigungsausnahme
com.ibm.wsspi.sib.core.exception.SINotAuthorizedException: 
(CWSIP0302E: Der Benutzer HostServer ist nicht berechtigt, auf die Messaging-Engine
xyzNode01.server1-xyz im Bus xyz zuzugreifen.) wurde beim Versuch ausgelöst,
eine Verbindung zur Messaging-Engine 221C86B845BE5E8B mit der Aktivierungsspezifikation
[<activation_specification_field_trace>] herzustellen.)
wurde beim Herstellen einer Verbindung zur Messaging-Engine
xyzNode01.server1-xyz im Bus xyz ausgelöst.

Die Komponente für busfähige Web-Services kann über den Serviceintegrationsressourcenadapter eine Verbindung zu einem sicheren Busziel herstellen. Daher muss die Konfiguration geändert worden sein.

Die Standardkonfiguration, die busfähigen Web-Services für den Zugriff auf einen sicheren Bus verwendet, ist wie folgt:
  • Der Zugriff auf einen Bus ist über die Rolle Bus-Connector konfiguriert. Standardmäßig enthält jede Rolle "Bus-Connector" eine Gruppe mit dem Namen server. Member dieser Gruppe sind berechtigt, eine Verbindung zum Bus herzustellen.
  • Der Ressourcenadapter der Serviceintegration verwendet eine J2C-Aktivierungsspezifikation, um mit dem Bus zu kommunizieren. Standardmäßig hat diese Aktivierungsspezifikation eine angepasste boolesche Eigenschaft mit dem Namen useServerSubject, das auf true gesetzt ist. Diese Eigenschaft ermöglicht dem Ressourcenadapter der Serviceintegration, als Subjekt (Member) der Gruppe "server" eine Verbindung zum Bus herzustellen.

Sie können diese Standardkonfiguration überschreiben, indem Sie einen Authentifizierungsalias definieren, den der Ressourcenadapter der Serviceintegration für den Zugriff auf den Bus verwendet. Weitere Informationen hierzu finden Sie im Artikel Standardsicherheitskonfiguration zwischen busfähigen Web-Services und einem sicheren Bus überschreiben.

Ausführliche Informationen zur Standardkonfiguration und eine Beschreibung Auswirkungen, die das Ändern oder Überschreiben dieser Konfiguration hat, finden Sie im Artikel Standardkonfiguration busfähiger Web-Services für den Zugriff auf einen sicheren Bus.

Zum Eingrenzen des Problembereichs setzen Sie die Tracezeichenfolge des Anwendungsservers auf com.ibm.ws.sib.webservices.*=all=enabled, weil die Ursache des Problems auf mehrere Komponenten zurückgeführt werden kann. Überprüfen Sie im Trace die Methode SibRaMessagingEngineConnection.createConnection():
  • Die Angabe Creating connection with Userid and password (Verbindung wird mit Benutzer-ID und Kennwort erstellt) weist darauf hin, dass das System einen Authentifizierungsaliasnamen gefunden hat, der für die J2C-Aktivierungsspezifikation konfiguriert ist, und nun versucht, diesen zu verwenden.
  • Die Angabe No userid/password passed. Creating connection using server subject (Keine Benutzer-ID oder kein Kennwort übergeben. Verbindung wird über Serversubjekt erstellt) gibt an, dass das System das Serversubjekt gefunden hat und versucht, es zu verwenden.

Im Service Integration Bus tritt eine Zeitlimitüberschreitung auf, wenn ein Service für abgehende Anforderungen auf die Antwort eines Zielservice wartet

Der folgende Fehler kann im Service Integration Bus auftreten, wenn ein Service für abgehende Daten auf eine Antwort von einem Ziel-Web-Service wartet:
java.net.SocketTimeoutException: Socket operation timed out before it could be completed

Das Standardzeitlimit sind 60 Sekunden. Dieser Fehler tritt also auf, wenn der Ziel-Web-Service für seine Antwort mehr als 60 Sekunden benötigt. Sie können das Zeitlimit erhöhen, indem Sie die angepasste Eigenschaft timeout für den Port für eingehende Anforderungen gemäß der Beschreibung im Artikel Ports für eingehende Daten [Einstellungen] setzen.

Eine busfähige Web-Service-Anwendung oder Ressource muss manuell installiert werden

Die folgenden busfähigen Web-Service-Anwendungen und -Ressourcen werden automatisch installiert, wenn sie das erste Mal benötigt werden:
  • die busfähige Web-Service-Anwendung (die Anwendung, mit der Sie Web-Services konfigurieren und über einen Service Integration Bus aufrufen können),
  • der Ressourcenadapter der Serviceintegrationstechnologien, der zum Aufrufen von Web-Services an Ports für abgehende Daten verwendet wird,
  • die Endpunktlisteneranwendungen (zum Aktivieren der Punkte, an denen Nachrichten für Services für eingehende Daten empfangen werden).
Eine Endpunktlisteneranwendung wird beispielsweise beim Erstellen einer neuen Endpunktlistenerkonfiguration installiert.

Wenn Sie eine dieser Anwendungen jedoch manuell installieren müssen, können Sie dazu das bereitgestellte Script sibwsInstall.jacl verwenden und die Anweisungen im folgenden Artikel zu WebSphere Application Server Version 6.0.x befolgen: Busfähige Web-Service-Anwendungen und -Ressourcen installieren

Clientanwendung funktioniert unter WebSphere Application Server Version 5.1, in späteren Versionen treten jedoch Fehler auf

Sie haben eine Clientanwendung, die in WebSphere Application Server Version 5.1 funktioniert, aber in höhere Versionen treten jedoch Fehler aufgrund nicht korrekt formatierter Anforderungen oder Antworten auf.

Busfähige Web-Services prüfen die Gültigkeit von Web-Service-Nachrichten gründlicher, als es in WebSphere Application Server Version 5.1 der Fall ist. Deshalb werden einige Clientanwendungen, die nicht korrekt formatierte Anforderungen oder Antworten verwenden (in denen die Nachrichtenabschnitte falsch benannt sind) und in Version 5.1 funktionieren, in höheren Versionen als nicht korrekt formatiert eingestuft. Die Schritte, die zur Behebung dieses Problems ausgeführt werden müssen, sind im Artikel Duldung nicht korrekt formatierter SOAP-Nachrichten beschrieben.

Wenn ein JAX-RPC-Client, der in WebSphere Application Server Version 5.1 ausgeführt wird, SOAP over JMS verwendet, um einen Web-Service aufzurufen, tritt ein Fehler auf

Ein JAX-RPC-Client, der in WebSphere Application Server Version 5.1 ausgeführt wird, verwendet SOAP over JMS, um einen Web-Service aufzurufen, der in einem Anwendungsserver der Version 5 ausgeführt wird. Für die MQ-Series-Zielwarteschlange sind weder Benutzer-ID noch Kennwort erforderlich. Wenn Sie den Anwendungsserver auf eine höhere Version migriert haben und jetzt das Standardmessaging verwenden, schlagen Clientanforderungen fehl, weil die Basisauthentifizierung jetzt aktiviert ist.

Der Fehler wird als Protokollnachricht aufgezeichnet:
SibMessage    W   [:] CWSIT0009W: Der Versuch eines Clients, eine Verbindung zum Bus <Busname>
herzustellen, ist im Bootstrap-Server mit dem Endpunkt <Endpunktname> fehlgeschlagen. Ursache: CWSIT0016E:
Die Benutzer-ID null konnte in Bus Ihr_Bus nicht authentifiziert werden. 

Informationen zur Behebung dieses Problems finden Sie im folgenden Fehlerbehebungstipp zu den Serviceintegrationstechnologien: Anwendungsserver der Version 5.1 auf WebSphere Application Server Version 7.0 oder höher migrieren

Versuch, eine Informix-Datenbank für das SDO-Repository zu erstellen, war nicht erfolgreich

Sie versuchen vergeblich, eine Informix-Datenbank für das SDO-Repository zu erstellen, und erhalten die Nachricht No Transaction Isolation on non-logging databases.

Wenn die Nachricht No Transaction Isolation on non-logging databases im Rahmen einer Ausnahmenachricht angezeigt wird, ist die Protokollierung in der zu verwendeten Informix-Datenbank inaktiviert. Wenn Sie eine Informix-Datenbank für das SDO-Repository verwenden möchten, müssen Sie die Protokollierung aktivieren.

Der vollständige Ausnahmetext lautet wie folgt:
javax.transaction.TransactionRolledbackException: 
CORBA TRANSACTION_ROLLEDBACK 0x0 No; 
nested exception is:
org.omg.CORBA.TRANSACTION_ROLLEDBACK: 
javax.transaction.TransactionRolledbackException:  ; 
nested exception is:
javax.ejb.TransactionRolledbackLocalException:  ; 
nested exception is: 
com.ibm.ws.ejbpersistence.utilpm.PersistenceManagerException:
PMGR1013E: Exception occurred when verifying current backend id 
INFORMIX_V94: javax.resource.spi.ResourceAllocationException: 
DSRA0080E: Vom Data Store Adapter wurde eine Ausnahme empfangen. 
Sehen Sie sich die ursprüngliche Ausnahmenachricht an:
No Transaction Isolation on non-logging dbs., error code: 
DSA_ERROR, error code: DSA_ERROR vmcid: 0x0  minor code: 0  
completed: No
Die Protokollierung ist standardmäßig inaktiviert. Deshalb löst die Datenbankanweisung CREATE DATABASE SDOREP; zur Laufzeit eine Ausnahme aus. Verwenden Sie beim Erstellen der Datenbank die folgenden Datenbankanweisungen:
  • CREATE DATABASE SDOREP WITH LOG;
  • CREATE DATABASE SDOREP WITH BUFFERED LOG:
  • CREATE DATABASE SDOREP WITH LOG MODE ANSI;

Eingehender Service, der in einer UDDI-Registry veröffentlicht wird, ist nicht aufgelistet, und die erneute Veröffentlichung ist nicht erfolgreich

Sie haben einen Service für eingehende Daten, der laut Administrationskonsole in einer UDDI-Registry veröffentlicht ist. Beim Überprüfen der UDDI-Registry stellen Sie fest, dass der Service dort nicht aufgelistet ist. Wenn Sie versuchen, den Service über die Administrationskonsole in UDDI erneut zu veröffentlichen, ist dieser Versuch nicht erfolgreich.

Der Service wurde in der UDDI-Registry veröffentlicht, und die in der Administrationskonsole von WebSphere Application Server angezeigte Servicekonfiguration enthält einen UDDI-Serviceschlüssel, aber die Veröffentlichung des Service wurde anschließend aus UDDI entfernt, ohne die entsprechende Aktualisierung in der Masterkonfiguration von WebSphere Application Server nachzuvollziehen. Eine solche Situation kann eintreten, wenn Sie mit der Administrationskonsole einen Service für eingehende Daten löschen, der in einer UDDI-Registry veröffentlicht wurde, und sich anschließend von der Administrationskonsole abmelden, ohne die Änderungen zu speichern. In diesem Fall wird die Veröffentlichung des Service aus der UDDI-Registry entfernt, aber nicht aus WebSphere Application Server gelöscht (weil die Löschanforderung nicht bestätigt ist und deshalb nicht angewendet wird).

Zum Aktualisieren der Servicekonfigurationsdaten und erneutem Veröffentlichen des Service in UDDI führen Sie in der Administrationskonsole die folgenden Schritte aus:
  1. Klicken Sie im Navigationsfenster auf Serviceintegration -> Busse -> Busname -> [Services] Services für eingehende Daten -> Servicename. Die aktuellen Einstellungen für diesen Service für eingehende Daten werden angezeigt.
  2. Klicken Sie auf WSDL-Schablone erneut laden und speichern Sie die Änderungen.
  3. Klicken Sie auf Veröffentlichung aus UDDI entfernen und speichern Sie die Änderungen.
  4. Klicken Sie auf In UDDI veröffentlichen und speichern Sie die Änderungen.
Der Service wird erneut veröffentlicht und in der UDDI-Registry erneut instanziiert.

WSDL muss über die Befehlszeile abgerufen werden, damit der Bus zum Abrufen von WSDL-Dokumenten Nachrichten über einen authentifizierenden Proxy-Server übergeben kann

Wenn der Bus Nachrichten über einen authentifizierenden Proxy-Server übergeben muss, um WSDL-Dokumente abzurufen, müssen Sie hierfür Befehlszeilentools verwenden.

Sie können weder in den Anzeigen der Administrationskonsole für das Erstellen neuer Web-Service-Konfigurationen noch mit der Schaltfläche WSDL erneut laden in den Anzeigen für das Ändern vorhandener Web-Service-Konfigurationen einen J2C-Authentifizierungsalias für das Abrufen von WSDL-Dokumenten eingeben. Wenn Sie Services für eingehende und abgehende Daten erstellen oder ändern und der Bus für den Abruf von WSDL-Dokumenten Nachrichten über einen authentifizierenden Proxy-Server übergeben muss, müssen Sie eines der folgenden Befehlszeilentools verwenden, um die WSDL abzurufen:

Bei der Verwendung von JMS für die Verbindungsherstellung zu einem fernen Bus ist eine zusätzliche Konfiguration erforderlich, um Web-Service-Clients die Verbindungsherstellung zum Bus zu ermöglichen

Bei der Verwendung von JMS für die Verbindungsherstellung zu einem fernen Bus ist eine zusätzliche Konfiguration erforderlich, um Web-Service-Clients die Verbindungsherstellung zum Bus zu ermöglichen.

Eine Web-Service-Clientanwendung, die in einem Server ausgeführt wird, der Member eines Busses ist, kann eine Messaging-Engine in diesem Bus suchen. Eine Web-Service-Clientanwendung, die nicht in einem Anwendungsserver ausgeführt wird, sondern beispielsweise außerhalb der Umgebung von WebSphere Application Server, kann keine direkte Verbindung zu einer geeigneten Messaging-Engine im Zielbus herstellen. Dies gilt auch für Web-Service-Clientanwendungen, die in einem Server in einer Zelle ausgeführt werden und eine Verbindung zu einem Zielbus in einer anderen Zelle herstellen müssen.

Damit die Eine Web-Service-Clientanwendung eine Verbindung zu einer Ziel-Messaging-Engine in einem fernen Bus aufnehmen kann, müssen Sie die vom Client verwendete JMS-Verbindungsfactory so konfigurieren, dass der Client eine Verbindung zu einer Bootstrap-Messaging-Engine im fernen Bus aufbauen kann. Die Bootstrap-Messaging-Engine identifiziert die Zielengine und gibt die erforderlichen Informationen für den Zugriff auf die Zielengines zurück an den Client. Damit der Bootstrapprozess ausgeführt werden kann, müssen Sie einen oder mehrere Providerendpunkte in der vom Client verwendeten Verbindungsfactory konfigurieren. Weitere Informationen finden Sie im Artikel Verbindung zu einem vom Standard abweichenden Bootstrap-Server konfigurieren.

Fehler aufgrund abnormaler Speicherbedingungen in JVM bei der Übergabe eines großen Anhangs über den Service Integration Bus

Sie übergeben einen großen Anhang über den Service Integration Bus und empfangen einen Fehler aufgrund abnormaler Speicherbedingungen auf der Java Virtual Machine.

Wenn dieser Fehler auftritt, müssen Sie den Heapspeicher, wie im Artikel Busfähige Web-Services optimieren beschrieben, vergrößern.

Fehler beim Versuch, eine neue Endpunktlistenerkonfiguration über die Administrationskonsole zu erstellen

Wenn Sie versuchen, eine neue Endpunktlistenerkonfiguration über die Administrationskonsole zu erstellen, und anschließend in der Anzeige "Endpunktlistener" auf Neu klicken, wird das Symbol "Bitte warten" angezeigt, aber die Zielanzeige erscheint nicht.

Dieses Problem tritt nur in älteren Versionen des Web-Browser Mozilla auf. Führen Sie einen Upgrade des Browser auf Version 1.4 oder höher durch. Sie können dieses Problem umgehen, indem Sie ein zweites Mal auf Neu klicken. Danach erscheint die Zielanzeige.

Fehler beim Versuch, einen neuen Service für eingehende Daten über die Administrationskonsole zu erstellen

Wenn Sie versuchen, einen neuen Service für eingehende Daten über die Administrationskonsole zu erstellen, ist die Dropdown-Liste der Ziele leer, und der Assistent hält bei Schritt 1 mit der Fehlernachricht Es muss ein Ziel ausgewählt werden an.

Dieses Problem kann nur auftreten, wenn keine Messaging-Engine im Service Integration Bus vorhanden ist, in dem Sie den Service für eingehende Daten erstellen. Erstellen Sie eine Messaging-Engine, und erstellen Sie anschließend ein Serviceziel. Führen Sie anschließend den Assistenten erneut aus, um eine neue Servicekonfiguration für eingehende Daten zu erstellen.

Fehler des Typs "Malformed URLException" beim Versuch, eine SOAP-over-HTTPS-Nachricht zu senden

Wenn Sie versuchen, eine SOAP-over-HTTPS-Nachricht zu senden, erhalten Sie einen Fehler des Typs "Malformed URLException".

Die Serviceintegrationstechnologien können externe Web-Services, die https:// in der Adresse enthalten, mit SSL aufrufen. Nähere Informationen hierzu finden Sie im Artikel Services für abgehende Daten mit HTTPS aufrufen.

JNDI-Lookup-Fehler treten auf, wenn JMS-Ressourcen auf verschiedenen Maschinen identische Namen haben

Sie empfangen JNDI-Lookup-Fehler, wenn Sie dieselben Namen für JMS-Messaging-Warteschlangen und Warteschlangenverbindungsfactorys verwenden, die in Anwendungsservern auf unterschiedlichen Maschinen ausgeführt werden.

Sie sollten für Messaging-Warteschlangen und Warteschlangenverbindungsfactorys, die in Anwendungsservern verschiedener Maschinen ausgeführt werden, nicht denselben Namen verwenden, da die Serviceintegrationstechnologien immer zuerst lokal nach JMS-Zieladressen suchen und die vollständige JNDI-Referenz nur verwenden, wenn die Zieladresse lokal nicht ermitteln werden kann. Wenn Sie einen Web-Service auf einer fernen Maschine als Service für abgehende Daten konfigurieren und dieselben Namen für Messaging-Warteschlangen und Verbindungsfactorys für Warteschlangen auf der fernen Maschine und auf der Maschine verwenden, auf der Sie den Service für abgehende Daten erstellen, finden und verwenden die Serviceintegrationstechnologien die lokalen Warteschlangen auch dann, wenn das ferne JNDI-Ziel vollständig in der WSDL-Servicedefinition angegeben ist.

Fehler bei Installation der Datei sibwsauthbean.ear

Sie schützen eine Web-Service-Operation mit einem Kennwort, aber wenn Sie die Datei sibwsauthbean.ear installieren, wird eine Fehlernachricht in der Administrationskonsole von WebSphere Application Server angezeigt, in der das JNDI-Problem (Java Naming and Directory Interface) ausführlich beschrieben ist.

Wenn Sie eine Web-Service-Operation durch ein Kennwort schützen, müssen Sie im Feld "EJB-Referenzen" für die Berechtigungs-Session-Bean den korrekten JNDI-Namen der importierten Web-Service-EJB eingeben. Beachten Sie, dass bei Home-Namen zwischen Groß- und Kleinschreibung unterschieden wird.

Problem kann anhand der SOAP-Fehlernachrichten nicht präzise bestimmt werden

Sie empfangen zwar SOAP-Fehlernachrichten, können das genaue Problem anhand Nachrichten jedoch nicht genau bestimmen.

Wenn Sie eine SOAP-Fehlernachricht mit einer Fehlerzeichenfolge empfangen, die mit dem Wert eines der Aufrufwerte übereinstimmt, bedeutet das, dass der Parameterwert ungültig ist. Beispiel: Wenn Sie einen Service verwenden, der den Parameter int erwartet, und eine Nachricht, die den Wert "1.1" enthält, an den Service senden, enthält die angezeigte Fehlernachricht 1.1 als Fehlerzeichenfolge:
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>1.1</faultstring>

Diese Nachricht ist mit dem SOAP-Verhalten von Apache konsistent und kann von den busfähigen Web-Services nicht korrigiert werden.

Fehler aufgrund von Zeitlimitüberschreitungen bei der Übergabe großer Nachrichten über den Endpunktlistener für SOAP over JMS

Wie bei synchronen Endpunktlistenern können Zeitlimitüberschreitungen auftreten. Möchten Sie die Häufigkeit solcher Fehler verringern, müssen Sie die Zeitlimitwerte für den Endpunktlistener erhöhen. Tritt der Fehler weiterhin auf, inaktivieren Sie Trace und Protokollierung für die Serviceintegrationstechnologien, indem Sie die Tracezeichenfolge des Anwendungsservers auf com.ibm.ws.*=all=disabled setzen.


Symbol, das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rjw_prob0
Dateiname:rjw_prob0.html