WebSphere Product Center: Unterstützung

 

Version 5.2

 

 

 

 

 

 


Hinweis: Bevor Sie die vorliegenden Informationen und das zugehörige Produkt verwenden, lesen Sie bitte die Informationen im Abschnitt "Bemerkungen" am Ende dieses Dokuments.

23. März 2005

Diese Veröffentlichung ist eine Übersetzung des Dokuments

WebSphere Product Center Version 5.2: Support Guide,

herausgegeben von International Business Machines Corporation, USA

(C) Copyright International Business Machines Corporation 2001, 2005
(C) Copyright IBM Deutschland GmbH 2001, 2005

Informationen, die nur für bestimmte Länder Gültigkeit haben und für Deutschland, Österreich und die Schweiz nicht zutreffen, wurden in dieser Veröffentlichung im Originaltext übernommen.

Möglicherweise sind nicht alle in dieser Übersetzung aufgeführten Produkte in Deutschland angekündigt und verfügbar; vor Entscheidungen empfiehlt sich der Kontakt mit der zuständigen IBM Geschäftsstelle.

Änderung des Textes bleibt vorbehalten.

Herausgegeben von:
SW NLS Center
Kst. 2877
März 2005

Inhaltsverzeichnis

Kapitel 1 - WebSphere Product Center überwachen

    WebSphere Product Center-Services
        Kurzstatus eines Service abrufen
        Ausführlichen Status eines Service abrufen

    Überwachung und Verwaltung der Datenbank
        1. Mehr Speicherplatz zuordnen, wann immer dies notwendig ist
        2. Fixpacks/Programmkorrekturen anwenden
        3. Datenbank/Datenbankmanager starten und beenden
        4. Datenbankschema analysieren und Statistiken erfassen
        5. Tabellen und Indizes reorganisieren
        6. Status von terminierten Backup-Jobs für Sicherungen überprüfen
        7. Datenbank wiederherstellen und zurückschreiben
       8. Datenbankleistung optimieren

Kapitel 2 - Leistungsverhalten von WebSphere Product Center

    Plattenspeicherplatz verwalten
        Temporäre Dateien
    Webseiten zwischenspeichern
   Hardwarespezifikationen

Kapitel 3 - Datenbankverwaltung

   Datenbankbenutzer
    Datenbank sichern
       Physische Sicherungen    
        Logische Sicherungen
    Zustand der Datenbank überprüfen
        Alerts für DB2-Diagnosezentrale einrichten
    Toolkit für Datenbankmanagement

Kapitel 4 - Dokumentspeicher

   Verzeichnisse
    Architektur
    Tabellenbereich verwalten
    Dateien löschen
    Optional: Parameter 'gzip' für BLOBs definieren
    Defragmentierung
   Häufig gestellte Fragen zum Dokumentspeicher

Kapitel 5 - Sicherung und Zurückschreibung

   WebSphere Product Center sichern
    Datenbank sichern
   Zurückschreiben

Kapitel 6 - Protokollfunktion von WebSphere Product Center

   Protokollkonfigurationsdateien für WebSphere Product Center-Services
    Während der Laufzeit generierte Protokolle
    Protokolldateien konfigurieren
        Position ändern
        Dateigröße ändern
        Dateisicherungsoption ändern
        Konvertierungsmuster ändern
    Konvertierungskennungen
    Formatmodifikatoren
    Konvertierungszeichen
   Protokollierungskonfigurationsdateien von WebSphere Product Center

Kapitel 7 - Rechtschreibprüfungsfunktion aktivieren

        Einschränkungen
        Rechtschreibprüfungsfunktionen
    Rechtschreibprüfung aktivieren
        Voraussetzungen
        WebSphere Product Center für die Laufzeitkonfiguration der WinterTree-Rechtschreibprüfungskomponente konfigurieren

Kapitel 8 - Sicherheit

    LDAP-Integration
        Funktionsübersicht
        Funktionale Übersicht
        Voraussetzungen
        Einschränkungen
        Auswirkungen auf die Migration bei Versionen vor Version 5.2
    LDAP in WebSphere Product Center integrieren
        1. LDAP-Schema für Benutzer und Aufgabenbereiche konfigurieren
        2. LDAP-Konfigurationsdatei bearbeiten
        3. System erneut starten

Kapitel 9 - Fehlerbehebung

   Tools
    Probleme mit dem Anwendungsserver
        Probleme mit der Umgebung
        Häufig vorkommende Fehler beim Einrichten der Konfigurationsdatei
    Anwendungsserver antwortet nicht
    Probleme mit der Datenbank
        1. Zeichenkonvertierung während des Imports oder Exports von Daten
        2. Probleme bei der Datenbankbereichszuordnung
        3. WebSphere Product Center wird langsamer, sobald ein aktiver Job abgebrochen wird
        4. Probleme beim Wechsel des Protokolls für die Rücknahme des Widerrufs
        5. Blockierung der WebSphere Product Center-Middleware und der GUI
        6. Blockierung des Jobs für Schemaanalyse
   Protokolldateien auf Fehler überwachen
    Konnektivitätsprobleme
        HTTP-Sendefehler
        FTP-Abruffehler
        Java-Konnektivität testen
    Sonstige Probleme
       WebSphere Product Center stoppen und erneut starten

Kapitel 10 - Migrationsframework

    Migration von Version 4.2.0.x auf Version 5.2
        Unternehmen exportieren
        Unternehmen importieren
        Auswirkungen auf die Migration
    Migration von Version 4.2.1 auf Version 5.1

Kapitel 11 - Unterstützung für Web-Services

    Unterstützung für WSDL (Web Services Definition Language)
    Benutzerschnittstelle für Web-Services
    Scriptoperationen, die Web-Services unterstützen
    Unterstützung für den Stil 'Dokument/Literal'

Kapitel 12 - Befehlszeilenschnittstelle für Jobs

    Scheduler-Integration mit IBM Tivoli Workload Scheduler
    Scheduler-Steuerung über Befehlszeilenschnittstelle

Kapitel 13 - Bewährte Verfahren (Best Practices) für die Integration

    Begriffsbestimmungen und Akronyme
    Integrationsdimensionen
        WebSphere Product Center als Quellen- oder Zielsystem
        Steuersystem
        Protokoll
        Format
        Größe von Daten
        Übertragungsarten
        Häufigkeit
        Integrationsthread
        Akronyme
    Gestaltungsprinzipien
        Wiederverwendbarkeit
        Gemeinsame Informationsnutzung
        Informationsverarbeitung
        Ereignisgesteuerte Verarbeitung
        Änderungsverfolgung
        Wieder verwendbare Verbindungseinheiten
    Implementierung
    Skalieren der Implementierung
    Leistungsoptimierung
    Prüfung
        Stabilität
    Skalierbare Tests
    Transparenz
    Berichterstellung
    Dokumentation
    Die Top-Ten-Richtlinien für WebSphere Product Center-Integrationen
        Verwendung einer klaren und allgemein gebräuchlichen Terminologie zur Beschreibung der Integration
        Wiederverwendbarkeit
        Transparenz
        Mini-Integrationen
        Repräsentative Umgebung versus vollständige Umgebung
        Skalierbare Prozesstests
        Leistung
        Aufbau eines Einzelthreads in einem frühen Stadium
        Gestaltungsspezifikationen und Dokumentation
            Ein einziger Eigner
    EAI-Plattformintegrationen
        Methode
    Weitere Vorteile

Bemerkungen

Kapitel 1 - WebSphere Product Center überwachen

Die Überwachung von WebSphere Product Center kann über die Scripts rootadmin und rmi_status oder über die GUI erfolgen. Es gibt kein eigenständiges Überwachungstool in WebSphere Product Center.

Das Erstellen eines Überwachungstools würde den Rahmen dieses Dokuments sprengen, es sollen jedoch einige leicht nachzuvollziehende Vorschläge gemacht werden:


Kurzstatus eines Service abrufen

Geben Sie die folgenden Parameter ein, wenn Sie den Kurzstatus eines Services erfahren möchten:

-cmd=check -svc=<servicename>

Der Kurzstatus kann einen der folgenden Werte annehmen:

running (aktiv) Der Service ist aktiv und antwortet auf eine "Überwachungssignalfunktion".
not found (nicht gefunden) Der Service wurde nicht gefunden. Möglicherweise wurde der Service nicht gestartet, oder er ist abgestürzt.
found but not responding (gefunden, aber ohne Antwort) Der Service wurde gefunden und ist im RMI-Register registriert, er antwortet jedoch nicht auf die "Überwachungssignalfunktion". Der Service muss unter Umständen erneut gestartet werden.

Ausführlichen Status eines Service abrufen

Geben Sie die folgenden Parameter an rootadmin.sh weiter, wenn Sie den ausführlichen Status eines Services erfahren möchten:

-cmd=status -svc=<servicename>

Dadurch wird eine HTML-Datei erstellt, die mit jedem Browser angezeigt werden kann. Verwenden Sie auf einem Terminal den HTTP-Browser Lynx (oder ein ähnliches Tool), um die Ausgabe zu formatieren.

Der Status gibt einen Überblick über die unterschiedlichen Threads, die in einem Service ausgeführt werden, sowie über den Status der Datenbankverbindungen, die der Service derzeit aufrecht erhält.

Beispiel:

Den Status der Planungsfunktion erhalten:

rootadmin.sh -cmd=status -svc=scheduler > /tmp/sch_status.html; lynx /tmp/sch_status.html

oder

rootadmin.sh -cmd=status -svc=scheduler > /tmp/sch_status.html; lynx -dump /tmp/sch_status.html

Hinweis:: Mit den im vorstehenden Beispiel verwendeten Zeichen ">" werden die Statusdetails an eine Dateiausgabeadresse übertragen.


Überwachung und Verwaltung der Datenbank

Da die relationale Datenbank als Hauptspeicher für die meisten Produktinformationsinhalte dient, sind Verwaltungsmaßnahmen wichtig, die eine Verschlechterung oder den Verlust von Leistung verhindern.

Das Einrichten von Alerts in WebSphere Product Center dient der Benachrichtigung über eventuell auftretende Probleme, die dann gelöst werden können, bevor sie ausufern. Ein Überwachungssystem sollte ebenfalls implementiert werden, um die Datenbank von WebSphere Product Center fortlaufend zu überwachen.

Die folgenden Aufgaben sollten regelmäßig ausgeführt werden:

1. Mehr Speicherplatz zuordnen, wann immer dies notwendig ist

Das Speichermanagement ist eine fortlaufende Aufgabe für die meisten Anwender des Produktes. Wenn Sie nicht gerade eine völlig statische Datenbank haben, werden Tabellen und Indizes kontinuierlich wachsen oder sich verkleinern. Sie müssen sicherstellen, dass ausreichend Speicherplatz verfügbar ist, damit dies ohne Unterbrechung der fortlaufenden Verarbeitungen geschehen kann. Ebenfalls müssen Sie dafür sorgen, dass der Speicherplatz effizient genutzt wird. Sie können DB2 Control Center für das Zuordnen von Speicherplatz nach Bedarf einsetzen. Sie können dieselbe Task auch über eine Befehlszeilenschnittstelle ausführen.

2. Fixpacks/Programmkorrekturen anwenden

Fixpacks und Programmkorrekturen stellen eine Möglichkeit für die Anbieter von Datenbanksystemen dar, in regelmäßigen Abständen ausführlich getestete und integrierte Produkt-Fixes bereitzustellen. Sie enthalten lediglich Fehlerkorrekturen, keine neuen Leistungsmerkmale, und erfordern keine Zertifizierung auf den Zielsystemen. Es ist äußerst wichtig, die Fixpacks und Programmkorrekturen anzuwenden, sobald diese verfügbar sind, um bekannte Probleme des Datenbanksystems zu vermeiden. Wenden Sie sich an Ihren Datenbanksystemanbieter, wenn Sie weitere Informationen zu Fixes benötigen.

3. Datenbankmanager und Datenbank starten und beenden

Der Datenbankmanager und die Datenbank müssen beendet werden, wenn Korrekturen angewandt werden, Datenbanken von einem Server auf einen anderen verschoben werden etc. Sie müssen die Datenbank wann immer erforderlich starten und beenden.

4. Datenbankschema analysieren und Statistiken erfassen

Das Datenbankschema wird analysiert, um die neusten Statistiken zu Tabellen und Indizes in der Datenbank zu erfassen. Ein kostenoptimierender Ansatz ist die Verwendung von Statistiken, um eine Schätzung der Kosten für jeden Ausführungsplan zu erhalten. Das regelmäßige Zusammenstellen von Statistiken stellt dem Optimierungsprogramm die bestmöglichen Informationen über Schemaobjekte zur Verfügung. Wenn Sie z. B. eine große Anzahl von Zeilen in eine Tabelle geladen haben, sollten Sie neue Statistiken für diese Tabelle erfassen.

Führen sie das Shell-Script analyze_schema.sh aus, das sich im Verzeichnis $TOP/src/db/schema/util befindet, um Datenbankschemata zu analysieren.

5. Tabellen und Indizes reorganisieren

Es wird empfohlen, Tabellen und Indizes in regelmäßigen Zeitabständen zu reorganisieren, um eine bessere Leistung zu erzielen

Da die heutigen Datenbanken schneller denn je wachsen, muss der typische Datenbankadministrator viel Zeit für das Speichermanagement und die Reorganisation aufwenden, um eine optimale Leistung zu erzielen.

Eine optimale Leistung bedeutet optimale Antwortzeiten. Diese kann sich jedoch aufgrund einer Anzahl von Problemen im Speichermanagement verschlechtern. Die meisten dieser Probleme treten in den folgenden drei Bereichen auf: Probleme im Zusammenhang mit Tabellen, stagnierende Indizes sowie E/A-Lastausgleich und Datenpartition

Fast jedem Datenbankadministrator sind Probleme im Zusammenhang mit Tabellen hinreichend bekannt. Zu diesen gehören u.a. nicht genutzter Platz in Tabellenblocks, verkettete Zeilen, mangelnde Datenproximität und fragmentierte (zu weit ausgedehnte) Tabellen.

Das zweite bedeutende Problem im Leistungsverhalten sind stagnierende Indizes, d. h. Indizes, die groß und nur vereinzelt ausgefüllt sind.

Dieser Zustand kann die Leistung der Indexbereichsprüfung stark verschlechtern. Auf diese Art wird auch nennenswerter Plattenspeicherplatz verschwendet.

Das dritte größere Thema im Leistungsverhalten ist der E/A-Lastausgleich und die Datenpartition. Wenn Objekte, auf die häufig zugegriffen wird, sich in derselben Datendatei befinden, können E/A-Engpässe auftreten. Tools wie "reorgchk" in DB2 versorgen Sie mit Informationen darüber, welche Objekte reorganisiert werden müssen. Es stehen viele Methoden und Tools für Reorganisation von Datenbankobjekten zur Verfügung. Lesen Sie die entsprechende Datenbanksystemdokumentation des jeweiligen Anbieters zur Reorganisation von Tabellen und Indizes.

6. Status von terminierten Backup-Jobs für Sicherungen überprüfen

Regelmäßige Sicherungen sind ein integraler Bestandteil des Wiederherstellungs- und Zurückschreibungsprozesses. Prüfen Sie den Status aller Backup-Jobs, um sicherzustellen, dass diese wie geplant ausgeführt werden.

Das Prüfen des Sicherungsstatus hängt davon ab, wie Sie die Sicherungsprozedur definieren, und welche Tools für die Sicherung verwendet werden. Nähere Informationen zum Thema Sicherung finden Sie in der Datenbanksystemdokumentation des jeweiligen Anbieters.

7. Datenbank wiederherstellen und zurückschreiben

Wenn ein Datenbankausfall auftritt, müssen Sie Art und Ausmaß des Ausfalls ermitteln. Eine solche Analyse gibt die Schritte vor, die anschließend zur Wiederherstellung des Systems erforderlich sind. Verwenden Sie den Wiederherstellungs- und Zurückschreibungsprozess wie von Ihrer IT-Benutzerunterstützung festgelegt.

Die Wiederherstellung einer physische Sicherung bedeutet, sie wiederherzustellen und für den Datenbankserver verfügbar zu machen. Die Zurückschreibung einer wiederhergestellten Datendatei bedeutet, sie mit wiederholenden Datensätzen zu aktualisieren, d.h. mit Datensätzen der Änderungen, die an der Datenbank nach dem Backup durchgeführt wurden.

8. Datenbankleistung optimieren

Zu den wichtigsten Aufgaben eines Datenbankadministrators gehört es, sicherzustellen, das die Datenbankleistung optimiert ist. Eine RDBMS ist in hohem Maße optimierbar, so dass die Datenbank überwacht und angepasst werden kann, um die Leistung zu optimieren.

Eine Leistungsoptimierung sollte aus den folgenden Gründen geschehen:

Die Nutzung der Hardware sollte optimiert werden, um Geld zu sparen - viele Unternehmen geben Unsummen für Hardware aus.

Weitere Informationen über die verschiedenen verfügbaren Methoden zur Optimierung der Datenbankleistung finden Sie in der Produktdokumentation des entsprechenden DB2-Produktes.

Kapitel 2 - Leistungsverhalten von WebSphere Product Center


Plattenspeicherplatz verwalten

Es wird empfohlen, 30-50 GB verwendbaren Speicherplatz verfügbar zu haben, der sowohl für die WebSphere Product Center-Middleware, als auch für temporäre Partitionen verwendet werden kann.

In einer Clusterkonfiguration ist gemeinsam genutzter Speicher für die Anwendungsserver erforderlich. Die statischen HTML- und Imagedateien können mit einem Dienstprogramm wie z. B. "rsync" synchronisiert werden, aber es werden trotzdem gemeinsam genutzte Speicher für die Web-Server empfohlen.

Die Anwendungsserver, $TOP, das FTP-Verzeichnis und das Dokumentstammverzeichnis des Web-Servers (d.h. die Adresse statischer HTMLs und Images) befinden sich normalerweise auf der gemeinsam genutzten Einheit, während Unterstützungsanwendungen wie Apache, Java Software Developer Kit (JDK) oder der Anwendungsserver auf dem lokalen Speicher installiert sind. Protokolle können sich auf lokalen oder gemeinsam genutzten Speichern befinden. Das in common.properties angegebene temporäre Verzeichnis sollte lokal gespeichert sein.

Temporäre Dateien

Die folgenden Verzeichnisse enthalten temporäre, nach Ausführungszeit generierte Dateien und befinden sich im Dateisystem:

Hinweis: Die Verzeichnisse temporärer Dateien können je nach installierter Version von WebSphere Product Center unterschiedlich sein.

$TOP/public_html/created_files/distributor

Beispiel für die Verwendung mit Linux

cd $TOP/public_html/created_files/distributor

find . -type f -mtime +7 -exec ls -l {} \; <-- Hierdurch zeigen Sie an, welche Dateien gelöscht würden.

find . -type f -mtime +7 -exec rm -f {} \; <-- Hierdurch löschen Sie diese Dateien.

$TOP/public_html/suppliers/company code/aggregated_files/

$TOP/public_html/suppliers/company code/tmp_files:

$TOP/logs


Webseiten zwischenspeichern

Die Standardinstallation von WebSphere Product Center ist so eingerichtet, dass Proxy-Server Webseiten NICHT zwischenspeichern. Das Zwischenspeichern von Seiten beeinträchtigt die Browser-Schaltfläche zum Zurückblättern stark, und es werden Fehlernachrichten und abgelaufene Seiten produziert. Wenn Sie das Zwischenspeichern wünschen, verwenden Sie die Navigationskomponenten der GUI und vermeiden Sie es, die Schaltfläche zum Zurückblättern zu verwenden.

Bearbeiten Sie die Datei common.properties
Parameter: no_cache_directive=on/off

Der Parameter ist standardmäßig ausgeschaltet (off).

Wenn er eingeschaltet ist (on), werden die Parameter der Antwort so festgelegt, dass Proxy-Server dazu angewiesen werden, die Seiten nicht im Cache zwischenzuspeichern.

Wenn er ausgeschaltet ist, ist die Browser-Schaltfläche zum Zurückblättern in Funktion und verursacht keine Fehler.


Hardwarespezifikationen

Die Hardwarespezifikation sollte nach bewährten Verfahren, aufgrund der Erfahrungen in der Vergangenheit und in Abhängigkeit von den Kapazitätsanforderungen ausgewählt werden, um eine optimale Leistung für WebSphere Product Center zu erhalten.

Anwendungsserver

Die Mehrzahl der Datenobjekte in WebSphere Product Center werden auf dem Datenbankserver gespeichert. Daher wird der Plattenspeicher auf Anwendungsservern ausschließlich dazu verwendet, die Betriebssystemkomponenten, die ausführbaren Dateien von WebSphere Product Center, die Komponenten anderer Hersteller, temporäre Arbeitsdateien von WebSphere Product Center sowie WebSphere Product Center-Protokolle zu speichern.

Die WebSphere Product Center-Middleware verwendet mehrere J2EE-Komponenten, die eine hohe Speicherkapazität aufweisen. Für WebSphere Product Center wird ein Anwendungsserver mit 4 GB Speicher empfohlen, von denen normalerweise 2,5 GB für eine Instanz der WebSphere Product Center-Middleware verwendet werden.

Datenbankserver

Die Größe des Datenbankservers hängt von verschiedenen Faktoren ab. Dazu kann die Anzahl der Katalogelemente gehören, die Anzahl der Attribute, die einem Element zugeordnet werden, und die Größe der Katalogattribute.

Als verlässliche Faustregel können Sie 8 KB Speicher pro Attribut zuordnen. Wenn Ihr Katalog z. B. 500.000 Elemente mit je 14 Attributen umfasst, benötigen Sie mindestens 56 GB Datenbankspeicher (500.000 Elemente x 14 Attribute x 8 KB).

Dieser Speicherplatz enthält noch nicht den benötigten Platz für die Datenbankbinärobjekte, Segmente zum Rückgängigmachen, temporären Tabellenspeicher usw.

Empfohlene Architektur

Falls mit WebSphere Product Center große Stapeljobs abgewickelt werden sollen, wird empfohlen, einen optionalen Planungsfunktionsserver zu verwenden, der Hintergrundtransaktionen ausführen kann.

Kapitel 3 - Datenbankverwaltung


Datenbankbenutzer

Der Datenbankbenutzer und das Datenbankkennwort, die bei der Installation von WebSphere Product Center erstellt wurden, werden in der Datei common.properties definiert. Wenn das Kennwort des Datenbankbenutzers geändert wird, ohne auch die Datei common.properties zu aktualisieren, führt dies zu einem Absturz der Middleware von WebSphere Product Center. Falls das Kennwort des Datenbankbenutzers geändert werden muss, sollten Sie sicherstellen, dass das Merkmal db_password in der Datei common.properties aktualisiert wird. Die Authentifizierung des Kennworts findet in DB2 auf Betriebssystemebene statt.


Datenbank sichern

Das Sichern und Wiederherstellen der Datenbank ist eine der kritischsten Aktionen, die ein Datenbankadministrator ausführt. Daher ist es äußerst wichtig, eine klar strukturierte Sicherungs- und Wiederherstellungsstrategie zu implementieren. Die folgenden Sicherungsstrategien sind ein Vorschlag zum Erhalten der optimalen Leistung von WebSphere Product Center.

Physische Sicherungen

Für WebSphere Product Center wird empfohlen, die physische Sicherung der Datenbank täglich auszuführen. Sie können die physische Sicherung der Datenbank im Offlinestatus ausführen (Imagesicherung), oder im Onlinestatus (Hot Backup), je nach Verfügbarkeit der inaktiven Systemzeiten. Auf die meisten Datenbanken von WebSphere Product Center wird rund um die Uhr zugegriffen, d.h. möglicherweise gibt es keine inaktiven Zeiten, in denen Sie eine Offlinesicherung der Datenbank ausführen können. Die Datenbank muss in DB2 im Modus 'logretain' für die Beibehaltung von Protokollen ausgeführt werden, damit eine Onlinesicherung der Datenbank ausgeführt werden kann. Mit einer Onlinesicherung Ihrer Datenbank können Sie diese wieder auf den Status zu einem bestimmten Zeitpunkt zurückschreiben. Weitere Informationen finden Sie in der DB2-Produktdokumentation.

Logische Sicherungen

Die logische Sicherung speichert Informationen zu einem Schemaobjekt, das für die Datenbank erstellt wurde. Mit dem DB2-Dienstprogramm DB2MOVE können Sie bestimmte Objekte selektiv für zusätzlichen Schutz und Flexibilität in der Sicherungsstrategie der Datenbank exportieren. Datenbankexporte sind kein Ersatz für physische Sicherungen und bieten nicht dieselben umfangreichen Vorteile der Zurückschreibung, die Ihnen die physische Sicherung bietet. Manchmal ist eine logische Sicherung allerdings sehr nützlich, wenn Sie Qualitätssicherungs- oder Testinstanzen mit Produktionsdaten einrichten möchten. Das DBM-Toolkit von WebSphere Product Center enthält außerdem genaue Anleitungen für die logische Sicherung des WebSphere Product Center-Datenbankschemas.


Zustand der Datenbank überprüfen

Die regelmäßige Überprüfung des Zustands des Datenbanksystems ist entscheidend für eine hohe Verfügbarkeit Ihres Systems.

Alerts für DB2-Diagnosezentrale einrichten

Mit der DB2-Diagnosezentrale können Sie den Status der Datenbankumgebung überwachen und ggf. notwendige Änderungen durchführen. Der Diagnosemonitor überwacht kontinuierlich eine Gruppe von Diagnoseanzeigern. Wenn der aktuelle Wert eines Diagnoseanzeigers außerhalb des zulässigen Bereichs liegt, der durch Schwellenwerte für Alarm und Warnung eingegrenzt ist, generiert der Diagnosemonitor einen Diagnosealert. DB2 wird mit einer Reihe vordefinierter Schwellenwerte geliefert, die Sie später anpassen können.

Im Folgenden sind einige der wichtigsten Aufgaben aufgelistet, die Sie mit der Diagnosezentrale ausführen können:


Toolkit für Datenbankmanagement

Es stehen verschiedene Datenbankmanagementscripts zur Verfügung, um die WebSphere Product Center-Datenbank zu verwalten. Diese Scripts sind in Form eines Toolkits zusammengestellt.

Die unterschiedlichen Aufgaben, die in dem Toolkit für DB2 behandelt werden, lauten:

Kapitel 4 - Dokumentspeicher

Der Dokumentspeicher ist der Bereich in WebSphere Product Center, in dem alle eingehenden und abgehenden Dateien gespeichert werden. Dazu gehören auch Importzuführungen, Scripts, Berichte und Spezifikationsdateien.

Die GUI-Struktur enthält Hyperlinks zu Dateien, die in der Datenbank gespeichert werden und im Grunde genommen als Zeiger für die Speicherposition der Dateien fungieren.

Verzeichnisse

Der Dokumentspeicher wird wie eine Dateistruktur angezeigt. Auf Dateien kann von den folgenden Dokumentspeicherverzeichnissen zugegriffen werden:

archives

public_html

eventprocessor

schedule_logs

feed_files

scripts

ftp

tmp

params

users

Ftp und public_html sind Dateisystemverzeichnisse, die dem Dokumentspeicher über eine Mountoperation zugeordnet werden. Sie sind in $TOP/etc/docstore_mount.xml definiert. Diese Datei enthält die Speicherposition verschiedener Mountpunkte für das Dateisystem des Betriebssystems.

Die verwendeten Variablen sind "$ftp_root_dir" und "$supplier_base_dir", die in der Konfigurationsdatei common.properties definiert sind.

Architektur

Die Datenbank hat einen Tabellenbereich, der für die Dateien reserviert ist, die im Dokumentspeicher gespeichert werden. Wenn eine Datei im Dokumentspeicher gespeichert wird, wird ein neuer Datensatz in der Datenbank erstellt. Die Datenbank speichert die Datei als BLOB-Datei (Binary Large Object - großes Binärobjekt).

Eine BLOB-Datei verweist auf einen beliebigen, zufälligen großen Bitblock, der in einer Datenbank gespeichert werden muss, wie z. B. ein Bild oder eine Audiodatei. Der wesentliche Punkt einer BLOB-Datei besteht darin, dass es sich um ein Objekt handelt, welches nicht in der Datenbank selbst interpretiert werden kann.

Die Datenbank speichert BLOBs in einem Tabellenbereich innerhalb der Datenbank. Der Vorteil dieser Methode ist, dass die Datenbank die Daten anhand des Datenbankservermechanismus schützt, der auch alle anderen Arten von Tabellendaten schützt, wie z. B. Sicherungs- und Wiederherstellungs- und sonstige Sicherheitsmechanismen.

Tabellenbereich verwalten

Das Speichermanagement ist eine fortlaufende Aufgabe. Die Dokumentspeichertabelle wird größer oder verkleinert sich. Stellen Sie sicher, dass ausreichend Speicherplatz verfügbar ist, damit die großen Binärdateien ohne Unterbrechung der fortlaufenden Verarbeitungen unterstützt werden. Sie müssen außerdem dafür sorgen, dass der Speicherplatz effizient genutzt wird.

Dateien löschen

Wenn WebSphere Product Center eine BLOB-Datei und die zugehörigen Verweise löscht, gibt die Datenbanksteuerkomponente den zugeordneten Speicherplatz nicht frei, sondern verwendet diesen für neue Dateien.

Somit wird jede Datei in einem Hauptspeicherblock gespeichert, und sobald die Datei gelöscht wird, wird der Hauptspeicherblock wiederverwendet, da neue Dateien hinzugefügt werden.

Optional: Parameter 'gzip' für BLOBs definieren

Gehen Sie wie folgt vor, um Dokumente zu komprimieren, die in BLOB-Dateien gespeichert sind:

Zu bearbeitende Datei: common.properties

Parameter: gzip_blobs=true/false

  • Die gültigen Werte sind true (wahr) und false (falsch)
  • Falls nichts angegeben wird, wird standardmäßig der Wert "false" angenommen
  • Falls dieser Wert auf "true" gesetzt wird, werden die in BLOBs gespeicherten Dokumente komprimiert

Defragmentierung

Aufgrund mehrfachen Hinzufügens oder Löschens von Dateien im Dokumentspeicher können die Hauptspeicherblocks fragmentiert werden. Fragmentierung tritt normalerweise auf, wenn Sie einen Datenträger häufig zum Erstellen, Löschen und Ändern von Dateien verwenden.

Gelegentlich muss dann das Betriebssystem Teile einer Datei in nicht zusammenhängenden Clustern speichern. Dies ist für den Benutzer nicht sichtbar, kann jedoch die Geschwindigkeit, mit der auf Daten zugegriffen wird, verringern, da das Plattenlaufwerk über verschiedene Abschnitte des Datenträgers hinweg suchen muss, um eine Datei zusammen zu stellen.

Wenn Sie das Leistungsverhalten des Dokumentspeichers verbessern möchten, ist es am Sinnvollsten, die DBL-Tabelle mit compress=y erst zu exportieren und dann wieder zu importieren. Dadurch werden alle Dateien zu Chunks zusammengefasst und in ein kontinuierliches Cluster gebracht, wodurch mehr Zeit für zu importierende Dateien vorhanden ist.

Anmerkung: Je nach Zuordnung des Tabellenbereichs ist die Defragmentierung möglicherweise nicht regelmäßig erforderlich. Überwachen Sie die Plattengeschwindigkeit regelmäßig, um festzustellen, ob die Defragmentierung des Plattenspeicherplatzes erforderlich ist.

Häufig gestellte Fragen zum Dokumentspeicher

Problem: Wenn die BLOBs gelöscht werden, ist die Geschwindigkeit von WebSphere Product Center dann immer noch beeinträchtigt?

Nein. Sobald die Zeilen gelöscht wurden, verbessern sich die langsamen Seiten des Dokumentspeichers.

Problem: Ist der Speicher immer noch zugeordnet und verursacht langsame Exporte und Importe?

Ja. Die einzige Möglichkeit, dies zu beheben, besteht darin, die DBL-Tabelle mit compress=y zu exportieren und wieder zu importieren.

Kapitel 5 - Sicherung und Zurückschreibung

Die genaue Erläuterung der Sicherungsmethode und der angewendeten Software sprengt den Rahmen dieses Dokuments, es werden jedoch die zugrundeliegenden Begriffe der Sicherung vorgestellt.

In WebSphere Product Center besteht die Sicherung aus zwei Komponenten: Sichern der Dateisystemverzeichnisse, in denen WebSphere Product Center installiert ist, und Sichern der Datenbank.

WebSphere Product Center sichern

Wenn Sie ein Backup von WebSphere Product Center ausführen möchten, sichern Sie einfach das Verzeichnis $TOP, wie in common.properties definiert. Da sich die Dateien in diesen Verzeichnissen ändern, werden tägliche Sicherungen empfohlen. Es wird ebenfalls empfohlen, einen Terminplan für die Sicherung einzurichten, der aus einer regelmäßigen Gesamtsicherung und täglichen Teilsicherungen bestehen sollte.

Datenbank sichern

Die Art und Weise, wie die Datenbank gesichert werden kann, geht weit über den Umfang dieses Dokuments hinaus, insbesondere, weil es so viele verfügbare Methoden gibt: Exporte, Hot Backups, Offlinesicherung, Spiegelung usw. Egal, für welche Methode Sie sich entscheiden: Das WebSphere Product Center-Datenbankbenutzerschema, das in common.properties definiert ist, ist das einzige, das gesichert werden muss.

Da die Datenbank verfügbar sein muss, damit WebSphere Product Center ausgeführt werden kann, wird empfohlen, tägliche Onlinesicherungen oder "Hot Backups" auszuführen. Exporte oder Offlinesicherungen sollten ebenfalls regelmäßig ausgeführt werden.

Weitere Informationen zu Datenbanksicherungen finden Sie in dem Abschnitt "Datenbanksicherung".

Zurückschreiben

Die Zurückschreibung kann in zwei Kategorien aufgeteilt werden: Zurückschreibung von WebSphere Product Center und den Unterstützungsdateien, und die Zurückschreibung der Datenbank.

Für die Zurückschreibung von WebSphere Product Center und den Unterstützungsdateien müssen Sie lediglich die fehlenden Dateien oder Verzeichnisse in ihren ursprünglichen Speicherpositionen wiederherstellen und WebSphere Product Center neu starten.

Führen Sie die folgenden Schritte aus, um die Datenbank zurückzuschreiben:

Kapitel 6 - Protokollfunktion von WebSphere Product Center

WebSphere Product Center enthält vorkonfigurierte Dateien, die Protokolle generieren, welche anschließend zur Fehlerbehebung in WebSphere Product Center verwendet werden können. Dieses Dokument bietet einen Überblick über die Protokollierungsmechanismen und erläutert, wie die Protokolldateien eingerichtet werden müssen.


Protokollkonfigurationsdateien für WebSphere Product Center-Services

Die folgenden Dateien steuern verschiedene Subsysteme im gesamten WebSphere Product Center. In jeder Datei wird die Position des generierten Protokolls definiert.

Hinweis: Alle Pfade beziehen sich auf $TOP

/etc/logs/eventprocessor.log.xml

/etc/logs/scheduler.log.xml

/etc/logs/system.log.xml

/etc/logs/appsvr.log.xml

/etc/logs/workflowengine.log.xml


Während der Laufzeit generierte Protokolle

Protokolle, die während der Laufzeit generiert werden, können angezeigt und nach Fehlern durchsucht werden, wodurch die Fehlerbehebung erleichtert wird, wenn ein Problem im Zusammenhang mit WebSphere Product Center oder internen Unterstützungsinfrastrukturen steht.

Die von WebSphere Product Center generierten Protokolldateien werden in $TOP/logs/*.log. gespeichert.

Protokolldateien konfigurieren

Die Merkmale der WebSphere Product Center-Protokolldateien können nach Bedarf bearbeitet werden (d.h. ihre Position, maximale Größe und das Format). In den folgenden Abschnitten werden die Elemente beschrieben, mit denen die Protokolle konfiguriert werden und eine Liste der Werte enthalten, die zum Konfigurieren einer WebSphere Product Center-Protokolldatei verwendet werden können.

Position ändern

Hinweis: Gilt nur für Dateiappender und rollierende Appender

Wenn Sie die Position einer generierten Protokolldatei ändern möchten, ändern Sie die Parameter der angegebenen Protokollkonfigurationsdateien.

Beispiel:

<param name="File"   value="${TOP}/logs/webserver_db.log " />

Dateigröße ändern

Hinweis: Gilt nur für rollierende Appender

Die Größe der Protokolldatei kann auf eine angegebene Speichergröße festgelegt werden, bevor sie beginnt, zu rotieren und die obere Reihe der Ausgabe zu löschen. Wenn Sie steuern möchten, ab wann die Datei mit dem Abschneiden beginnen soll, ändern Sie den Parameterwert für die Protokolldateigröße.

Beispiel:

<param name="maxFileSize" value="10MB" />

Dateisicherungsoption ändern

Hinweis: Gilt nur für rollierende Appender

Die Protokollfunktion kann so definiert werden, dass eine angegebene Anzahl von Sicherungen für eine Protokolldatei aufbewahrt wird. Wenn der maximale Wert erreicht ist, wird die älteste Datei heraus genommen.

Beispiel:

<param name="maxBackupIndex" value="2" />

Konvertierungsmuster ändern

Die Layoutkonfiguration der Protokolle kann geändert werden, indem das Konvertierungsmuster erneut definiert wird.

Beispiel:

<param name="ConversionPattern" value=
"%d [%t] %-5p %c (%F:%L) %x- %m%n"/>

Das Konvertierungsmuster hängt eng mit dem Konvertierungsmuster der Funktion printf in C zusammen. Ein Konvertierungsmuster enthält Literaltext und Ausdrücke für die Formatsteuerung, die Konvertierungskennungen genannt werden.

Hinweis: Sie können jeden beliebigen Literaltext im Konvertierungsmuster einfügen.


Konvertierungskennungen

Jede Konvertierungkennung beginnt mit einem Prozentzeichen: "%", gefolgt von optionalen Formatmodifikatoren und einem Konvertierungszeichen.

% (formatmodifikatoren)(konvertierungszeichen)

Beispiel:

%-5p [%t]: %m%n

Standardmäßig werden die relevante Informationen unverändert ausgegeben. Mit der Hilfe von Formatmodifikatoren ist es jedoch möglich, die Mindestfeldbreite, die maximale Feldbreite und die Textausrichtung zu ändern.

Der optionale Formatmodifikator steht zwischen dem Prozentzeichen und dem Konvertierungszeichen. In dem Beispiel bedeutet die Konvertierungskennung
%-5p, dass die Priorität des Protokollierungsereignisses linksbündig mit einer Breite von 5 Zeichen ausgerichtet werden sollte.

Der erste optionale Formatmodifikator ist die Markierung für linksbündige Ausrichtung, wobei es sich einfach um das Minuszeichen (-) handelt. Danach kommt der optionale Modifikator Mindestfeldbreite. Dies ist eine Dezimalkonstante, die die auszugebende Mindestzeichenanzahl darstellt. Wenn für das Datenfeld weniger Zeichen erforderlich sind, wird es entweder auf der linken, oder auf der rechten Seite aufgefüllt, bis die Mindestbreite erreicht ist.

Standardmäßig wird links aufgefüllt (rechtsbündige Ausrichtung), Sie können aber mit der Markierung für linksbündige Ausrichtung das Auffüllen auf der rechten Seite festlegen. Die Zeichen für das Auffüllen sind Leerschritte. Wenn das Datenelement größer als die Mindestfeldbreite ist, wird das Feld erweitert, so dass alle Daten aufgenommen werden können. Der Wert wird nicht abgeschnitten.

Dieses Verhalten kann mit dem Modifikator maximale Feldbreite geändert werden, der durch einen Punkt und eine Dezimalkonstante dargestellt wird. Wenn das Datenelement länger als die maximale Feldbreite ist, werden diese überschüssigen Zeichen am Anfang des Datenelements entfernt, nicht am Ende.

Wenn z. B. die maximale Feldbreite acht Zeichen und das Datenelement 10 Zeichen lang ist, werden die ersten beiden Zeichen des Datenelements gelöscht.

Hinweis: Dieses Verhalten weicht von der Funktion 'printf' in C ab, bei der die Verkürzung am Ende erfolgt.

Auf den folgenden Seiten finden Sie die Werte zur Definition der Konvertierungskennungen.


Formatmodifikatoren

Im Folgenden finden Sie Formatmodifikatorbeispiele für die Kategoriekonvertierungskennung.

Formatmodifikator

Linksbündig ausrichten

Min

Maximale Breite

Kommentar

%20c

False

20

Keine

Links mit Leerzeichen auffüllen, falls der Kategoriename kürzer als 20 Zeichen ist.

%-20c

True

20

Keine

Rechts mit Leerzeichen auffüllen, falls der Kategoriename kürzer als 20 Zeichen ist.

%30c

Nicht zutreffend

Keine

30

Am Anfang abschneiden, falls der Kategoriename länger als 30 Zeichen ist.

%20.30c

False

20

30

Links mit Leerzeichen auffüllen, falls der Kategoriename kürzer als 20 Zeichen ist. Falls der Kategoriename jedoch länger als 30 Zeichen ist, am Anfang abschneiden.

%-20.30c

True

20

30

Rechts mit Leerzeichen auffüllen, falls der Kategoriename kürzer als 20 Zeichen ist. Falls der Kategoriename jedoch länger als 30 Zeichen ist, am Anfang abschneiden.


Konvertierungszeichen

Im Folgenden finden Sie eine Liste der erkannten Konvertierungszeichen:

Konvertierungszeichen

Wirkung

c

Wird für die Ausgabe der Kategorie des Protokollierungsereignisses verwendet. Optional kann eine Präzisionskennung auf die der Kategoriekonvertierungskennung folgen, die eine Dezimalkonstante in Klammern ist.

Wenn eine Präzisionskennung angegeben wird, wird nur die entsprechende Zahl der äußersten rechten Bestandteile des Kategorienamens gedruckt. Der Kategoriename wird standardmäßig vollständig ausgedruckt.

So wird z. B. für den Kategorienamen "a.b.c" das Muster %c{2} als "b.c" ausgegeben.

d

Wird für die Ausgabe des Datums des Protokollierungsereignisses verwendet. Auf die Datumskonvertierungskennung kann eine Datumsformatkennung in geschweiften Klammern {} folgen.

Beispiel: %d{HH:mm:ss,SSS} oder %d{dd MMM yyyy HH:mm:ss,SSS}. Wenn keine Datumsformatkennung angegeben wird, wird das ISO-Format 8601 vorausgesetzt.

Die Datumsformatkennung lässt die gleiche Syntax wie die Zeitmusterzeichenfolge von SimpleDateFormat zu. Obwohl Teil des Standard-JDKs, ist die Leistung von SimpleDateFormat nicht sehr gut.

Es wird empfohlen, für bessere Ergebnisse die log4j-Datumsformatierungsprogramme zu verwenden. Sie können diese angeben, indem Sie eine der folgenden Zeichenfolgen angeben: "ABSOLUTE", "DATE" und "ISO8601" für "AbsoluteTimeDateFormat", "DateTimeDateFormat" oder "ISO8601DateFormat". Beispiel: %d{ISO8601} oder %d{ABSOLUTE}.

Diese dedizierten Datumsformatierungsprogramme haben eine wesentlich bessere Leistung, als SimpleDateFormat.

m

Für die Ausgabe der WebSphere Product Center-Nachricht, die dem Protokollierungsereignis zugeordnet ist.

n

Für die Ausgabe des bzw. der plattformabhängigen Zeilentrennzeichen.

Dieses Konvertierungszeichen bietet praktisch dieselbe Leistung, wie nicht übertragbare Zeilentrennzeichen wie "\n" oder "\r\n". Daher ist dies die bevorzugte Methode, ein Zeilentrennzeichen anzugeben.

p

Wird für die Ausgabe der Priorität des Protokollierungsereignisses verwendet.

r

Wird für die Ausgabe der Anzahl verstrichener Millisekunden seit dem Start von WebSphere Product Center bis zur Erstellung des Protokollierungsereignisses verwendet.

t

Für die Ausgabe des Threadnamens, der das Protokollierungsereignis generiert hat.

x

Für die Ausgabe des verschachtelten diagnostischen Kontextes (NDC - nested diagnostic context), der zu dem Thread gehört, welcher das Protokollierungsereignis generiert hat.

%

Die Folge %% gibt ein einzelnes Prozentzeichen aus.


Protokollierungskonfigurationsdateien von WebSphere Product Center

In den folgenden Beispielen wird veranschaulicht, wie die Protokolldateien von WebSphere Product Center definiert sind. Die Eingaben in Fettdruck legen die Konfiguration der WebSphere Product Center-Protokolldateien fest.

<!-- basic ASYNC appender -->
<appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
<appender-ref ref="DEFAULT"/>
</appender>

 

<!-- basic CONSOLE appender. This is the same as doing system.out-->
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value=

"[%t] %-5p %c (%F:%L) %x- %m%n"/>
</layout>
</appender>

<!-- simple FILE appender. The file will be opened and if append is true  -->
<!--                       it will not be truncated                       -->
<appender name="DEFAULT" class="org.apache.log4j.FileAppender">
   <param name="File"   value="${TOP}/logs/tomcat_default.log " />
   <param name="Append" value="true" />           
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern" value=

"%d [%t] %-5p %c (%F:%L) %x- %m%n"/>
    </layout>       
</appender>

<!-- Rolling FILE appender. The file will be opened and if append is true  -->
<!--                        it will not be truncated                       -->
<!--                        maxFileSize: How big before you rotate         -->
<!--                        maxBackupIndex: How many backups do you keep?  -->
   <appender name="DB" class="org.apache.log4j.RollingFileAppender">
      <param name="File"   value="${TOP}/logs/tomcat_db.log " />
      <param name="Append" value="true" />           
<param name="maxFileSize" value="10MB" />
<param name="maxBackupIndex" value="2" />
<layout class="org.apache.log4j.PatternLayout">
  <param name="ConversionPattern" value=

"%d [%t] %-5p %c (%F:%L) %x- %m%n"/>
  </layout>       
</appender>

<!-- For the austin.db category, you want to have only a few logs kept hence -->
<!--  the rollingappender -->
<category name="austin.db" additivity=" false">
      <priority value="INFO" />
      <appender-ref ref="DB" />
</category>

<!-- ROOT CATEGORY -->
<!-- MUST ALWAYS BE LAST ENTRY AND HAVE AN APPENDER-->
<!-- If a logging event is not caught by any other logger it will be handled by this-->
<!-- rule. -->
<root>
      <priority value="error"/>
      <appender-ref ref="DEFAULT"/>
</root>

</log4j:configuration>

Kapitel 7 - Rechtschreibprüfungsfunktion aktivieren

Die Rechtschreibprüfungsfunktion in WebSphere Product Center wird durch Verwendung des Frameworks des Drittherstellerprodukts   "Sentry Spell Checking Engine" von WinterTree verfügbar gemacht. Aus diesem Grund ist im Produktpaket von WebSphere Product Center keine Rechtschreibprüfungsfunktion enthalten, und der Erwerb von Spelling Service Engine Version 5.10 von WinterTree Software ist erforderlich, um die Rechtschreibprüfungsfunktion zu aktivieren. 

Hinweis: Zur Verwendung der Rechtschreibprüfungsfunktion in WebSphere Product Center ist Wintertree Sentry Spelling Checker Engine Java SDK 5.10 als Voraussetzung erforderlich.

Wenn in diesem Release die Rechtschreibprüfungsfunktion aktiviert ist, können Benutzer Rechtschreibprüfungen nur in den Anzeigen für Elementdetails und den Anzeigen für Inhaltsauthoring der Einzelbearbeitung ausführen. Unterstützung für die Rechtschreibprüfungsfunktion in den Anzeigen für Mehrfachbearbeitung oder Massenbearbeitung wird in einem zukünftigen Release verfügbar sein.

Einschränkungen

Rechtschreibprüfungsfunktionen


Rechtschreibprüfung aktivieren

In diesem Dokument werden die Konfigurationsschritte beschrieben, die erforderlich sind, damit WebSphere Product Center während der Laufzeit mit Spelling Service Engine Version 5.10 von WinterTree Software arbeitet.

Voraussetzungen

WebSphere Product Center für die Laufzeitkonfiguration der WinterTree-Rechtschreibprüfungskomponente konfigurieren

Um WebSphere Product Center für die Laufzeitkonfiguration der WinterTree-Rechtschreibprüfungskomponente zu konfigurieren, müssen drei Eigenschaftendateien geändert werden:

Hinweis: Wenn alle Eigenschaftendateien geändert wurden, müssen Sie WebSphere Product Center erneut starten, um die Laufzeitkonfigurationsparameter der Rechtschreibprüfungskomponente zu aktivieren.

common.properties

Speicherposition:  Datei <WPC5.2_INSTALL_VERZ>/etc/default/common.properties

Werte: Bearbeiten Sie die Datei common.properties, sodass sie die folgenden Eigenschaftswerte enthält:

spell_check=true  (Dieser Wert aktiviert die Rechtschreibprüfungskomponente) 
spell_check_vendor=wintertree (Dieser Wert definiert den Lieferanten der Rechtschreibprüfungskomponente als WinterTree SSCE)
spell_check_vendor_class=common.plugins.wintertree.WinterTreePlugin (Dieser Wert definiert das Plug-in für Wintertree SSCE)
 spell_license=<lizenzschlüssel> (Geben Sie den Wert des Lizenzschlüssels der erworbenen Software für die Rechtschreibprüfungskomponente Version 5.10 von WinterTree in der Eigenschaft <lizenzschlüssel> ein)

spellservice.properties

Speicherposition: Datei <WPC5.2_INSTALL_VERZ>/etc/default/plugins/wintertree/spellservice.properties

Werte: Ersetzen Sie alle Vorkommen von <WINTERTREE_INSTALL_VERZ> in den MainLexicon<n>-Eigenschaften durch die installierte Position der Software für die WinterTree-Rechtschreibprüfungskomponente auf Ihrem System. Dadurch werden die Lexika/Wörterverzeichnisse und die Laufzeiteigenschaften Ihrer Rechtschreibprüfungskomponente konfiguriert.

ccd.rc

Speicherposition: Datei <WPC5.2_INSTALL_VERZ>/setup/ccd.rc

Erstellen Sie von der Datei <WPC_INSTALL_VERZ>/jars/ssce.jar aus eine symbolische Verbindung zu der installierten JAR-Datei von WinterTree mit dem Namen 'ssce.jar' im Verzeichnis <WINTERTREE_INSTALL_VERZ>/runtime/lib. Dies kann durch Hinzufügen einer Zeile ohne Kommentarzeichen zu dieser Datei erreicht werden, wie im folgenden Beispiel gezeigt:

Beispiel:

- AddJar $JARDIR/ssce.jar

 

Kapitel 8 - Sicherheit

LDAP-Integration

Die LDAP-Integration (LDAP = Lightweight Directory Access Protocol) verbessert die Sicherheitsinfrastruktur von WebSphere Product Center durch die Einführung von drei Funktionsaspekten in WebSphere Product Center:


Funktionsübersicht

Die LDAP-Integration bietet die Funktionalität, LDAP-Systeme von Drittherstellern für Authentifizierungzwecke zu verwenden. Vor dem Hintergrund der Komplexität bei der Verwendung von LDAP-Leistungsmerkmalen von Drittherstellern für die Berechtigung wird die bestehende Berechtigungsinfrastruktur, die in WebSphere Product Center 5.2 verfügbar ist, zum Berechtigen der LDAP-Benutzer verwendet, wohingegen die Authentifizierung im Bereich von LDAP ausgeführt wird. Die Nutzungsrechte von LDAP-Benutzern und -Aufgabenbereichen für WPC basieren beide auf der Laufzeit sowie auf von Benutzern/vom System aufgerufenen Scriptoperationen. Ein LDAP-Benutzer in WebSphere Product Center wird durch Verwendung einer LDAP-Markierung von anderen unterschieden.

Die Integration von LDAP in WebSphere Product Center stellt eine verbesserte Sicherheitsberechtigungsinfrastruktur bereit, die die Unterstützung von mehr als 1.000 gelegentlichen Benutzern, die für verschiedene (interne und externe) Aufgabenbereiche berechtigt werden müssen. Beispielsweise ist ein Kategoriemanager ein interner Aufgabenbereich, der Assistent eines Markenmanagers ist jedoch ein externer Aufgabenbereich.

Für WebSphere Product Center 5.2 wird die LDAP-Integration lediglich mit IBM Tivoli Directory Server Version 5.2 (mit Unterstützung für LDAP V3) zertifiziert. Dennoch wird die Implementierung für die Arbeit mit folgenden LDAP-Servern erweiterbar gemacht: Sun Java System Directory Server 5.2, Weblogic 8.1 – Embedded LDAP Server und Novell® eDirectory™ 8.7.3.

Hinweis: In diesem Release gibt es keine Unterstützung für Leistungsmerkmale für die Einzelunterzeichnung (Single Sign). Die Implementierung von Einzelunterzeichnung ist für ein zukünftiges Release geplant.

Funktionale Übersicht

Voraussetzungen

Wenn ein Benutzer in einer Sitzung authentifiziert wurde, ist er bis zum Ende dieser Sitzung authentifiziert, selbst wenn die Benutzeridentität während dieses Zeitraum geändert wird (d. h. Änderung des Aufgabenbereichs, des Kennworts usw.).

Einschränkungen

Localespezifische Zeichenfolgenextraktion bei Suchvorgängen nach LDAP-Einträgen wurden für dieses Release nicht zertifiziert. 

Auswirkungen auf die Migration bei Versionen vor Version 5.2

In der WPC-Benutzerentität (WPC USER ENTITY) gibt es auf Grund der Einführung einer neuen LDAP-Markierung (LDAP FLAG) zur Unterscheidung zwischen LDAP-Benutzern und Product Center-Benutzern eine Schemaänderung.


LDAP in WebSphere Product Center integrieren

In diesem Abschnitt werden die Tasks beschrieben, die für die Integration von LDAP für IBM Tivoli Directory Server Version 5.2 in WebSphere Product Center 5.2 erforderlich sind. Dabei wird davon ausgegangen, dass IBM Tivoli Directory Server Version 5.2 korrekt installiert wurde. Für die Konfiguration von LDAP ist erforderlich, dass ein LDAP-Schema für Benutzer und Aufgabenbereiche für IBM Tivoli Directory Server Version 5.2 konfiguriert wurde.

Gehen Sie wie folgt vor, um LDAP in WebSphere Product Center zu integrieren:

1. Suchen Sie die für die LDAP-Konfiguration gepackte Konfigurationsdatei.

2. Konfigurieren Sie ein LDAP-Schema für Benutzer und Aufgabenbereiche für IBM Tivoli Directory Server Version 5.2.

3. Bearbeiten Sie die LDAP-Konfigurationsdatei.

4. Aktivieren Sie die LDAP-Markierung in WebSphere Product Center.

5. Starten Sie WebSphere Product Center erneut.

1. Konfigurationsdateipaket für LDAP-Konfiguration suchen

    <WPC5.2_INSTALL_VERZ>/etc/default/ldap_config.xml

2. LDAP-Schema für Benutzer und Aufgabenbereiche konfigurieren

Neuen Realm erstellen

1. Erstellen Sie im Webverwaltungs-Tool von IBM Tivoli Directory Server einen neuen Realm, und verwenden Sie dazu den Menüpfad Realms und Schablonen > Realm hinzufügen.

2. Füllen Sie alle erforderlichen Felder aus. 

3. Wählen Sie die Objektklassendomäne als übergeordneten DN aus.

Beispiel:

Relativer DN Übergeordneter DN
cn=myrealm dc=wpcdomain.dc=isl.dc=com

Neue Benutzerschablone erstellen

1. Erstellen Sie im Webverwaltungs-Tool von IBM Tivoli Directory Server eine neue Benutzerschablone, indem Sie auf Realms und Schablonen > Benutzerschablone hinzufügen klicken.  

2. Geben Sie den oben erstellten Realmeintrag als übergeordneten DN ein. Wählen Sie für die strukturelle Objektklasse den Wert inetOrgPerson aus.  

3. Bearbeiten Sie die Registerkarte für erforderliche Attribute, so dass darin die ganze folgende Liste der erforderlichen Attribute enthalten ist:

4. Ordnen Sie diese Benutzerschablone dem oben erstellten Realm zu, indem Sie den Menüpfad Realms und Schablonen > Realms verwalten > Bearbeiten verwenden.

Beispiel:

Übergeordneter DN
dc=wpcdomain,dc=isl,dc=com
cn=mytemplate,dc=wpcdomain,dc=isl,dc=com


Neuen Benutzer erstellen

1. Erstellen Sie im Webverwaltungs-Tool von IBM Tivoli Directory Server einen neuen Benutzer, indem Sie den Menüpfad Benutzer und Gruppen > Benutzer hinzufügen verwenden.

2. Wählen Sie den oben erstellten Realm als Realm für diesen Benutzer aus. 

3. Machen Sie auf Registerkarte für erforderliche Attribute die entsprechenden Eingaben, damit alle oben genannten Attribute angegeben sind.

Neue Gruppe erstellen

1. Erstellen Sie im Webverwaltungs-Tool von IBM Tivoli Directory Server eine neue Gruppe, indem Sie den Menüpfad Benutzer und Gruppen > Gruppe hinzufügen verwenden.

2. Wählen Sie den oben erstellten Realm als Realm für diese Gruppe aus. Die Objektklasse für die Gruppe ist groupOfNames. 

3. Ordnen Sie die Benutzer Gruppen zu.

3. LDAP-Konfigurationsdatei bearbeiten

Die folgende LDAP-Konfigurationsdatei ist für die Integration von LDAP in WebSphere Product Center erforderlich:

<WPC5.2_INSTALL_VERZ>/etc/default/ldap_config.xml

Bearbeiten Sie die Datei ldap_config.xml für die LDAP-Laufzeitauthentifizierung, indem Sie die in Klammern angezeigten Werte durch die entsprechenden Werte der LDAP-Installation ersetzen.

<?xml version="1.0" encoding="UTF-8"?>
<LdapConfiguration>
    <connectionInfo>
        <connectionParam name = "java.naming.provider.url"> (Geben Sie die LDAP-Server-URL ein)</connectionParam>
        <connectionParam name = "java.naming.security.principal">(Geben Sie den Benutzernamen für die Protokollierung auf dem LDAP-Server ein)</connectionParam>
        <connectionParam name = "java.naming.security.credentials">(Geben Sie das Kennwort für die Protokollierung auf dem LDAP-Server ein)</connectionParam>
        <connectionParam name = "java.naming.security.authentication">simple</connectionParam>
        <connectionParam name = "java.naming.referral">follow</connectionParam>
        <connectionParam name = "java.naming.factory.initial">com.sun.jndi.ldap.LdapCtxFactory</connectionParam>
        <connectionParam name = "java.naming.ldap.version">3</connectionParam>
    </connectionInfo>

<RoleMapping>
    <Object name = "Role Class">groupOfNames</Object>
</RoleMapping>
<WPCUserCredentialMappings ParentDN="(Geben Sie den Basis-DN für die Benutzerobjekte ein)" ObjectClass="inetOrgPerson">

Im aktuellen Beispiel lautet der Basis-DN wie folgt: cn=myrealm,dc=wpcdomain,dc=isl,dc=com

        <WPCUserParam name = "UserName">uid</WPCUserParam>
        <WPCUserParam name = "FirstName">cn</WPCUserParam> >
        <WPCUserParam name = "LastName">sn</WPCUserParam> >
        <WPCUserParam name = "Email">mail</WPCUserParam> >
        <WPCUserParam name = "Address">postalAddress</WPCUserParam> >
        <WPCUserParam name = "Phone">telephoneNumber </WPCUserParam> 
        <WPCUserParam name = "Fax"> TelexNumber</WPCUserParam> >
    </WPCUserCredentialMappings>
</LdapConfiguration>

4. LDAP aktivieren

Aktivieren Sie in der WebSphere Product Center-Datei common.properties die LDAP-Markierung.

    Beispiel:

    enable_ldap=true

5. System erneut starten

Führen Sie nach Beendigung der vorherigen vier Konfigurationsschritte für LDAP einen Neustart von WebSphere Product Center aus.

Kapitel 9 - Fehlerbehebung

Tools


Probleme mit dem Anwendungsserver

Probleme mit der Umgebung

Der Pseudobenutzer auf dem Anwendungsserver muss in WebSphere Product Center die folgenden Umgebungsvariablen konfigurieren, bevor er WebSphere Product Center startet:

Außerdem muss das Shell-Script init_ccd_vars.sh vor dem Starten von WebSphere Product Center als Quelle angegeben werden. Dies geschieht normalerweise in der Benutzerdatei .bashrc.

Die Umgebungsvariable CLASSPATH sollte nicht mehr geändert werden, nachdem init_ccd_vars.sh als Quelle angegeben wurde.

Häufig vorkommende Fehler beim Einrichten der Konfigurationsdatei

Der häufigste Fehler ist eine nicht korrekte Datenbankkennung in der Datei common.properties. Eine falsch konfigurierte Datenbank zeigt die folgenden Symptome:

Anwendungsserver, Ereignisprozessor, Warteschlangenmanager, Planungsfunktion und Workflow-Engine können nicht gestartet werden

Fehler in den Protokolldateien logs/db_pool und logs/svc/

smtp_address. Smtp_address sollte auf ein SMTP-Relais zeigen, entweder Sendmail auf dem lokalen Host, oder auf ein anderes System, das E-Mails außerhalb des Unternehmens versenden kann.

Wenn die Lizenzdatei (WPC_license.xml) fehlt oder fehlerhaft ist, werden keine Services gestartet. Dieser Fehler zeigt sich in den Protokolldateien unter logs/svc

Anwendungsserver antwortet nicht

Szenario

Der Anwendungsserver reagiert praktisch nicht mehr. Obwohl man für den Server ein Pingsignal absetzen kann, kann der Benutzer sich nicht in der Umgebung und der Administrator sich nicht am Anwendungsserver anmelden.

Überprüfen Sie Folgendes:

Stellen Sie fest, ob ein Benutzer kürzlich einen ungewöhnlich großen Job gestartet hat. Wenn dieser Job beabsichtigt war, prüfen Sie das von dem Job verwendete Script.


Probleme mit der Datenbank

1. Zeichenkonvertierung während des Imports oder Exports von Daten

2. Probleme bei der Datenbankbereichszuordnung

3. Probleme durch Datenblockbeschädigung und Indexbeschädigung

4. Import- oder Exportblockierung, ohne Änderungen in der Statusleiste, auch nach längerer Zeit

5. Nach dem Abbruch eines auszuführenden Jobs wird die Anwendung extrem langsam

6. Probleme beim Zurücknehmen des Widerrufs für Protokollwechsel

7. Blockierung der WebSphere Product Center-Middleware und der GUI

8. Blockierung der Analyse von Schemajobs

9. SQL-Verbindung wird automatisch erneut gestartet


1. Zeichenkonvertierung während des Imports oder Exports von Daten

Problem

Während des Exports oder Imports einer Datenbank werden beim Erstellen von Testumgebungen mittels einer Kopie der Datenbank Fehlernachrichten angezeigt, die den verwendeten Zeichensatz betreffen.

Symptome

Wenn z. B. eine Datenbank unter Verwendung des Zeichensatzes US7ASCII exportiert wird, erscheint die folgende Fehlernachricht im Exportprotokoll:

Export done in US7ASCII character set and UTF8 NCHAR character set server uses UTF8 character set (possible charset conversion)

Problemlösung

Richten Sie bei jedem Export oder Import der Datenbank den Parameter NLS_LANG so ein, dass der Zeichensatz american_america.utf8 verwendet wird.

2. Probleme bei der Datenbankbereichszuordnung

Problem

Import- und Exportjobs schlagen gelegentlich fehl, weil Tabellen, Indizes, ROLLBACK-Segmenten und temporären Segmenten nicht genügend Speicherplatz zugeordnet wurde.

Symptom

Wenn das ROLLBACK-Segment oder der Tabellenbereich des ROLLBACK-Segments voll sind, erscheint in der Alertprotokolldatei in etwa die folgende Fehlernachricht:

ORA-1650: unable to extend rollback segment RBS8 by 512 in tablespace RBS

Failure to extend rollback segment 9 because of 1650 condition FULL status of rollback segment 9 set.

Problemlösung

3. WebSphere Product Center wird langsamer, sobald ein aktiver Job abgebrochen wird.

Problem

Wenn ein Job wie Import oder Export abgebrochen wird, muss das Datenbanksystem die komplette Transaktion zurücksetzen, um die Datenbank wieder in einen konsistenten Status zu versetzen. Dieser ROLLBACK-Prozess benötigt maximale Systemressourcen, wie CPU-Zeit und Speicher.

Symptome

Die Middleware von WebSphere Product Center wird langsamer, nachdem ein laufender Job abgebrochen wurde.

Problemlösung

Warten Sie, bis die ROLLBACK-Operation abgeschlossen ist und das System wieder normal funktioniert. Brechen Sie laufende Jobs nicht ab, wenn es nicht notwendig ist.

4. Probleme beim Wechsel des Protokolls für die Rücknahme des Widerrufs

Problem

Eine unverhältnismäßige Anzahl oder Größe von Protokolldateien kann dazu führen, dass das Datenbanksystem lange wartet, bis ein Protokollwechsel ausgeführt wird.

Symptome

Das Datenbanksystem wartet sehr lange auf einen Protokollwechsel und darauf, dass alle Dateien für den Widerruf des Protokollwechsels aktiv sind.

Problemlösung

5. Blockierung der WebSphere Product Center-Middleware und der GUI

Problem

Wenn Fehler beim Zugriff auf die Middleware von WebSphere Product Center auftreten, ist möglicherweise die Verbindung zur Datenbank verloren gegangen.

Symptome

Die Middleware von WebSphere Product Center ist blockiert oder im Dauer-Wartestatus. Es treten Fehler auf, wenn versucht wird, auf die Middleware von WebSphere Product Center zuzugreifen.

Problemlösung

6. Blockierung des Jobs für Schemaanalyse

Problem

Es wird empfohlen, gelegentlich das Schema zu analysieren, wenn Sie große Datenmengen in die Datenbank laden oder die Datenbanktabellen bereinigen.

Die Middleware von WebSphere Product Center muss gestoppt werden, bevor Sie eine Analyse des Schemas ausführen. Wenn die Middleware nicht gestoppt wird, wird der Job für die Schemaanalyse möglicherweise blockiert, weil die Tabellen noch von der Middleware verwendet werden.

Symptome

WebSphere Product Center ist blockiert, wenn eine Schemaanalyse ausgeführt wird.

Problemlösung

Wenn die Schemaanalyse blockiert ist, brechen Sie den Analysejob ab, stoppen Sie die Middleware von WebSphere Product Center, analysieren Sie das Schema noch einmal und starten Sie WebSphere Product Center erneut.

Analysieren Sie das Schema in regelmäßigen Abständen, um die neusten Statistiken über die Datenverteilung in der Datenbank zu erfassen.


Protokolldateien auf Fehler überwachen

Das Überwachen und Überprüfen von Systemprotokolldateien kann zum Diagnostizieren und Lösen zahlreicher Probleme beitragen.

Hinweis: Dieses Kapitel wird in der nächsten Version des Dokuments erweitert. Sie erhalten dann weitere Informationen zur Verwendung von Protokolldateien und zu Fehlerbehebungsverfahren.


Konnektivitätsprobleme

HTTP-Sendefehler

Wenn HTTP-Sendefehler auftreten, untersuchen Sie Folgendes:

1.    Kann die WebSphere Product Center-Maschine das Ziel erkennen?

  • Verwenden Sie einen Linux- oder Unix-HTTP-Browser, wie z. B. "Lynx", und geben Sie die URL der WebSphere Product Center-Middleware ein, um festzustellen, ob auf das Ziel zugegriffen werden kann.
  • Wenn ein Browser über den WebSphere Product Center-Server, nicht verfügbar ist, versuchen Sie über Telnet auf den Zielport 80 zu gelangen. Beispiel: Wenn die Ziel-URL http://myserver/<urlname> lautet, geben Sie "telnet myserver 80" ein (Port 80 ist der Standard-HTTP-Browser der meisten Web-Server).

2.    Falls WebSphere Product Center das Ziel sehen kann, arbeitet der WebSphere Product Center-Verteiler korrekt?

  • Prüfen Sie in $TOP/public_html/created_files/distributor, ob neue Dateien vorhanden sind. Überprüfen Sie, ob eine Datei die ungefähre Zeitmarke des Zeitpunkts hat, als Sie versuchten, die Datei durchzuleiten.
  • Es ist möglich, dass ein nicht mehr steuerbares Script eine fehlerhafte Ausgabedatei generiert hat. Überprüfen Sie die Dateigröße. Entspricht die Dateigröße Ihren Erwartungen? Wenn es sich um eine XML-Datei oder eine sonstige lesbare Datei handelt, geben Sie die Datei aus. Enthält sie die korrekten Informationen, die Sie erwartet hatten?

3.    Wenn die Datei vorhanden ist, schreitet die Übertragung voran?

  • Sie können verschiedene Tools verwenden, um festzustellen, ob tatsächlich eine Übertragung stattfindet und voranschreitet. Sie benötigen mindestens den kombinierten Einsatz von "netstat" und "snoop" (unter Solaris) oder "tcpdump" (unter Linux).
  • Passen Sie Ihre Erwartungen an. Wenn die Datei 300 MB groß ist, und an eine URL über das Internet übertragen wird, kann die Datei höchstens mit der maximalen Geschwindigkeit der Internetverbindung gesendet werden.

FTP-Abruffehler

Wenn WebSphere Product Center versucht, sich an einem Ziel-FTP-Server anzumelden und das angegebene Verzeichnis nicht finden kann, tritt der Fehler "Unable to change to remote directory."  auf.

Dieser Fehler hat mehrere Ursachen:

Java-Konnektivität testen

Die JDBC-URL wird in der Datei common.properties definiert. Wenn Sie die Java-Konnektivität von der WebSphere Product Center-Middleware zur JDBC-URL testen möchten, verwenden Sie das folgende Script:

$TOP/bin/test_java_db.sh

Das Script versucht, eine Verbindung zur Datenbank herzustellen und einen einfachen Befehl 'select count(*) from dual' auszuführen. Wenn die Verbindung aufgebaut werden konnte, werden die Ergebnisse aus dem Testscript angezeigt.


Sonstige Probleme

WebSphere Product Center stoppen und erneut starten

Es sind Probleme beim Einsatz regelmäßiger Stopscripts unter Linux/Solaris berichtet worden. Anscheinend stoppt WebSphere Product Center nicht ordnungsgemäß und reibungslos. In diesem Fall sollten Sie WebSphere Product Center mit den folgenden Schritten stoppen und starten:

1. Versuchen Sie, WebSphere Product Center auf die "sanfte" Art zu stoppen, indem Sie das folgende Script ausführen:

 $TOP/bin/go/stop_local.sh

2. Warten Sie etwa eine Minute und geben Sie dann den folgenden Befehl ein:

ps -u (Benutzername ohne Klammern eingeben)

3. Sollten etwaige Java-Prozesse aktiv sein, ist möglicherweise ein terminierter Job noch in der Verarbeitung. Falls gewünscht, können Sie warten, bis der Job beendet ist, oder stoppen Sie ihn manuell mit dem folgenden Script:

$TOP/bin/go/abort_local.sh

Warten Sie etwa 30 Sekunden und geben Sie dann den folgenden Befehl ein:

ps -u (Benutzername ohne Klammern eingeben)

5. Wenn weiterhin aktive Java-Prozesse vorhanden sind, ist die JVM höchstwahrscheinlich abgestürzt. Die Java-Prozesse müssen manuell mit dem folgenden Befehl abgebrochen werden:

kill `ps -u (Benutzername ohne Klammern eingeben)
| grep java | cut -b10-15`

Hinweis: Falls noch immer Java-Prozesse vorhanden sind, muss das System eventuell erneut gestartet werden.

6. Wenn alle Java-Prozesse abgebrochen wurden, starten Sie WebSphere Product Center erneut und verwenden Sie das folgende Script:

$TOP/bin/go/start_local.sh

7. Warten Sie etwa eine Minute und prüfen Sie, ob WebSphere Product Center ordnungsgemäß gestartet wurde. Führen Sie das Script $TOP/bin/go/rmi_status.sh aus oder melden Sie sich in der WebSphere Product Center-Umgebung an.

Kapitel 10 - Migrationsframework 

Für die Migration von WebSphere Product Center Version 4.2.0.x auf Version 5.2 ist ein Migrationsframework verfügbar. Ein Migrationsframework für die Migration von WebSphere Product Center Version 5.0 und 5.1 auf Version 5.2 wird zu einem späteren Zeitpunkt bereitgestellt. Da zwischen den Releases 5.0 und 5.2 nur sehr wenige bekannte zentrale Änderungen vorgenommen wurden, kann die Migration bei Bedarf manuell ausgeführt werden. Wenden Sie sich an Ihren WebSphere Product Center-Ansprechpartner, um weitere Informationen zu erhalten.

Migration von Version 4.2.0.x auf Version 5.2

In Version 4.2.0.x gibt es Shell-Scripts, die den Export und Import aller Objekte für ein bestimmtes Unternehmen in WebSphere Product Center unterstützen:

Exporte

Importe

Die oben genannten Scripts erleichtern den Export aller WebSphere Product Center-Objekte in Version 4.2.0.x als Zip-Datei. Diese Zip-Datei wird dann in Version 5.2 importiert, um Migrationsaktivitäten auszuführen.  

Unternehmen exportieren

Ein Unternehmen in WPC 4.2.0.x kann auf zwei unterschiedliche Arten exportiert werden. 

1. Unter Verwendung eines Shell-Script-Dienstprogramms mit dem Namen $TOP/bin/exportCompanyAsZip.sh.

Verwendung: 

exportCompanyAsZip --company_code=<code> --script_path=<pfad/zu/trigo/script>
Dabei gilt Folgendes:

Nachfolgend ist ein Beispielscript aufgeführt.

envObjList = new EnvObjectList();
envObjList.addAllObjectsToExport("CATALOG");
envObjList.addAllObjectsToExport("HIERARCHY_MAPS");
envObjList.addAllObjectsToExport("MAPS");
envObjList.addAllObjectsToExport("FEEDS");
envObjList.addAllObjectsToExport("LOOKUP_TABLE");
envObjList.addAllObjectsToExport("ATTRIBUTE_COLS");
envObjList.addAllObjectsToExport("CONTAINER_ACCESSPRV");
envObjList.addAllObjectsToExport("HIERARCHY");
envObjList.addAllObjectsToExport("COMPANY_ATTRIBUTES");
envObjList.addAllObjectsToExport("SPEC");
envObjList.addAllObjectsToExport("DATASOURCE");
envObjList.addAllObjectsToExport("USERS");
envObjList.addAllObjectsToExport("ACG");
envObjList.addAllObjectsToExport("ROLES");
envObjList.addAllObjectsToExport("CATALOG_CONTENT");
envObjList.addAllObjectsToExport("HIERARCHY_CONTENT");
envObjList.addAllObjectsToExport("LOOKUP_TABLE_CONTENT");
envObjList.addAllObjectsToExport("DOC_STORE");
envObjList.addAllObjectsToExport("MY_SETTINGS");
envObjList.addAllObjectsToExport("DISTRIBUTION");
envObjList.addAllObjectsToExport("DOC_STORE");

sDocFilePath = "archives/company.zip";
exportEnv(envObjList, sDocFilePath);

2. Unter Verwendung des Scripts, das oben bereitgestellt wurde, und durch direktes Ausführen dieses Scripts in einer für WebSphere Product Center-Scripts aktivierten Umgebung (d. h. ein Importjob, ein Bericht oder sogar direkt in der Script-Sandbox).

Bestimmte vordefinierte WPC-Objekte können auch mit Hilfe des Shell-Scripts '$TOP/bin/exportCompany.sh' als Scripts aus einer WPC-Umgebung exportiert werden. Dieses Script exportiert die Objekte als Shell-Scripts, so dass diese WPC-Objekte durch Ausführung dieser Sripts in einer anderen Umgebung erneut erstellt werden können. Bei der Migration wird dieser Vorgang aber nicht für den Export von WPC-Objekten eingesetzt, da dieses Dienstprogramm keine WPC-Objektinhalte (z. B. Element- oder Kategorieinformationen in einer Hierarchie) exportieren kann.

Unternehmen importieren

Der Import eines Unternehmens kann auf drei verschiedene Arten ausgeführt werden.

1. Unter Verwendung des Shell-Scripts '$TOP/bin/importCompanyFromZip.sh'.

Verwendung: importCompanyAsZip --company_code=<code> --zipfile_path=<pfad/zu/import/archiv>
Dabei gilt Folgendes:

company_code ist der Unternehmenscode des zu importierenden Unternehmens. 
zipfile_path ist eine Speicherposition im Dokumentspeicher, an der ein Zip-Archiv eines Unternehmens gespeichert ist.

2. Unter Verwendung der WPC-Scriptoperation 'importEnv(String sDocFilePath)'.
Dabei gilt Folgendes:

sDocFilePath ist eine Speicherposition im Dokumentspeicher, an der ein Zip-Archiv eines Unternehmens gespeichert ist.

Ein WPC-Unternehmen kann auch unter Verwendung des Ergebnisses des Scripts 'exportCompany.sh' importiert werden. Bei der Migration wird dieser Vorgang aber nicht eingesetzt, da das Script 'exportCompany.sh' keine WPC-Objektinhalte (z. B. Element- oder Kategorieinformationen in einer Hierarchie) exportieren kann.

3. Unter Verwendung der Option 'Umgebung importieren' der Anwendungs-GUI.

Daten unter Verwendung der GUI der Anwendung importieren:

Auswirkungen auf die Migration

Bei dem vorhandenen Import-/Export-Tool-Framework in WPC 4.2.0.x werden die folgenden WPC-Objekte nicht exportiert:  
Auswahl

Die Exportfunktionen in Version 4.2.0.x werden so aktualisiert, dass der Export dieser WPC-Objekte ebenfalls unterstützt wird.

In WPC 5.2 wird neben dem Stil 'RPC/Verschlüsselt', der bereits in der früheren Version vorhanden ist, Unterstützung für dokument-/literalbasierte SOAP-Anforderungen bereitgestellt. Diese Migrationsaktivität muss getestet werden. 


Migration von Version 4.2.1 auf Version 5.2

Version 4.2.1 enthält die offizielle Freigabe der Import-/Exporttools. Dieses Feature stellt einen GUI-Funktionspunkt zur Option 'Umgebung importieren' für das Importieren von Daten bereit, die über eine Zip-Datei von einem Unternehmen in WebSphere Product Center in ein anderes Unternehmen in derselben Version von WebSphere Product Center exportiert wurden.

Eine XML-Steuerdatei definiert die Reihenfolge der Importvorgänge. Diese Steuerdatei wird während des Exportvorgangs erstellt und in die Zip-Datei gepackt. Das empfohlene Migrationsframework für Kunden besteht in der Verwendung des Scripts 'exportCompanyAsZip.sh' in Version 4.2.0.x, um die gesamten Unternehmensdaten zu exportieren. Die Ausgabe-Zip-Datei dieses Scripts sollte für den Import über die Option 'Umgebung importieren' oder über das Script 'importCompanyFromZip.sh' in Version 5.2 kompatibel sein.

Kapitel 11 - Unterstützung für Web-Services

Unterstützung für WSDL (Web Services Definition Language) - Unterstützung für Anforderungen/Antworten in WSDL 1.2 und SOAP 1.2 für einfache Anforderungsnachrichten. Das Menü 'Manager für elektronisches Teamwork' enthält ein Modul 'Web-Services' für die Konfiguration von Services in der Web-Service-Konsole. Zurzeit ist SOAP über HTTP das einzige unterstützte Protokoll.

Definitionen

WebSphere Product Center stellt eine Scriptingschicht bereit, die als API-Schicht verwendet werden kann. Diese Scripts können als Web-Services weiter zugänglich gemacht werden. Für jede Geschäftsfunktion, die in WebSphere Product Center zugänglich gemacht werden muss, wird ein Web-Service erstellt. Es wird eine entsprechende Anfordereranwendung generiert, die mit dem Web-Service interagieren soll. Der Web-Service führt für WebSphere Product Center mindestens ein Script aus und arbeitet außerdem mit anderen Web-Services zusammen, um die gewünschte Geschäftsfunktion bereitzustellen.

Im folgenden Diagramm wird ein Anwendungsfall für Anforderungen/Antworten in WSDL 1.2 und SOAP 1.2 für einfache Anforderungsnachrichten gezeigt.

 

Allgemeiner WSDL-Anwendungsfall

Web-Services werden unter Verwendung der Web-Service-Konsole konfiguriert. Bei den folgenden Schritten wird ein allgemeiner WSDL-Anwendungsfall genutzt.

1. Web-Service-Konsole – Klicken Sie auf 'Neu', und geben Sie die erforderlichen Informationen für die folgenden Felder ein: 

2. Web-Service-Definitionsdatei.

Die Web-Service-Definitionsdatei wird von der Web-Service-Konsole aus hochgeladen und enthält eine Beschreibung des betreffenden Web-Service im WSDL 1.2-Format. Der Web-Service verwendet die Anforderungs-/Antwortcodierung von SOAP 1.2, und die WSDL-Datei enthält Folgendes:

Hinweis: Die Web-Service-Definitionsdatei wird auf dem standardmäßigen HTTP-Server veröffentlicht, der der HTTP-Server für WebSphere Product Center ist. Dabei handelt es sich auch um den Server, auf dem das Web-Service-Definitionsscript veröffentlicht wird. Das System stellt über die Schaltfläche 'Hilfe' Unterstützung bereit.

3. Web-Service-Implementierungsscript - Das Web-Service-Implementierungsscript wird durch eine eingehende SOAP 1.2-Anforderungsnachricht aufgerufen, die der oben angegebenen Web-Service-Definition entspricht. Das Web-Service-Implementierungsscript führt die folgenden Aktionen aus:

4. Anforderungsnachricht der Anfordereranwendung: Der Administrator der Anfordereranwendung schreibt einen Prozess, um eine SOAP 1.2-Nachricht zu erstellen, die der Web-Service-Definitionsdatei entspricht, die in Schritt 2 beschrieben wurde.

5. Antwortnachricht der Anfordereranwendung: Der Administrator der Anfordereranwendung schreibt einen Prozess, um eine SOAP 1.2-Nachricht zu empfangen und zu bearbeiten, die der Web-Service-Definitionsdatei entspricht, die in Schritt 2 beschrieben wurde.

Laufzeitereignisse

Nachdem Web-Services konfiguriert wurden, treten die folgenden Ereignisse auf:

1. Der Benutzer führt einen Prozess in der Anfordereranwendung aus, der eine SOAP 1.2-Nachricht von der Anfordereranwendung für den HTTP-Server von WebSphere Product Center auslöst.

2. Die Anforderungsnachricht enthält lediglich ID-Attribute, wie GTIN oder UPC, GLN und Zielmarkt (Target Market).

3. WebSphere Product Center führt das Web-Service-Implementierungsscript aus, um die SOAP 1.2-Anforderungsnachricht auszuwerten, auf Produktinformationen zuzugreifen, eine SOAP 1.2-Antwortnachricht zu erstellen und diese zu übertragen.

4. (Optional) - Das System protokolliert die Anforderungs- und die Antwortnachricht im Dokumentspeicher. Das System protokolliert einen Link zu dieser Nachricht im Dokumentspeicher, so dass über die Nachrichtenkonsole darauf zugegriffen werden kann.

5. Die Anfordereranwendung empfängt eine Antwortnachricht.

6. Die Anfordereranwendung reagiert auf die Antwortnachricht.

Protokollkonfigurationsdateien für WebSphere Product Center-Services

Die folgenden Dateien steuern verschiedene Subsysteme im gesamten WebSphere Product Center. In jeder Datei wird die Position des generierten Protokolls definiert.

Hinweis: Alle Pfade sind relativ zu $TOP.

/etc/logs/eventprocessor.log.xml
/etc/logs/scheduler.log.xml
/etc/logs/system.log.xml
/etc/logs/appsvr.log.xml
/etc/logs/workflowengine.log.xml


Benutzerschnittstelle für Web-Services

Web-Service-Konsole

Die Web-Service-Konsole ermöglicht es Benutzern, Web-Services, die von WebSphere Product Center zugänglich gemacht werden, zu erstellen und zu verwalten. Um einen Service zu definieren, kann ein WSDL-Dokument geschrieben werden. Ein Implementierungsscript wird erstellt, um die Ausführung des Service zu steuern.

Spalten der Web-Service-Konsole

Die Web-Service-Konsole enthält die folgenden Spalten:

Auf die Web-Service-Konsole zugreifen

Um auf die Web-Service-Konsole zuzugreifen, müssen Sie den folgenden Menüpfad verwenden:

Manager für elektronisches Teamwork > Web-Services > Web-Service-Konsole.

Neuen Web-Service erstellen

Um einen neuen Web-Service zu erstellen, müssen Sie den folgenden Menüpfad verwenden: 

Manager für elektronisches Teamwork > Web-Services > Neuer Web-Service

Die Anzeige "Web-Service-Detail" wird geöffnet. Geben Sie die notwendigen Informationen ein, um den neuen Web-Service zu definieren. 

Details der Anzeige "Web-Service-Detail"

In diesem Abschnitt werden die einzelnen Felder der Anzeige "Web-Service-Detail" definiert.

Hinweis: Informationen zu Änderungen, die für die Unterstützung des Stils 'Dokument/Literal' für Web-Services vorgenommen wurden, finden Sie im folgenden Abschnitt.

Name des Web-Service: Geben Sie den Namen des Web-Service ein. Dieser Name bildet einen Teil der URL-Adresse des SOAP-Service. Er darf keine Leerzeichen enthalten. 

Beschreibung des Web-Service: Geben Sie eine Beschreibung für den Web-Service ein.

Protokoll: Das für den Web-Service verwendete Protokoll. Zurzeit ist SOAP over HTTP das einzig unterstützte Protokoll. Der Standardwert ist 'SOAP_HTTP'. 

Stil: Der Stil kann entweder den Wert “DOKUMENT_LITERAL” oder “RPC_VERSCHLÜSSELT” annehmen. Dem WPC-Script, das einen Service mit dem Stil 'Dokument/Literal' implementiert, wird der gesamte Anforderungshauptteil übergeben. Zudem wird erwartet, dass es einen gesamten Antworthauptteil zurückgibt. Einem WPC-Script eines Service mit dem Stil RPC/Verschlüsselt' wird eine Feldgruppe von Zeichenfolgeparametern übergeben. Zudem wird erwartet, dass es eine einzelne Zeichenfolge zurückgibt. Services mit dem Stil 'RPC/Verschlüsselt' können für einfache Anwendungen benutzerfreundlicher sein, während Services mit dem Stil 'Dokument/Literal' eine größere Flexibilität für komplexere Services bieten.

URL: Gibt die URL-Adresse an, über die auf den Service zugegriffen werden kann. Dieses Feld wird automatisch ausgefüllt, wenn der Web-Service gespeichert wurde. 

WSDL-URL: Die URL-Adresse, über die auf die WSDL-Datei für den Web-Service zugegriffen werden kann. Dieses Feld wird automatisch ausgefüllt, wenn der Web-Service gespeichert wurde. 

WSDL: Geben Sie die WSDL-Daten für diesen Service ein. Ein WSDL-Dokument ist eine Beschreibung der Schnittstelle, der URL-Adresse und des Protokolls des Service im XML-Format. Sie müssen dieses Dokument manuell eingeben. Unten wird jedoch ein WSDL-Beispieldokument bereitgestellt. Sie müssen gültiges XML für den Web-Service eingeben, um das Dokument erfolgreich speichern zu können. 

Implementierungsscript: Geben Sie ein WPC-Script ein, das diesen Service implementiert. Für einen Service mit dem Stil 'RPC/Verschlüsselt' sind die eingehenden Parameter des Service in der Feldgruppenvariable "soapParams" verfügbar, und der Rückgabewert für den Service muss eine Zeichenfolge sein, die in die Writervariable “out” geschrieben wird. Bei einem Service mit dem Stil 'Dokument/Literal' wird der SOAP-Anforderungshauptteil in der Zeichenfolgevariablen “soapMessage” bereitgestellt, und der Antworthauptteil muss in die Writervariable “out” geschrieben werden. Schreiben Sie für beide Stile den Fehlercode in die Writervariable "soapFaultCode", und schreiben Sie die Fehlernachricht in die Writervariable "soapFaultMsg", um einen SOAP-Fehler zurückzugeben. Ein Beispiel für ein Implementierungsscript wird unten bereitgestellt. 

Anforderungen speichern? Wenn diese Option ausgewählt ist, speichert WPC die Parameter aller eingehenden Anforderungen im Dokumentspeicher. Auf sie kann über die Transaktionskonsole zugegriffen werden. 

Antworten speichern? Wenn diese Option ausgewählt ist, speichert WPC die Inhalte aller Antworten im Dokumentspeicher. Auf sie kann über die Transaktionskonsole zugegriffen werden.

Implementiert: Wenn diese Option ausgewählt ist, wird der Service implementiert. Ansonsten steht der Service nicht zur Verfügung.

Beispiel für ein Implementierungsscript und ein WSDL-Dokument

Der folgende Web-Service mit dem Stil 'Dokument/Literal' gibt eine Börsennotierung für ein angegebenes Tickersymbol zurück. Dieses eingeschränkte Beispiel gibt nur für den Ticker “IBM” einen Wert zurück. Alle anderen Argumente führen zu einem SOAP-Fehler.

Dieser Web-Service-Endpunkt entspricht einer Java-Methode mit der folgenden Kennung:

java.math.BigDecimal getStockQuote(String ticker);

Implementierungsscript

// Anforderungsdokument auswerten
var doc = new XmlDocument(message);

// Tickerparameter abrufen
var ticker = parseXMLNode("ticker");

// Hier werden nur IBM Notierungen ausgegeben...
if (ticker == "IBM") {
out.println("<ibm:getStockQuoteResponse 
xmlns:ibm=\"http://ibm.com/wpc/test/stockQuote\">");
out.println(" <ibm:response>123.45</ibm:response>");
out.println("</ibm:getStockQuoteResponse>");
}
else {
soap_fault_msg.print("Nur Notierungen für IBM werden unterstützt");
}

WSDL

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:y="http://ibm.com/wpc/test/stockQuote" 
targetNamespace="http://ibm.com/wpc/test/stockQuote">
<types>
<xs:schema targetNamespace="http://ibm.com/wpc/test/stockQuote" 
elementFormDefault="qualified">
<xs:element name="getStockQuote">
<xs:complexType>
<xs:sequence>
<xs:element name="ticker" type="xs:string" nillable="false"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getStockQuoteResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="response" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>
<message name="getStockQuoteRequest">
<part name="parameters" element="y:getStockQuote"/>
</message>
<message name="getStockQuoteResponse">
<part name="parameters" element="y:getStockQuoteResponse"/>
</message>
<portType name="StockQuotePortType">
<operation name="getStockQuote">
<input message="y:getStockQuoteRequest"/>
<output message="y:getStockQuoteResponse"/>
</operation>
</portType>
<binding name="StockQuoteBinding" type="y:StockQuotePortType">
<soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getStockQuote">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="StockQuoteService">
<port name="StockQuotePort" binding="y:StockQuoteBinding">
<soap:address 
location="http://example.wpc.ibm.com/services/StockQuoteService"/>
</port>
</service>
</definitions>

Transaktionen verwalten

Auf die Transaktionskonsole zugreifen

Um nach allen Web-Service-Transaktionen zu suchen, müssen Sie die Transaktionskonsole anzeigen, indem Sie den folgenden Menüpfad verwenden: 

Manager für elektronisches Teamwork > Web-Services > Transaktionskonsole.

Web-Service-Transaktion anzeigen

1. Zeigen Sie in der Transaktionskonsole in der Tabelle mit den Web-Service-Transaktionen die Liste der Transaktionen an.

2. Klicken Sie in der Spalte Antwort oder in der Spalte Anforderung auf die Schaltfläche 'Anzeigen'. Die Transaktionsdetails werden in einem neuen Browserfenster angezeigt.

Web-Service-Transaktion suchen

1. Wählen Sie in der Transaktionskonsole in den Feldern Eingangsdatum von und Eingangsdatum bis der Tabelle "Web-Service-Transaktionen suchen" einen Datumsbereich aus.

2. Klicken Sie auf die Schaltfläche Suchen. Alle Transaktionsergebnisse werden in der Tabelle "Web-Service-Transaktionen" unterhalb der Suchtabelle angezeigt.

Portal Server-Integration

Durch Portalintegration bieten Lieferanten Einzelhändlern unter anderem folgende Vorteile:

Für die ordnungsgemäße Integration mit WebSphere Portal Server stellt WebSphere Product Center ein Web-Services-Framework mit folgenden Funktionen zur Verfügung:

Web-Services-Framework-Unterstützung für Portal Server

Für die Integration mit WebSphere Portal Server unterstützt die Web-Services-Funktionalität die folgenden Funktionen: 

Deshalb umfasst das Web-Services-Framework die folgenden Funktionen:

Scriptoperationen mit Unterstützung für Web-Services 

Die in der folgenden Liste aufgeführten Scriptoperationen unterstützen die WebSphere Product Center-Unterstützung für Web-Services, die in der Script-Sandbox zur Verfügung stehen:

Hinweis: Zusätzliche Informationen (Prototyp und Beschreibung) zu jeder Scriptoperation finden Sie in der Script-Sandbox in WebSphere Product Center.

· createWebService
· deleteWebService
· getDesc
· isDeployed
· getLoginString
· getImplScriptPath
· getName
· getProtocol
· getStoreIncoming
· getStoreOutgoing
· getStyle
· getUrl
· getWebServiceByName
· getWsdlDocPath
· getWsdlUrl
· invokeSoapServer
· saveWebService
· setDeployed
· setDesc
· setImplScriptPath
· setName
· setProtocol
· setStoreIncoming
· setStoreOutgoing
· setStyle
· setWsdlDocPath

Unterstützung für den Stil 'Dokument/Literal'

Dieser Abschnitt enthält die Details zur Unterstützung des Stils 'Dokument/Literal' für die Web-Service-Unterstützung in WebSphere Product Center. Der Web-Service-Stil 'RPC/Verschlüsselt' wurde bereits in früheren Versionen zur Verfügung gestellt. Die Web-Services des Stils 'RPC/Verschlüsselt' unterstützten jedoch nur einfache Zeichenfolgetypen. Um dem Bedarf an Unterstützung für das Senden und Empfangen komplexer Typen zu begegnen, unterstützt WebSphere Product Center nun auch den Web-Service-Stil 'Dokument/Literal'.  

Funktionsweise des Web-Service-Stils 'Dokument/Literal' in WebSphere Product Center

Zur Implementierung eines Web-Services des Stils 'Dokument/Literal' muss ein Benutzer zunächst einen Web-Service erstellen, der sowohl eine WSDL mit der Definition des Serviceschemas als auch ein WebSphere Product Center-Auslöserscript enthält, das beim Auftreten einer Anforderung aufgerufen wird. Beim Speichern des Web-Services muss der Benutzer explizit angeben, dass der Web-Service implementiert werden soll. Bei der Implementierung erstellt WebSphere Product Center eine URL für den Web-Service, unter der auf die implementierte WSDL zugegriffen werden kann. Die URL des Web-Services wird das folgende Format haben:

http://<anwendungs-web-server>:<portnummer-der-anwendung>/services/<name-des-gespeicherten-web-services>

Wenn Sie die Zeichenfolge “?wsdl” an die URL anhängen, erhalten Sie den Pfad zur gespeicherten WSDL für den Web-Service.

Eine Anforderung für einen Web-Service des Stils 'Dokument/Literal' muss in eine SOAP-Rahmenanweisung eingeschlossen werden, und der Hauptteil der SOAP-Nachricht enthält dann das gesamte Anforderungsdokument. Dieses Anforderungsdokument muss in korrektem XML-Format geschrieben sein, und es wird "as-is" an den Web-Service-Handler von Websphere Product Center übergeben. Diese Anforderung wird von einem aufrufenden Programm erstellt, dem das Format des Schemaknotens der gespeicherten WSDL für den aufzurufenden Web-Service bekannt ist.

Der Web-Service-Verarbeitungsmechanismus von Websphere Product Center empfängt diese Anforderung und wertet ihren Inhalt anhand des WSDL-Schemas für Anforderungen des Stils 'Dokument/Literal' aus. Wenn die Anforderung das WSDL-Schema nicht einhält, wird ein Fehler (AxisFault) ausgelöst. Andernfalls wird Websphere Product Center die Namensbereichsverweise aus dem Hauptteil der Anforderung entfernen und die modifizierte Anforderung an das zur Implementierungszeit gespeicherte WebSphere Product Center-Auslöserscript übergeben. Das Entfernen der Namensbereichsverweise ist auf Grund der Einschränkungen des Websphere Product Center-Scriptinhalts erforderlich, der keine XML-Dokumente mit Namensbereichsunterstützung verarbeiten kann. Das WebSphere Product Center-Auslöserscript verwendet den Inhalt der Anforderung gemäß der vom Verfasser des Scripts vorgegebenen Definition. Das Script muss seine Ergebnisse als gültige Antwort auf die eingehende Anforderung ausgeben. Daher wird die Antwort anhand der WSDL geprüft, bevor die Ausgabe zurückgegeben wird.

Beispiel:

Das Schema 'Dokument/Literal' würde wie folgt aussehen:

<element name="getStockQuote"/>
<complexType>
<sequence>
<element name="ticker" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="getStockQuoteResponse"/>
<complexType>
<sequence>
<element name="response" type="xsd:decimal"/>
</sequence>
</complexType>
</element>

Wenn der Client getStockQuote("IBM") aufgerufen hat, würde der Ablauf wie folgt aussehen:

1. Websphere Product Center empfängt eine SOAP-Anforderung vom Axis-SOAP-Stapel.

2. Websphere Product Center wertet die Anforderungsnachricht anhand des oben genannten Schemas aus.

3. Websphere Product Center entfernt alle Namensbereichspräfixe aus dem Hauptteil der Anforderung. Sie werden in diesem Fall nicht benötigt, da dieses Schema alles im Standardnamensbereich definiert.

4. Websphere Product Center ruft das Web-Service-Auslöserscript auf. Die Eingabevariablen lauten:

- operationName = "getStockQuote"
- message = 
"<getStockQuote>
<ticker>IBM</ticker>
</getStockQuote>"

5. Das Auslöserscript schreibt die Antwort in den Writer "out":

- out = 
"<getStockQuoteResponse>
<response>83.76</response>
</getStockQuoteResponse>"

6. Websphere Product Center wertet die Antwort anhand des oben genannten Schemas aus.

7. Websphere Product Center sendet die gesamte SOAP-Antwort über den Axis-SOAP-Stapel zurück an den Client.

Vorgenommene Änderungen zur Unterstützung des Stils 'Dokument/Literal'

Nachfolgend sind die Änderungen aufgelistet, die zur Unterstützung des Stils 'Dokument/Literal' vorgenommen wurden.

Auswirkungen auf die Migration von früheren Versionen

Je nach WebSphere Product Center-Version kann eine kleinere Datenbankänderung (DB2/Oracle) erforderlich sein. Bei Fragen zur Migration wenden Sie sich bitte an Ihren WebSphere Product Center-Ansprechpartner.

Nützliche Links für den Web-Service-Stil 'Dokument/Literal'

http://java.sun.com/developer/technicalArticles/xml/jaxrpcpatterns/

 http://searchwebservices.techtarget.com/ateQuestionNResponse/0,289625,sid26_cid494324_tax289201,00.html

Bekannte Einschränkungen

Namensbereich muss auf Grund von DOM-Versionen auf Schemaknoten von WSDL definiert werden

Die mit Websphere Product Center gelieferte Implementierung für XML-Parsing (bereitgestellt mit Xerces Version 2.4.0) verursacht Einschränkungen, auf Grund derer die Deklaration des Namensbereichs lokal auf dem Schemaknoten der WDSL definiert werden muss. Dies macht sich besonders bei der Implementierung von Web-Services des Stils 'Dokument/Literal' bemerkbar. Beispielsweise würde die folgende gültige WDSL von Websphere Product Center nicht korrekt erkannt:

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:y="http://ibm.com/wpc/test/stockQuote" targetNamespace="http://ibm.com/wpc/test/stockQuote">
<types>
<xs:schema targetNamespace="http://ibm.com/wpc/test/stockQuote" elementFormDefault="qualified">
<xs:element name="getStockQuote">
<xs:complexType>
<xs:sequence>
<xs:element name="ticker" type="xs:string" nillable="false"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getStockQuoteResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="response" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>
<message name="getStockQuoteRequest">
<part name="parameters" element="y:getStockQuote"/>
</message>
<message name="getStockQuoteResponse">
<part name="parameters" element="y:getStockQuoteResponse"/>
</message>
<portType name="StockQuotePortType">
<operation name="getStockQuote">
<input message="y:getStockQuoteRequest"/>
<output message="y:getStockQuoteResponse"/>
</operation>
</portType>
<binding name="StockQuoteBinding" type="y:StockQuotePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getStockQuote">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="StockQuoteService">
<port name="StockQuotePort" binding="y:StockQuoteBinding">
<soap:address location="http://localhost/axis/services/StockQuoteService"/>
</port>
</service>
</definitions>

Für eine korrekte Syntaxanalyse müsste die WSDL wie folgt geschrieben werden:

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:y="http://ibm.com/wpc/test/stockQuote" targetNamespace="http://ibm.com/wpc/test/stockQuote">
<types>
<xs:schema targetNamespace="http://ibm.com/wpc/test/stockQuote" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="getStockQuote">
<xs:complexType>
<xs:sequence>
<xs:element name="ticker" type="xs:string" nillable="false"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getStockQuoteResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="response" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>
<message name="getStockQuoteRequest">
<part name="parameters" element="y:getStockQuote"/>
</message>
<message name="getStockQuoteResponse">
<part name="parameters" element="y:getStockQuoteResponse"/>
</message>
<portType name="StockQuotePortType">
<operation name="getStockQuote">
<input message="y:getStockQuoteRequest"/>
<output message="y:getStockQuoteResponse"/>
</operation>
</portType>
<binding name="StockQuoteBinding" type="y:StockQuotePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getStockQuote">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="StockQuoteService">
<port name="StockQuotePort" binding="y:StockQuoteBinding">
<soap:address location="http://localhost/axis/services/StockQuoteService"/>
</port>
</service>
</definitions>

Neu erstellte Web-Services werden nicht automatisch implementiert 

Vorgangs-ID: P16473

Problem: Wenn ein neuer Web-Service erstellt und WebSphere Product Center erneut gestartet wird, tritt beim Aufrufen des neu erstellten Web-Services ein Fehler auf.

Problemumgehung: Aktivieren Sie den Schreibzugriff auf die Axis-Konfigurationsdatei "server-config.wsdd" im Verzeichnis "public_html/WEB-INF". In Umgebungen, in denen WebLogic verwendet wird, muss zusätzlich die WebSphere Product Center-Instanz im erweiterten Verzeichnisformat implementiert werden. Wird dies unterlassen, wird die Axis-Funktion für automatische, erneute Implementierung den von WebSphere Product Center erstellten Web-Service beim Neustart nicht implementieren.

Erweiterte WSDL: Stil kann nicht geändert werden

Vorgangs-ID: P16059

Erstellen Sie einen Web-Service mit dem Stil DOKUMENT_LITERAL. Speichern Sie, gehen Sie zum neu erstellten Web-Service zurück, ändern Sie den Stil in RPC_VERSCHLÜSSELT, und speichern Sie erneut. Es wird der Stil DOKUMENT_LITERAL angezeigt.

Dies ist eine bekannte Einschränkung. Ein Benutzer kann den Stil eines implementierten Web-Services nicht ändern.

Web-Service des Typs 'Dokument/Literal' erstellen und diesen Web-Service aufrufen

Einen Web-Service des Stils 'Dokument/Literal' ausführen

1. Gehen Sie in die Datei common.properties. Definieren Sie einen Wert für "soap_company" und "soap_user". Dies sind das Unternehmen und der Benutzer, die von eingehenden SOAP-Anforderungen für den Zugriff auf die Datenbank und zum Ausführen von Scripts verwendet werden. Definieren Sie außerdem einen Wert für "wpc_web_url". 

Beispiel: 

soap_company=acme
soap_user=Admin
wpc_web_url=http://myinstance.acme.com:1234/

2. Führen Sie einen automatischen Wiederanlauf von WebSphere Product Center aus. Gehen Sie zu "Manager für elektronisches Teamwork->Web-Services->Neuer Web-Service". Geben Sie durch Eingabe oder Auswahl Werte an, wie unten gezeigt.

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Dave Marquard (IBM) -->
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:y="http://ibm.com/wpc/test/stockQuote" targetNamespace="http://ibm.com/wpc/test/stockQuote">
<types>
<xs:schema targetNamespace="http://ibm.com/wpc/test/stockQuote" elementFormDefault="qualified">
<xs:element name="getStockQuote">
<xs:complexType>
<xs:sequence>
<xs:element name="ticker" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getStockQuoteResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="response" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>

<message name="getStockQuoteRequest">
<part name="parameters" element="y:getStockQuote"/>
</message>

<message name="getStockQuoteResponse">
<part name="parameters" element="y:getStockQuoteResponse"/>
</message>

<portType name="StockQuotePortType">
<operation name="getStockQuote">
<input message="y:getStockQuoteRequest"/>
<output message="y:getStockQuoteResponse"/>
</operation>
</portType>

<binding name="StockQuoteBinding" type="y:StockQuotePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getStockQuote">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="StockQuoteService">
<port name="StockQuotePort" binding="y:StockQuoteBinding">
<soap:address location="http://localhost/axis/services/StockQuoteService"/>
</port>
</service>
</definitions>

// Anforderungsdokument auswerten
var doc = new XmlDocument(soapMessage);

// Tickerparameter abrufen
var ticker = parseXMLNode("ibm:ticker");

// Hier werden nur IBM Notierungen ausgegeben...
if (ticker == "IBM") {
out.println("<ibm:getStockQuoteResponse xmlns:ibm=\"http://ibm.com/wpc/test/stockQuote\">");
out.println(" <ibm:response>123.45</ibm:response>");
out.println("</ibm:getStockQuoteResponse>");
}
else {
// Muss die Ausgabe auch in soapFaultCode erfolgen?
soapFaultMsg.print("Nur Notierungen für IBM werden unterstützt");
}

3. Aktivieren Sie Anforderungen speichern?, um in der Transaktionskonsole das Anforderungsprotokoll anzuzeigen.

4. Aktivieren Sie Antworten speichern?, um in der Transaktionskonsole das Antwortprotokoll anzuzeigen.

5. Aktivieren Sie Implementiert, um den Web-Service zu implementieren. Wenn Sie diese Option nicht auswählen, steht der Web-Service nicht zur Verfügung.

6. Rufen Sie den Web-Service mit Hilfe von com.ibm.ccd.soap.test.StockQuoteTest.java auf.

Syntax: $JAVA_RT com.ibm.ccd.soap.test.StockQuoteTest <URL> <NUM_CASE>
Beispiel: $JAVA_RT com.ibm.ccd.soap.test.StockQuoteTest http://trillian:9099/services/DocumentWebServiceTest 0

<NUM_CASE> kann eine beliebige Ganzzahl von 0 bis 5 sein.
0 kann zum Abfragen der Börsennotierung von IBM verwendet werden. Weitere Informationen finden Sie in der Datei StockQuoteTest.java.

7. Die Antwort wird wie folgt lauten: 

Called SOAP service at URL 'http://trillian:9099/services/TestingDocumentStyle14'
Request was '<ibm:getStockQuote xmlns:ibm="http://ibm.com/wpc/test/stockQuote">
<ibm:ticker>SNM</ibm:ticker>
</ibm:getStockQuote>'
SOAP call was successful.
Result was '<ibm:getStockQuoteResponse xmlns:ibm="http://ibm.com/wpc/test/stockQuote">
<ibm:response>123.45</ibm:response>
</ibm:getStockQuoteResponse>'

Kapitel 12 - Befehlszeilenschnittstelle für Jobs

Es wurde eine Befehlszeilenschnittstelle für die Planungsfunktion von WebSphere Product Center implementiert, um die (nach Bedarf auch automatisierte) Integration mit einer externen Planungsfunktion zu ermöglichen. Diese Funktion ist derzeit für IBM Tivoli Workload Scheduler zertifiziert.  Diese Funktion bietet Benutzern die Möglichkeit, zum Auslösen eines WebSphere Product Center-Imports oder -Exports entweder die Tivoli Workload Scheduler-Benutzeroberfläche oder eine Befehlsschnittstelle zu verwenden.

Einschränkungen: Diese Funktion wird nur für die Ländereinstellung für Englisch unterstützt. Die Funktion kann von Installationen verwendet werden, die als Sprache auf dem Server amerikanisches Englisch verwenden. Alle anderen Sprachen werden nicht vollständig unterstützt; alle Nachrichten werden in der Ausgabekonsole in Englisch angezeigt.  Es ist geplant, alle anderen Ländereinstellungen der Gruppe 1 in einem zukünftigen Fixpack oder einem Hauptrelease von WebSphere Product Center zu unterstützen.

Voraussetzungen

Zum Ausführen von WebSphere Product Center-Importjobs und -Exportjobs stehen zwei Methoden zur Verfügung. Sie können entweder die Befehlsschnittstelle verwenden, um mit der Planungsfunktion von WebSphere Product Center einen Job auszulösen, oder Sie können die Tivoli Workload Scheduler-Benutzeroberfläche verwenden. Zum Verwenden der zweiten Methode müssen die folgenden Voraussetzungen erfüllt sein:

1. Installation von Tivoli Workload Scheduler 8.2, Tivoli Management Framework 4.1 und von Tivoli Management Framework Language Support 4.1 auf dem Anwendungsserver.

2. Stellen Sie sicher, dass in der Umgebung, in der die terminierten Jobs ausgeführt werden sollen, das Shell-Script "run_job_template.sh" im Ordner "$TOP/bin/” vorhanden ist.

3. Installieren Sie Tivoli Management Framework 4.1 auf dem Desktop, das zum Vereinfachen der Ausführung oder Terminierung eines Jobs verwendet werden wird.

Scheduler-Integration mit IBM Tivoli Workload Scheduler  

Die Planungsfunktion von WebSphere Product Center kann mit IBM Tivoli Workload Scheduler über ein Shell-Script integriert werden, das von der WebSphere Product Center-Installation $TOP/bin/run_job_template.sh bereitgestellt wird. Dieses Shell-Script muss in jeder Umgebung zur Verfügung stehen, in der ein terminierter Job ausgeführt werden soll, und für jeden Job ist ein eigenes Shell-Script erforderlich.  

Beispiel: 

Name des Jobs

Zugeordnetes Shell-Script

Feed 1  

  run_job_feed1.sh

Feed 2

  run_job_feed2.sh

DailyFeed3   run_job_dailyfeed3.sh

run_job_template.sh modifizieren

Das Script run_job_template muss je nach der jeweiligen Test- oder Produktionsumgebung für jeden auszuführenden Job angepasst werden.

Beispiel: 

Öffnen Sie run_job_feed1.sh, und Sie sehen den folgenden Ausschnitt:

#export TOP=<Path to WPC Installation home directory> # E.g. /usr/appinstalls/wpc52
#WPC_INIT_VARS=$TOP/setup/init_ccd_vars.sh
#. $WPC_INIT_VARS

# Set the job related variables as needed and do not modify anything else after this
# CCD_JOB_NAME=<Job Name> # [Required]
# CCD_JOB_TYPE=<Job Type> # [Required, Valid values are import|export]
# CCD_COMPANY_CODE=<Company Code> # [Optional, Default Value is trigo] 
# CCD_USERNAME=<User Name> # [Optional, Default Value is Admin]
# CCD_DEBUG=<Debug on or off> # [Optional, Default Value is off]

Hinweis: Der Standardwert für CCD_COMPANY_CODE lautet "trigo"; dies ist das Standardunternehmen, das beim Ausführen von create_schema.sh erstellt wird.

Der obige Ausschnitt würde sich wie folgt ändern:

export TOP=/usr/trigo/wpc52_41/bin
WPC_INIT_VARS=$TOP/setup/init_ccd_vars.sh
. $WPC_INIT_VARS

# Set the job related variables as needed and do not modify anything else after this
CCD_JOB_NAME=Feed1 # [Required]
CCD_JOB_TYPE=import # [Required, Valid values are import|export]
CCD_COMPANY_CODE=test # [Optional, Default Value is trigo] 
CCD_USERNAME=m # [Optional, Default Value is Admin]
CCD_DEBUG=on # [Optional, Default Value is off]

Einen Job mit Tivoli Workload Scheduler ausführen

Die Tivoli Workload Scheduler-Benutzeroberfläche kann zum Auslösen von WebSphere Product Center-Importen oder -Exporten verwendet werden. Die Benutzeroberfläche verwendet ein Shell-Script, um zu definieren, welcher Job auszuführen oder zu terminieren ist. Dieser Abschnitt enthält detaillierte Schritte, wie Sie mit IBM Tivoli Workload Scheduler einen Job ausführen können.

Bevor ein WebSphere Product Center-Job mit Tivoli Workload Scheduler ausgeführt werden kann, muss eine Task zum Definieren des Jobs erstellt werden.

Eine Task erstellen

Durch Erstellen einer Task werden der Pfad zur erforderlichen Shell-Script-Datei sowie der Host definiert, der zum Ausführen des terminierten Jobs verwendet wird.

1. Öffnen Sie den Tivoli-Desktop, und geben Sie im Dialogfenster "Tivoli Management Environment" die Informationen für den Server ein, der die erforderlichen Anwendungen zur Verwendung der Funktion zum Zusammenfügen von Planungsfunktionen (Merge Scheduler) enthält:  WebSphere Product Center 5.2,  Tivoli Workload Scheduler 8.2, Tivoli Management Framework 4.1 und Tivoli Management Framework Language Support 4.1. Klicken Sie anschließend auf OK.

2. Klicken Sie doppelt auf den Namen der Hostmaschine, auf der Tivoli Workload Scheduler installiert ist. Der Dialog Policy Region wird angezeigt.

3. Wählen Sie in der Menüleiste Create > Task Library aus. Der Dialog Create Task Library wird angezeigt. Geben Sie einen Namen für die neue Taskbibliothek ein, und klicken Sie auf Create & Close.

4. Klicken Sie doppelt auf die Taskbibliothek, um eine Task zu erstellen. Das Erstellen einer Task erfolgt ähnlich wie das Erstellen eines Jobs in WebSphere Product Center.

5. Wählen Sie in der Menüleiste Create > Task aus, und geben Sie einen Namen für die Task ein. Beispiel: “Task for Feed 1”.

6. Wählen Sie beim Bearbeiten der Task die zum Ausführen der Task erforderliche Rolle aus.

7. Wählen Sie die Plattform aus, auf der die Task ausgeführt werden soll. Wird die Task auf einer AIX-Plattform ausgeführt, aktivieren Sie die Option für AIX, und es wird "AIX Executable for Task" angezeigt. Geben Sie die erforderlichen Informationen für die Position ein, an der das Script “run_job_template” zur Verfügung steht:

Hinweis: An run_job_template.sh vorgenommene Änderungen werden in der Task nicht dynamisch reflektiert. Wählen Sie in der Anzeige "Edit Task" die Plattformoption ab und wieder aus, und geben Sie den Pfad zum aktualisierten Shell-Script an, um die zuletzt vorgenommenen Änderungen wiederzugeben.

Informationen zum Bearbeiten von "run_job_template.sh" finden Sie im Abschnitt "run_job_template.sh modifizieren".

8. Klicken Sie auf Create & Close, um die an der Task vorgenommenen Änderungen zu speichern.

Eine Task ausführen

Nachdem in der Taskbibliothek eine Task erstellt wurde, kann sie manuell oder zu einem geplanten Zeitpunkt ausgeführt werden. Beim Ausführen wird die Task den für sie definierten Host und die Scriptdatei "run_job_template.sh" verwenden, um einen WebSphere Product Center-Import/-Export zu starten.

1. Klicken Sie in der Anzeige Task Library doppelt auf die gewünschte Task.

2. Aktivieren Sie die Option Display on Desktop, um die Ausführungsdetails und den Beendigungsstatus des Jobs anzuzeigen.

3. Wählen Sie unter Available Task Endpoints den entsprechenden Host aus, sodass er unter Selected Task Endpoints zur Verfügung steht.

4. Klicken Sie auf Execute, und überprüfen Sie die Ergebnisse in der Anzeige Formatted Output. Auf dem Desktop werden die Details der Jobausführung angezeigt, die Sie in einer Datei speichern können, indem Sie auf Save to File... klicken.

Eine Task terminieren 

Bevor ein Job terminiert werden kann, erstellen Sie eine Task für den WebSphere Product Center-Job, die terminiert werden soll.

Eine Task erstellen 

1. Klicken Sie auf dem Tivoli-Desktop auf einen Host, und klicken Sie doppelt auf die gewünschte Taskbibliothek, um einen Job zu erstellen.

2. Wählen Sie unter der Menüoption Create die Option Task aus, und geben Sie einen Tasknamen ein. 

3. Wählen Sie die Task aus, für die der Job terminiert werden soll.

4. Aktivieren Sie die Option Display on Desktop, um die Ausführungsdetails und den Beendigungsstatus des Jobs anzuzeigen.

5. Wählen Sie unter Available Task Endpoints den gewünschten Host aus, sodass er unter Selected Task Endpoints zur Verfügung steht.

6. Klicken Sie auf Create & Close.

Task ausführen

1. Gehen Sie zur Seite Task Library, und lassen Sie den Desktop geöffnet.

2. Ziehen Sie den Job “ Job for Feed 1”, und übergeben Sie ihn an “ Scheduler” auf dem Desktop.

3. Geben Sie eine Jobbezeichnung ein.  

Zur Ausführung des Jobs stehen verschiedene Optionen zur Verfügung, die ein Benutzer entsprechend seinen Anforderungen auswählen kann. Beispielsweise kann der Job so terminiert werden, dass er entweder endlos oder in regelmäßigen Intervallen ausgeführt wird. Diese Einstellungen können je nach den Anforderungen eines Benutzers auf der Seite Add Scheduled Job geändert werden.

Angenommen, der Benutzer möchte einen Job so terminieren, dass der Job dreimal mit einem Abstand von einer Stunde|60 Minuten ausgeführt wird. In solch einem Szenario ist es wichtig, dass die aktuelle Zeit die genaue, von der Zeitzone festgelegte Serverzeit anzeigt.

4. Aktivieren Sie die Option Repeat the Job, und geben Sie "3" ein.

5. Geben Sie für die Minuten den Wert "60" ein.

6. Wenn der Benutzer eine bestimmte Gruppe benachrichtigen möchte, aktivieren Sie Post Tivoli Notice, klicken Sie auf Available Groups, und wählen Sie eine beliebige Gruppe aus der Liste Available Notice Groups aus. Klicken Sie auf Set, um das Fenster zu schließen.

7. Aktivieren Sie Post Status Dialog on Desktop .

8. Wenn in der Benutzerumgebung bereits E-Mail eingerichtet ist, wählen Sie aus, dass für die Benachrichtigung eine E-Mail-ID angegeben werden soll.

9. Aktivieren Sie Log to File, und geben Sie den Protokolldateipfad, den Hostnamen und nach Wunsch den Dateipfad an.

10. Klicken Sie auf Schedule Job oder Schedule Job & Close.

Jobstatus überprüfen

Der Status eines Jobs kann über die Hinweisfunktion von IBM Tivoli Workload Scheduler angezeigt werden. Benutzer können sich auch nach Wunsch an WebSphere Product Center anmelden, um den Status eines Jobs zu überprüfen.

1. Klicken Sie auf der Seite Desktop doppelt auf Notices.  

2. Wählen Sie eine der angegebenen Gruppen aus, und klicken Sie auf Öffnen.

Scheduler-Steuerung über Befehlszeilenschnittstelle

Ein Benutzer kann einen Import oder Export nach Wunsch mit der Planungsfunktion von WebSphere Product Center über die Befehlszeilenschnittstelle ausführen. Hierzu muss der Benutzer über die erforderlichen Berechtigungen für den Zugriff auf den Server verfügen, auf dem die terminierten Jobs gesteuert werden sollen.

Mit der Befehlszeilenschnittstelle einen Import oder Export ausführen

Zum Auslösen eines Jobs verwenden Sie die folgende Befehlszeile:

$JAVA_RT com.ibm.ccd.scheduler.common.RunJob --job_name="aaaa" --job_type=import|export [--company_code=bbbb --username=cccc --debug=on / off]

Beispiel:

$JAVA_RT com.ibm.ccd.scheduler.common.RunJob --job_name="Item Feed " --job_type=import --company_code=test --username=user1 --debug=on

Hiermit wird ein Importjob mit dem Namen "Item Feed" vom Unternehmen "test" ausgelöst. 

Kapitel 13 - Bewährte Verfahren (Best Practices) für die Integration

Zweck dieses Kapitels ist es, die bewährten Integrationsverfahren für die WebSphere Product Center-Implementierung zusammenzufassen. Wenn Sie diese "Best Practices" verwenden, werden Sie eine hohe Qualität und verlässliche Integration der Systeme erreichen. Dieses Dokument soll alle unterschiedlichen Aspekte ("Dimensionen") der Integration einbeziehen und die zugehörigen Best Practices darstellen.

Schlüsselelemente der Integration:


Begriffsbestimmungen und Akronyme

Integrationsdimensionen: Die unten aufgelisteten Dimensionen tragen zum Verständnis der verschiedenen Implementierungsarten bei WebSphere Product Center-Implementierungen bei. Das Dokument hebt außerdem hervor, welche Best Practices oder Richtlinien auf welche Dimensionen oder Implementierungsarten anzuwenden sind.

WebSphere Product Center als Quellen- oder Zielsystem

Die naheliegendste Dimension ist die Frage, ob WebSphere Product Center das Quellensystem oder das Zielsystem für die auszutauschenden Informationen ist. Die Beschaffenheit des Quellensystems legt die Vorgaben für die Integration fest. Die wichtigsten Vorgaben sind u.a.: (a) die Fähigkeit, Deltasyndikationen auszuführen, (b) die Möglichkeit, eine Integration einzuleiten, (c) die Möglichkeit, eine Benachrichtigung über Erfolg oder Fehlschlagen der Datenübertragung zu empfangen und die entsprechenden Maßnahmen zu ergreifen und (d) die Art der unterstützten Protokolle und Formate, sowie die Unterstützung einer EAI-Infrastruktur (Enterprise Application Integration - EAI).

Steuersystem

Ein Steuersystem soll für die Zwecke dieses Dokuments als ein System definiert werden, das Maßnahmen gemäß einem internen Auslöser für die Integration ergreift. Ein Beispiel hierfür wäre, dass WebSphere Product Center eine Syndikation auf terminierter Basis als Job ausführt. Ein anderes Beispiel wäre, dass SAP einen WBI-Adapter als Ergebnis der Hinzufügung eines Elements auslöst. Ob WebSphere Product Center das Quellen- oder das Zielsystem bei einer Integration ist, ist vollkommen unabhängig davon, welches System das Steuersystem bei einer Integration ist. Es sind mehrere Fälle möglich. Wenn eine zwischengeschaltete Einheit, wie ein FTP-Server oder ein EAI-Tool, enthalten ist, können sowohl das das Quellen-, als auch das Zielsystem das Steuersystem sein: ein traditionelles System stellt auf terminierter Basis eine Datei auf einen FTP-Server, und WebSphere Product Center ruft diese Datei ebenfalls auf terminierter Basis ab. Ein Beispiel, in dem WebSphere Product Center als gesteuertes Zielsystem fungiert (d.h. auf einen externen Auslöser eines Datenimports wartend), wäre IBM WebSphere Business Integration (IBM WBI), das eine Nachricht an WebSphere Product Center über das aufrufende Programm sendet, bei der der Nachrichteninhalt beispielsweise eine Elementaktualisierung der Einkaufsplattform Transora sein könnte. Ein Beispiel, in dem WebSphere Product Center als gesteuertes Quellensystem fungiert (d.h. auf einen externen Auslöser eines Datenexports wartend), wäre IBM WBI, das eine WebSphere Product Center-Warteschlange regelmäßig danach abfragt, ob eine Datei für den Abruf bereit steht.

Protokoll

Es besteht einige Unklarheit in den WebSphere Product Center-Implementierungsteams und den Kundenressourcen über den Unterschied der protokoll-, format- oder nachrichtenbasierter Integration im Vergleich zu dateibasierter Integration. Daher soll ein Ziel dieses Dokuments sein, sicherzustellen, dass eine einheitliche Terminologie für diese Konzepte verwendet wird. Beispiele für Protokolle sind FTP (File Transfer Protocol), HTTP (Hyper Text Transfer Protocol), SMTP (Simple Message Transfer Protocol), d.h. E-Mail, JMS (Java Messaging Service) und IBM WebSphere MQ (IBM WebSphere Message Queuing). Ein Protokoll legt z. B. Umgebungsvariablen fest, oder die Codierung bestimmter Daten wie z. B. Zahlen, oder erwartete Antworten, hat aber nichts mit dem übertragenen Inhalt zu tun. Bei allen Integrationen muss klar sein, welche Protokolle verwendet werden, da immer mindestens eines vorhanden ist. Außerdem werden möglicherweise in den verschiedenen Stadien einer Integration unterschiedliche Protokolle verwendet: Der WBI-Adapter überträgt in SAP möglicherweise Daten von SAP an WBI ICS (Inter Connection Server - ICS) über HTTP, das wiederum die Daten an einen IBM MQ-Warteschlangenmanager übergibt, damit sie an einen anderen Warteschlangenmanager weitergeleitet werden, mit dem WebSphere Product Center als MQ-Client verbunden ist.

Format

Das Format der Daten ist unabhängig vom verwendeten Protokoll. Beispiele für Formate wären durch Kommata getrennte Daten (CSV - Comma Separated Values), Pipe mit Begrenzer, eXtensible Markup Language (XML), oder lediglich einige vordefinierte Felder und Datensatzstrukturen, wie z. B. für EDI-Nachrichten (Electronic Data Interchage). Jedes Format definiert Felder entweder mittels Positions- oder Längenparameter, oder durch Tags. Es ist wichtig, dabei zu berücksichtigen, das für ein bestimmtes Format eventuell eine bestimmte Codierung notwendig sein könnte. So wird z. B. bei Implementierungen oftmals die Tatsache vergessen, dass Zeichen wie spitze Klammern ('<', '>') in XML ein Escapezeichen benötigen, oder dass Inhalt in CSV möglicherweise Kommas enthält.

Größe von Daten

Diese Dimension wird oftmals mit "nachrichtenbasierter" oder "dateibasierter" Übertragung verwechselt, daher soll sie hier noch einmal klar definiert werden. Bei "nachrichtenbasierter" Integration wird normalerweise vorausgesetzt, dass es um einen kleineren Datenaustausch mit den folgenden Charakteristika geht:

Es gibt jedoch keine klare Linie, die zur Unterscheidung einer nachrichtenbasierten, einer dateibasierten oder einer Batch-Integration gezogen werden kann, und es ist wichtig, eine eindeutige Menge an Dimensionen festzulegen und keine Verwechslungen oder Überschneidungen zuzulassen. Aus diesem Grund sollte die Gesamtgröße der Daten die wichtigere zu berücksichtigende Dimension sein, als die Frage, ob man die Integration als "nachrichtenbasiert" oder als "Batchintegration" bezeichnen soll.

Übertragungsarten

Eine weitere zu berücksichtigende Dimension ist die Art der Übertragung bei der Integration. Die synchrone Übertragung gibt dem Benutzer oder System eine sofortige Rückmeldung über das Ergebnis einer Aktion. Wenn Sie beispielsweise HTTP für die Übertragung verwenden, wird automatisch eine Rückmeldung an das System oder den Benutzer gesendet, nachdem eine Aktion gesendet wurde. Die asynchrone Übertragung dagegen setzt eher auf eine Strategie, die man als "fire-and-forget" (absenden und vergessen) bezeichnen kann. Wenn es für die Integration erforderlich ist, eine Datei auf einen FTP-Server zu stellen, die dann von einem System angerufen wird, gibt es beispielsweise keine automatische Rückmeldung an das System, das die Datei auf den Server gestellt hat, um über das Ergebnis der Aktion zu informieren.

Häufigkeit

Zusammen mit der Dimension "Größe von Daten" wird mit der Dimension "Häufigkeit" erfasst, wie groß die gesamte Datenmenge ist, die regelmäßig verarbeitet werden muss.

Integrationsthread

Diese Dimension, die Zwischensysteme und temporäre Infrastrukturen betrifft, legt fest, ob eine EAI-Infrastruktur verwendet wird, oder nicht. Außerdem müssen gelegentlich bei Integrationen mit traditionellen Systemen eventuell Zwischenprogramme geschrieben werden, um Daten in traditionelle Systeme hochzuladen oder aus diesen zu extrahieren. Es wichtig, diese Zwischensysteme oder -programme zu verstehen und zu dokumentieren, da sie häufig die schwächsten Glieder in der Integrationskette sind.

Insbesondere in komplexen Integrationen, die mehrere Hops erfordern (z. B. von WebSphere Product Center an WBI an Zielsystem), von der Norm abweichende Mittel (z. B. direkte Datenbankaktualisierungen), mehrere Protokolle oder andere Herausforderungen bei der Übertragung beinhalten (z. B. durch eine Firewall), sollten Sie frühzeitig einen einzigen, funktionierenden Thread oder kompletten Integrationspfad aufbauen. Dadurch können mögliche Probleme vorab identifiziert und anderen Beteiligten (wie z. B. Netzwerkadministratoren, Teams, die an IBM WBI arbeiten) ausreichend Zeit gegeben werden, solche Konnektivitätsprobleme parallel dazu zu lösen.

Diese aufgeführten Dimensionen einer Integration sollten der Standard für die Beschreibung der Integrationen bei WebSphere Product Center-Implementierungen sein. Für die Dokumentation, die von PS-Teams in der Analyse- und Entwicklungsphase bereitgestellt wird, sollten diese Dimensionen in eindeutiger und konsistenter Weise verwendet werden.

Akronyme

Akronym

Definition

EAI

Enterprise Application Integration

FTP

File Transfer Protocol

HTTP

Hyper Text Transfer Protocol

MQ

Die Middleware für IBMs Nachrichtenwarteschlange. Wird oftmals als IBM Websphere MQ bezeichnet, da mittlerweile alle Konnektivitätslösungen unter der Marke WebSphere zusammengefasst sind.

ICS

Inter Connect Server von IBM WBI

WBI

Die IBM WebSphere Business Integration-Produktsuite, d.h. die EAI-Produktsuite von IBM.


Gestaltungsprinzipien

Wiederverwendbarkeit

Das grundlegende Prinzip für die Vorgehensweise bei der Implementierung einer Integration ist die Wiederverwendbarkeit. In dem Maße, in dem WebSphere Product Center wächst und mehr Clients implementiert werden, ist es notwendig, dass Integrationen sowohl mit zuvor nicht integrierten Systemen, als auch mit Systemen, die bei vorherigen Implementierungen schon integriert wurden, schnell durchgeführt und skaliert werden können. Um dieser Anforderung gerecht zu werden ist es notwendig, die Integration nach dem Prinzip der Wiederverwendbarkeit so zu gestalten, dass bei einer eventuellen Integation desselben Systems für einen anderen Client größtmögliche Effizienz vorherrscht.

Wiederverwendbarkeit können Sie erreichen, indem Sie: (a) EAI-Tools wie IBM WBI und das Modell generischer Business-Objects nutzen, (b) Formate wählen, die unabhängig vom Datenmodell sind, (c) Bibliotheken für WebSphere Product Center-Scripts erstellen (Bestätigung, Abfrage usw.), die unabhängig vom Datenmodell sind und für andere Implementierungen wiederverwendet werden können.

Gemeinsame Informationsnutzung

Kommunikation als ein Mittel der Integration

Die Integration kann vom Konzept her einfach als eine Serie von Ereignissen betrachtet werden, die durch die Kommunikation zwischen dem Steuersystem WebSphere Product Center und dem oder den gesteuerten System(en) ausgelöst wird. Diese Ereignisse können durch Nachrichten ausgelöst werden, die zwischen den Systemen weitergegeben werden, automatisierten Prozessen, die Inhalte oder Dateien abfragen, oder jede sonstige Möglichkeit der rudimentären Kommunikation. Zur Kommunikation gehört beispielsweise die Art der auszuführenden Änderung (Hinzufügen, Aktualisieren, Löschen), eine eindeutige Kommunikations-ID (für Protokollierung, Bestätigung) und der relevanten Inhalt, damit die Änderung entweder in WebSphere Product Center oder in dem bzw. den zu integrierenden System(en) ausgeführt werden kann.

Zuverlässigkeitsmaßnahmen

Zusätzlich zur Weitergabe von Informationen zwischen Systemen, um Änderungen zu kommunizieren, sollte es die Möglichkeit geben, den Erfolg oder das Fehlschlagen einer bestimmten Transaktion zu kommunizieren. Diese Kommunikation nach dem "Handshakeverfahren" kann intuitiv für synchrone Kommunikationsformen implementiert werden und ermöglicht es den integrierten Systemen, zu verfolgen, ob eine bestimmte Transaktion erneut gesendet werden muss, weil der Empfang am anderen Ende fehlgeschlagen ist. Auf diesem Wege wird die Zuverlässigkeit der Integration verbessert bzw. schließlich sichergestellt.

Informationsformate

Das genaue Format dieser Kommunikation sollte so generisch gestaltet werden, dass sowohl das Format, als auch die umgebende Verarbeitungsfunktionalität in Implementierungen wiederverwendet werden kann.

Bei der Erwägung des allgemeinen Formats, das für die Kommunikation zwischen Systemen verwendet wird, sollte unbedingt darauf geachtet werden, dass das Format die Anforderungen unter den folgenden Gesichtspunkten erfüllen kann:

Informationsverarbeitung

Zwar ist es einsehbar, dass das Format der Informationen, die zwischen Systemen hin- und hergesendet werden, möglichst generisch sein sollte, es ist jedoch auch verständlich, dass nicht alle Implementierungen sich nicht in ein vordefiniertes Format pressen lassen, insbesondere dann, wenn die Integration als eine direkte Verknüpfung zwischen WebSphere Product Center und dem oder den zu integrierenden System(en) betrachtet werden soll. Um zu vermeiden, dass Formate und Zuordnungen zwischen Formaten und WebSphere Product Center-Spezifikationen bei jeder Implementierung aufgrund von Unterschieden wie den Datenmodellen neu konzipiert werden müssen, wird empfohlen, wiederverwendbare Zuordnungsfunktionalitäten zwischen XML-Formaten und WebSphere Product Center-Spezifikationen zu verwenden.

EAI-Plattformen verwenden

Eine Möglichkeit zur Verwirklichung dessen ist die Verwendung von EAI-Plattformen, wie z. B. die Produktsuiten WBI oder webMethods, mit denen wieder verwendbare Verbindungseinheiten erstellt werden können, so dass WebSphere Product Center z. B. über ein einziges vollständig wieder verwendbares Nachrichtenformat kommunizieren kann (d.h. ein einziges XML-DTD). Abweichungen, die aufgrund der Besonderheiten der jeweiligen Implementierung entstehen können, werden anschließend von WBI konvertiert, anstatt eine Neugestaltung der WebSphere Product Center-Funktionalität für die Verarbeitung von Informationen zu erfordern. Da die Umgestaltung der WebSphere Product Center-Funktionalität nicht erforderlich ist, können dieselben Funktionalitäten für mehrere Implementierungen verwendet werden.

Andere Optionen

Es sollte jedoch auch berücksichtigt werden, dass bestimmte Clients ein Format wiederverwenden müssen, das bereits von anderen System im Unternehmen verwendet wird. Dies würde es WebSphere Product Center erschweren, eine vollständig separate DTD einzuführen, die für andere Systeme im Unternehmen konvertiert werden muss, damit sie verstanden wird, anstatt dass WebSphere Product Center die bereits vorhandene DTD verwendet. In diesem Fall sollte eine wieder verwendbare Funktionalität für die Konvertierung zwischen den Spezifikationen in WebSphere Product Center und der DTD verwendet werden.

Es kann auch sein, dass selbst bei der Verwendung einer EAI-Plattform dieser Ansatz für einen bestimmten Client unter dem Aspekt des Verstehens der Zuordnung von WebSphere Product Center-verwalteten Informationen an die interne DTD zur Kommunikation von Informationen nützlicher und damit der bessere Ansatz ist.

Ereignisgesteuerte Verarbeitung

Idealerweise werden Ereignisse über einen automatisierten Prozess in WebSphere Product Center gehandhabt. So könnte beispielsweise die Warteschlangenfunktionalität, die im WebSphere Product Center-Release eingeführt wurde, verwendet werden, um sowohl das Senden von Nachrichten (Warteschlange für ausgehende Nachrichten) als auch das Empfangen von Antworten und eingehenden Nachrichten (Warteschlange für eingehende Nachrichten) zu handhaben. Danach könnten Scripts für die Warteschlangenverarbeitung verwendet werden, um die tatsächliche Verarbeitung von Nachrichten zu handhaben, und somit im Grunde genommen die Ereignisse auszuführen, die als Ergebnis einer bestimmten Nachricht ausgelöst werden sollen.

Die ereignisgesteuerte Verarbeitung ist jedoch nicht an bestimmte Funktionalitäten oder Versionen von WebSphere Product Center direkt gebunden. Andere Möglichkeiten zur Handhabung von Ereignissen können terminierte Jobs in WebSphere Product Center sein, die einen FTP-Server abfragen, terminierte Jobs, die ein lokales Dateisystem nach einer bestimmten Datei (über den Dokumentspeicher) überprüfen, ein Auslöserscript, das auf einem aufrufenden Programm basiert und Ereignisse auf der Basis gesendeter Informationen versendet, oder sonstige Möglichkeiten. Welche Methode ausgewählt wird, sollte letztlich von der genauen Abwägung der Anforderungen hinsichtlich der Größe der Daten und der Häufigkeit für eine bestimmte Integration abhängen.

Änderungsverfolgung

für die Implementierung einer vollständigen Synchronisation zwischen den Systemen muss die Möglichkeit bestehen, dass in WebSphere Product Center Änderungen an Inhalten und Elementen protokolliert werden können, die daraufhin gekennzeichnet werden können, ob sie an die zu integrierenden Systeme kommuniziert worden sind, oder nicht. Wenn z. B. ein Element in WebSphere Product Center (als Quellensystem) gelöscht wird, soll dadurch nicht nur das Senden einer Nachricht an das Zielsystem ausgelöst werden können, die das Zielsystem darüber benachrichtigt, dass dieses Element gleichfalls gelöscht werden soll, sondern es soll auch möglich sein, Erfolg oder Fehlschlagen dieser bestimmten Kommunikation zu protokollieren, so dass WebSphere Product Center weiß, ob dieses Element tatsächlich auch im Zielsystem gelöscht wurde.

Wieder verwendbare Verbindungseinheiten

Verbindungseinheitenrepository

Mit dem Fortschreiten der Implementierung und der Entwicklung von Partnerschaften wird schrittweise ein Repository wieder verwendbarer Verbindungseinheiten für eine Vielzahl von Systemen erstellt. Wann immer möglich sollten alle Anstrengungen unternommen werden, diese Verbindungseinheiten wiederzuverwenden, da die Funktionalitäten für die Verarbeitung der Elemente usw., die über diese Verbindungseinheiten ablaufen, dadurch mit wenig oder keiner Änderung vom Standpunkt einer bestimmten Implementierung wieder verwendet werden können. Dadurch wird natürlich die Ausführungszeit der Implementierung insgesamt beschleunigt und die Gesamtzuverlässigkeit und -stabilität der Verbindungseinheiten und der Implementierungen, die diese Verbindungseinheiten nutzen, verbessert, da mögliche Probleme in diesen Bereichen frühzeitig erkannt und gelöst werden können.

Bei einer Systemintegration, für die noch keine Verbindungseinheiten definiert wurden, sollte ein Integrationsexperte hinzugezogen werden, der rasch eine wieder verwendbare Verbindungseinheit erstellen kann, die sowohl für die Integration in einer bestimmten Implementierung verwendet werden kann, als auch im Verbindungseinheitenrepository für die spätere Verwendung gespeichert werden kann, falls jemals dieses System im Zuge einer anderen Implementierung integriert werden sollte.

Verwendung der Verbindungseinheiten

Verbindungseinheiten sollte so verwendet werden, dass alle Änderungen, die jemals durchgeführt werden müssen, über eine EAI-Ebene gehandhabt werden, die die Konvertierung von Informationen handhabt, die zwischen Systemen übergeben werden. Mit anderen Worten: Vor dem Umschreiben einer der wieder verwendbaren Funktionalitäten in WebSphere Product Center zur Verarbeitung von Informationen, die über EAI übergeben werden, sollten die Vorteile der Funktionalität der EAI-Plattform genutzt werden, sämtliche notwendigen Konvertierungen auszuführen, damit das Umschreiben der WebSphere Product Center-Funktionalitäten vermieden werden kann.


Implementierung

Skalieren der Implementierung

'Mini-Integrationen'

Die umfangreiche Aufgabe einer Gesamtintegration sollte in viele kleinere und dadurch einfacher zu verwaltende Aufgaben eingeteilt werden. Dies können Sie beispielsweise tun, indem Sie eine einzige komplette Integration in viele kleinere Integrationen aufteilen - von "separaten" Integrationen für jeden Elementtyp (Spezifikation) in Integrationen für jeden Container (Katalog), bis herunter zu Integrationen für eine Gruppe von Attributen (falls notwendig). Wenn Sie überzeugt sind, dass diese "Mini-Integrationen" tadellos funktionieren, können sie zu einer einzigen vollständigen Integration kombiniert werden.

Unterteilung von Funktionalitäten

Die Ebenen, auf denen die Integration von Systemen erforderlich ist, müssen mit großer Aufmerksamkeit betrachtet werden. Wenn z. B. Änderungen an ein Zielsystem gesendet werden, möchte man in der Lage sein, entweder alle Änderungen seit einem bestimmten Datum zu senden, oder nur die Änderungen für einen bestimmten Katalog seit dem Senden der letzten Änderungen, nur die Änderungen, die für eine bestimmte Gruppe von Elementen aufgetreten sind, oder etwaige Änderungen, die für ein bestimmtes Attribut für alle Elemente aufgetreten sind. Die genauen Anforderungen hängen von der jeweiligen Implementierung ab, es ist jedoch wichtig, die erforderlich Unterteilung schon frühzeitig im Entwicklungsprozess der Implementierung zu erwägen, so dass sie angemessen berücksichtigt werden kann.

Leistungsoptimierung

Kommentare zum allgemeinen Leistungsverhalten

Schieben Sie mögliche Leistungsprobleme nicht zu lange auf. Es ist relativ einfach, Formate oder andere Integrationsaspekte später noch zu ändern oder zu reparieren, ein Leistungsengpass jedoch kann bedeutende Überarbeitungen und gelegentlich sogar die Entwicklung von Unterstützung erfordern. Setzen Sie im Verlauf der Entwicklung Hooks für die Leistungsmessung in den Scripts.

Leistung messen

Unter der Voraussetzung der "Mini-Integration" (wie im Abschnitt "Implementierung" beschrieben) sollte die Leistung in jeder Phase der Integration gemessen werden, indem die erforderliche Gesamtzeit gemessen wird, die für jede Aufgabe in der Mini-Integration erforderlich ist. So können mögliche schwache Leistungsbereiche auf ausreichend differenzierter Ebene identifiziert und dadurch einfacher für die Leistungsverbesserung gefunden werden.

Verbesserung der Leistung

Wenn Leistungsproblembereiche identifiziert wurden, sollte eine detaillierte Analyse erfolgen, um die eigentliche Ursache für die langsame Verarbeitung zu ermitteln. Eine detaillierte Analyse kann mit Tools wie der Middleware-Profilermittlung von WebSphere Product Center und der Registerkarte für das Leistungsverhalten in der Anzeige für die Jobbeschreibung ausgeführt werden. Sodann kann die Analyse einen bestimmten Bereich eines Scripts oder einer SQL-Abfrage fokussieren, und es können geeignete Maßnahmen ergriffen werden - Ändern oder Umschreiben des Scripts, oder die Einbeziehung der Entwicklung, um eine Datenbankabfrage zu verbessern.

Prüfung

Stabilität

Vorteile von Mini-Integrationen

Die Implementierung von Mini-Integrationen (wie im Abschnitt "Implementierung" beschrieben) bietet einen höheren Grad der Gewissheit, dass die Integration erfolgreich war, indem eine detaillierte Auflistung aller Bereiche zur Verfügung gestellt wird, in denen die Integration sich als funktionierend erwiesen hat. Ohne die Transparenz von Mini-integrationen ist es nicht nur ungleich schwieriger, eine funktionierende Integration zu beweisen, sondern die Integration insgesamt wird mit größerer Wahrscheinlichkeit unter Problemen leiden, die schwierig zu identifizieren, zu diagnostizieren und zu beheben sind. Daher führt das Umsetzen von Mini-Integrationen die Gesamtstabilität der Integration.

Skalierbare Tests

Vorteile von Mini-Integrationen

Die Implementierung von Mini-Integrationen (wie im Abschnitt "Implementierung" beschrieben) ermöglicht es, Integrationstest in weitaus höherem Detaillierungsgrad durchzuführen, so dass etwaige Fehler oder Probleme, die auftreten können, nicht durch zu hohe und möglicherweise irrelevante Komplexität überschattet werden. Daher sollten die Prozesse zum Diagnostizieren, zur Fehlerbehebung und zur Lösung erkannter Probleme, wie oben schon erwähnt, durch diesen Ansatz stark beschleunigt werden.

Repräsentative Umgebungen versus vollständige Umgebungen

Die Integrationstests sollten an repräsentativen Umgebungen mit derselben Konfiguration wie die endgültige Umgebung (dieselben Spezifikationen, Prüfungsregeln, Wertregeln, Ansichten), aber mit so wenig wie möglich repräsentativen Entitäten (Locales, Katalogen, Kategoriebäumen, Organisationen, Benutzern, Aufgabenbereichen) ausgeführt werden. Dies sollte die benötigte Zeit zum Ausführen der Tests und Laden der Anzeigen reduzieren, und insgesamt die Testzeit im Vergleich zu einer Umgebung beschleunigen, die vollständig gefüllt ist. Sämtliche Tests und Debugs sollten in dieser Umgebung ausgeführt werden.

Erst wenn der Test in der repräsentativen Umgebung abgeschlossen ist und alles funktioniert hat, sollte die Integration sodann in einer vollständigen und gefüllten Umgebung bestätigt werden. Dieser Schritt sollte außerdem ausgeführt werden, um sicherzustellen, dass keine Randszenarien versehentlich in der repräsentativen Umgebung ignoriert wurden, und um die Leistung der Umgebung im Produktionsbetrieb zu testen.

Skalierbare Prozesstests

Jeder terminierbare Job wie Importe und Exporte sollte zunächst nur mit einer sehr kleinen Anzahl repräsentativer Elemente ausgeführt werden - 10 oder weniger. Diese Zahl sollte proportional mit dem Grad der Verlässlichkeit des Scripts steigen, das diese Elemente tatsächlich verarbeitet. Dieser Ansatz stellt sicher, dass ein umfangreicher Job nicht über Stunden ausgeführt, nur damit der Ausführende anschließend feststellen muss, dass ein Fehler aufgetreten ist, der jedoch nicht den gesamten Prozess bereits in den ersten Minuten der Ausführung fehlschlagen lassen hat.

Erst wenn vollständige Übereinstimmung im dem Job zugehörigen Script besteht, sollte ein Job mit einem kompletten Datensatz ausgeführt werden. Wie bei den Empfehlungen zur vollständigen Umgebung sollte dieser Schritt außerdem ausgeführt werden, um sicherzustellen, dass keine Randszenarien versehentlich bei der Ausführung kleinerer Jobs ignoriert wurden, und um die Leistung des Jobs im Produktionsbetrieb zu testen.

Transparenz

Berichte

Vorteile von Mini-Integrationen

Die Implementierung von Mini-Integrationen (wie im Abschnitt "Implementierung" beschrieben) ermöglicht eine detaillierter Berichterstellung aufgrund kompakter und schneller implementierbarer Integrationsblöcke. Im Vergleich zur Berichterstellung über den Verarbeitungsfortschritt der Implementierung auf Gesamtintegrationsebene ermöglicht diese abgestuftere Berichterstellung das eine konkretere und quantitativere Protokollierung der Implementierung.

Die Mini-Integrationen können aufgelistet und ihr Zusammenhang mit dem größeren Bild der kompletten Integration kann in einer Grafik dargestellt werden, so dass anhand der Berichterstellung über den Verarbeitungsfortschritt der Mini-Integrationstasks ein genaues Bild des gesamten Verarbeitungsfortschrittes der Implementierung gezeichnet werden kann.

Eignerrechte

Auch wenn Sie mit mehreren Teams arbeiten, sollte eine Einzelperson der Eigner für die gesamte Integration sein. Aufgabe dieser Person ist es, sicherzustellen, dass der Einzelthread frühzeitig erstellt wird, dass die Teams gemäß den Richtlinien in diesem Dokument arbeiten, und dass der Zyklus des schrittweisen Erstellens und Testens anhand von (a) Mini-Integrationen, (b) skalierbaren Prozesstests und (c) repräsentativen versus vollständigen Umgebungen in den verschiedenen Teams synchron stattfindet.

Dokumentation

Formate und Ansatz eindeutig angeben

Entscheiden Sie sich für eine eindeutige Vorgehensweise bei der Ausführung und dokumentieren Sie klar alle Formate, die benutzt werden sollen, wenn mehrere Teams an der Integration mitarbeiten. Das häufigste Beispiel hierfür ist ein WebSphere Product Center-Team, das gerade Daten aus WebSphere Product Center exportiert, und gleichzeitig ein Kunden- oder SI-Team, das diese Daten in ein Zielsystem hochlädt. Beginnen Sie nicht ohne die Spezifikationen für das gemeinsame Format mit der Arbeit, und aktualisieren Sie die Dokumentation täglich. Dies ist eine absolute Anforderung, die der Projektleiter umzusetzen hat.

Dieser Ansatz ist dennoch konsistent mit dem Verwenden von repräsentativen Umgebungen und dem Ausführen von Mini-Integrationen. Beide Teams sollten inkrementell aufbauen und testen, um stetigen, transparenten Verarbeitungsfortschritt sicherzustellen.


Die Top-Ten-Richtlinien für WebSphere Product Center-Integrationen

Verwendung einer klaren und allgemein gebräuchlichen Terminologie zur Beschreibung der Integration

Alle Implementierungen sollten die angegebenen Dimensionen einbeziehen, die im Abschnitt "Integrationsdimensionen" beschrieben wurden.

Wiederverwendbarkeit

Der Schlüssel zur Skalierung liegt darin, aus vorherigen Integrationen zu lernen, und die Integrationen zu konfektionieren, wobei die Prinzipien der Wiederverwendbarkeit berücksichtigt werden müssen, wie im Abschnitt "Wiederverwendbarkeit" beschrieben.

Transparenz

Bauen Sie eine Gesamtmessgröße für den Fortschritt bei der Berichterstellung auf und stellen Sie dem Projektleiter spätestens alle paar Tage eine klare Statusaktualisierung zur Verfügung.

'Mini-Integrationen'

Unterteilen Sie die Komplexität einer großen Integration anhand verschiedener Dimensionen (Kataloge, Attribute), so dass es für die Integration Sinn ergibt. Konzentrieren Sie sich zunächst auf eine Mini-Integration zur Zeit und binden Sie sie direkt in die Messwerte für Transparenz ein.

Repräsentative Umgebungen versus vollständige Umgebungen

Pflegen Sie eine repräsentative Umgebung, für die Fehlerbehebung und Tests leicht durchzuführen sind. Gehen Sie erst zur vollständigen Umgebung über, wenn die Gültigkeit von Scripts und Spezifikationen zutrifft. Binden Sie dies in die Messwerte für Transparenz ein.

Skalierbare Prozesstests

Testen Sie alle Jobs mit kleinen Datensätzen, um die Richtigkeit zu überprüfen, bevor Sie mit den kompletten Datensätzen beginnen. Binden Sie dies in die Messwerte für Transparenz ein.

Leistung

Führen Sie einige Leistungstests in einem frühen Stadium des Entwicklungszyklus aus, ohne sich um logische Richtigkeit oder die Formatierung zu kümmern, und führen Sie diese Tests auch anschließend regelmäßig durch, um mögliche Probleme zu erkennen.

Aufbau eines Einzelthreads in einem frühen Stadium

Insbesondere bei komplexeren Integrationen, die möglicherweise mehrere Hops erfordern, mehrere Protokolle oder vom Standard abweichende Mittel, sollten Sie einen einzigen funktionierenden Integrationsthread frühzeitig errichten.

Gestaltungsspezifikationen und Dokumentation

Legen Sie eine eindeutige Vorgehensweise bei der Ausführung fest und dokumentieren Sie diese, ebenso wie alle Formate, die benutzt werden sollen, insbesondere, wenn mehrere Teams an der Integration mitarbeiten.

Ein einziger Eigner

Auch wenn Sie mit mehreren Teams arbeiten, sollte eine Einzelperson der Eigner für den Gesamtverlauf der Integration sein.


EAI-Plattformintegrationen

Methode

Generische Kommunikationsformate

Wann immer möglich sollte ein generisches Kommunikationsformat entwickelt oder aus einem früheren Projekt wiederverwendet werden. Je allgemeiner das Format, desto mehr Systeme können in die Integration einbezogen werden, ohne dass eine besondere Formatüberarbeitung notwendig wäre, damit alle Systeme miteinander kommunizieren können. Natürlich können Kompromisse bei der Leistung notwendig sein, je allgemeiner ein Format gestaltet ist, und daher ist das für ein Projekt richtige Format nicht unbedingt die ideale Wahl für ein anderes Projekt. Die Integrationsdimensionen sollten immer berücksichtigt werden, wenn die Verwendung eines bestimmten Formats festgelegt wird.

Inhaltszuordnungen

Zuordnungen zwischen dem WebSphere Product Center-Inhaltsmodell und dem Modell sollten aus der Perspektive des Kommunikationsformates so weit wie möglich über dynamisch aktualisierbare Mittel erfolgen. Auf der Grundlage einer Untersuchung der Integrationsdimensionen kann es sich, wie bereits erwähnt, herausstellen, dass es für bestimmte Projekte nicht möglich ist, diese Zuordnungen vollständig dynamisch aktualisierbar zu erstellen - beispielsweise aufgrund der hohen Priorität, die dem absoluten Maximumdurchsatz bei der Verarbeitung eingeräumt wird. Eine Möglichkeit hierbei ist das Einbeziehen von Kategoriebäumen (die z. B. eine XML-Struktur darstellen) mit einer einzigen zugehörigen Knotenspezifikation, die den Pfad des Spezifikationsknotens eines Attributs angeben kann, für das ein bestimmter Knoten des Kategoriebaums im WebSphere Product Center-Inhaltsmodell zugeordnet werden kann. Anschließend kann ein rekursives Verarbeitungsscript verwendet werden, um die Zuordnung eines Elements in eine XML-Datei auf der Basis des Kategoriebaums und der definierten Zuordnungen zu verarbeiten, und kann sogar verschachtelte Mehrfachvorkommen ohne großen Aufwand berücksichtigen.


Weitere Vorteile

Konvertierung und Umsetzung von Informationen

Für die in eine Integration einbezogenen Systeme sollte nicht die Notwendigkeit bestehen, selbst die Informationen oder Inhaltseinschränkungen und Anforderungen anderer Systeme innerhalb der Integration zu handhaben. EAI-Plattformen eignen sich hervorragend zur Handhabung der Konvertierung und Transformation von Inhalten. Während z. B. WebSphere Product Center einen FLAG-Wert als "TRUE" (wahr) oder "FALSE" (falsch) speichert, könnte ein System in der Integration diese Werte vielleicht als "Y" (Ja) oder "N" (Nein) speichern. Mit EAI-Plattformen können diese Konvertierungen so erfolgen, dass WebSphere Product Center immer die Werte TRUE/FALSE sendet und auch voraussetzt, TRUE/FALSE zu empfangen, und gleichzeitig können integrierte Systeme immer die Werte Y/N senden bzw. empfangen. Dadurch wird sichergestellt, dass bei der Einbeziehung einer zunehmenden Zahl von Systemen in die Integration keine Änderungen am Programmcode aufgrund der zusätzlichen Systeme erforderlich ist.

Nachvollziehbarkeit für den Client

Da eine Plattform wiederverwendet werden kann, mit der der Client wahrscheinlich bereits vertraut ist, gewinnt der Client die zusätzliche Sicherheit, dass für die Integration eine ihm bekannte Funktionalität eingesetzt wird - die EAI-Plattform. Außerdem müssen clientseitige Entwickler, wenn ein Client-spezifisches Kommunikationsformat bereits vorhanden ist und für die WebSphere Product Center-Integration wiederverwendet wird, nur wenig oder keine zusätzlichen Schulungen, um das Kommunikationsformat zu verstehen, dem WebSphere Product Center zugeordnet wird.

Flexibilität und Zuverlässigkeit der Kommunikation

Die meisten EAI-Plattformen verfügen über umgebungsspezifische Funktionalitäten, damit die Kommunikation über verschiedene Protokolle möglich ist und um sicherzustellen, dass die Kommunikation über Brokering sichergestellt wird. Dadurch kann WebSphere Product Center einfach das notwendige Dokument für die Kommunikation generieren, ohne dass die Unterstützung möglicher unterschiedlicher Formen der Übertragung dieses Dokuments an verschiedene Systeme zu berücksichtigen wäre oder die verfolgt werden müsste, ob das Dokument auch von allen Systemen empfangen wurde. Um diese Dinge kümmert sich die EAI-Ebene und die Plattform, so dass WebSphere Product Center sie lediglich aus der Perspektive des gesamten Integrationsthreads berücksichtigen muss.


Bemerkungen

Möglicherweise bietet IBM die in dieser Dokumentation beschriebenen Produkte, Services oder Funktionen 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 Services von IBM verwendet werden können. Anstelle der IBM Produkte, Programme oder Services können auch andere ihnen äquivalente Produkte, Programme oder Services verwendet werden, solange diese keine gewerblichen oder anderen 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):

IBM Europe

Director of Licensing

92066 Paris La Defense Cedex

France

Trotz sorgfältiger Bearbeitung können technische Ungenauigkeiten oder Druckfehler in dieser Veröffentlichung nicht ausgeschlossen werden. Die Angaben in diesem Handbuch werden in regelmäßigen Zeitabständen aktualisiert. Die Änderungen werden in Überarbeitungen oder in Technical News Letters (TNLs) bekannt gegeben. IBM kann ohne weitere Mitteilung jederzeit Verbesserungen und/oder Änderungen an den in dieser Veröffentlichung beschriebenen Produkten und/oder Programmen vornehmen.

Verweise in diesen Informationen 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:

IBM Burlingame Laboratory

Director IBM Burlingame Laboratory

577 Airport Blvd., Suite 800

Burlingame, CA 94010

U.S.A

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 im Handbuch aufgeführten Lizenzprogramms sowie des zugehörigen Lizenzmaterials erfolgt im Rahmen der ICA-Lizenzbedingungen (IBM Customer Agreement), der Internationalen Nutzungsbedingungen der IBM für Programmpakete (IPLA) 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 Gewährleistung, 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.

Alle Informationen zu Produkten anderer Anbieter stammen von den Anbietern der aufgeführten Produkte, deren veröffentlichten Ankündigungen oder anderen allgemein verfügbaren Quellen. IBM hat diese Produkte nicht getestet und kann daher keine Aussagen zu Leistung, Kompatibilität oder anderen Merkmalen machen. Fragen zu den Leistungsmerkmalen von Produkten anderer Anbieter sind an den jeweiligen Anbieter zu richten.

Diese Veröffentlichung enthält Beispiele für Daten und Berichte des alltäglichen Geschäftsablaufes. Sie sollen nur die Funktionen des Lizenzprogrammes illustrieren; sie können Namen von Personen, Firmen, Marken oder Produkten enthalten. Alle diese Namen sind frei erfunden; Ähnlichkeiten mit tatsächlichen Namen und Adressen sind rein zufällig.

Die oben genannten Erklärungen bezüglich der Produktstrategien und Absichtserklärungen von IBM stellen die gegenwärtige Absicht der IBM dar, unterliegen Änderungen oder können zurückgenommen werden, und repräsentieren nur die Ziele der IBM.

Programmierschnittstelleninformationen

Falls Informationen zu Programmierschnittstellen zur Verfügung gestellt wurden, sollen Ihnen diese bei der Erstellung von Anwendungssoftware mit diesem Programm behilflich sein.

Mit allgemeinen Programmierschnittstellen können Sie Anwendungssoftware schreiben, die auf die Services der Tools dieses Programms zurückgreift.

Diese Informationen können jedoch auch Diagnose-, Änderungs- und Optimierungsinformationen zur Verfügung stellen. Diagnose-, Änderungs- und Optimierungsinformationen sind enthalten, damit Sie Fehler in Ihrer Anwendungssoftware beheben können.

Warnung: Verwenden Sie diese Diagnose-, Änderungs- und Optimierungsinformationen nicht als Programmierschnittstelle, da sie geändert werden können.

Marken

Folgende Namen sind in gewissen Ländern (oder Regionen) Marken oder eingetragene Marken der International Business Machines Corporation:

IBM
Das IBM Logo
AIX
CrossWorlds
DB2
DB2 Universal Database
Domino
Lotus
Lotus Notes
MQIntegrator
MQSeries
Tivoli
WebSphere

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

MMX, Pentium und ProShare sind in gewissen Ländern Marken oder eingetragene Marken der Intel Corporation.

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

Andere Namen von Unternehmen, Produkten oder Services können Marken oder Servicemarken anderer Unternehmen sein.


IBM WebSphere Product Center enthält bestimmte "Ausgeschlossene Komponenten" 
(gemäß der Definition in der entsprechenden Lizenzinformation), für die zusätzlich die folgenden 
Bedingungen gelten. Diese Software wird auf Basis der Internationalen Nutzungsbedingungen 
für Programmpakete (IPLA) gemäß den entsprechenden Bedingungen zu "Ausgeschlossenen 
Komponenten" lizenziert. IBM ist verpflichtet, in Verbindung mit dieser Software 
die folgenden Hinweise zu geben:

i.) IBM WebSphere Product Center beinhaltet die folgende Software, die von IBM von 
der Apache Software Foundation auf Basis der Bedingungen der Apache 2.0-Lizenz 
lizenziert wurde:

- Apache Regular Expression v1.2
- Apache Axis v1.1
- Apache XML4J v3.0.1
- Apache Log4j v1.1.1
- Apache Jakarta Commons DBCP Package v1.1
- Apache Jakarta Commons Pool Package v1.1
- Apache Jakarta Commons Collections Package v3.0

Apache-Lizenz
Version 2.0, Januar 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.

"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:

(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.

You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement You may have executed
with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of Your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to Your work.

To apply the Apache License to Your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with Your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
You may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

ii.) IBM WebSphere Product Center beinhaltet die folgende Software, die von IBM von 
Scott Hudson, Frank Flannery und C. Scott Ananian auf Basis der folgenden 
Bedingungen lizenziert wurde:

- Cup Parser Generator v0.10k

CUP Parser Generator Copyright Notice, License, and Disclaimer
Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian 
Permission to use, copy, modify, and distribute this software and its 
documentation for any purpose and without fee is hereby granted, provided that 
the above copyright notice appear in all copies and that both the copyright 
notice and this permission notice and warranty disclaimer appear in supporting 
documentation, and that the names of the authors or their employers not be 
used in advertising or publicity pertaining to distribution of the software 
without specific, written prior permission. The authors and their employers 
disclaim all warranties with regard to this software, including all implied 
warranties of merchantability and fitness. In no event shall the authors or 
their employers be liable for any special, indirect or consequential damages 
or any damages whatsoever resulting from loss of use, data or profits, whether 
in an action of contract, negligence or other tortious action, arising out of 
or in connection with the use or performance of this software. 

iii.) IBM WebSphere Product Center beinhaltet die folgende Software, die von IBM von 
Elliot Joel Berk und C. Scott Ananian auf Basis der folgenden Bedingungen 
lizenziert wurde:

- JLex v1.2.6

JLEX COPYRIGHT NOTICE, LICENSE AND DISCLAIMER.
Copyright 1996-2003 by Elliot Joel Berk and C. Scott Ananian 
Permission to use, copy, modify, and distribute this software and its 
documentation for any purpose and without fee is hereby granted, provided that 
the above copyright notice appear in all copies and that both the copyright 
notice and this permission notice and warranty disclaimer appear in supporting 
documentation, and that the name of the authors or their employers not be used 
in advertising or publicity pertaining to distribution of the software without 
specific, written prior permission. The authors and their employers disclaim 
all warranties with regard to this software, including all implied warranties 
of merchantability and fitness. In no event shall the authors or their 
employers be liable for any special, indirect or consequential damages or any 
damages whatsoever resulting from loss of use, data or profits, whether in an 
action of contract, negligence or other tortious action, arising out of or in 
connection with the use or performance of this software. Java is a trademark 
of Sun Microsystems, Inc. References to the Java programming language in 
relation to JLex are not meant to imply that Sun endorses this product. 

iv.) IBM WebSphere Product Center beinhaltet die folgende Software, die von IBM von 
der International Business Machines Corporation und anderen auf Basis der folgenden 
Bedingungen lizenziert wurde:

- ICU4J v2.8

ICU-Lizenz - ICU 1.8.1 und höher
COPYRIGHT UND GENEHMIGUNGSNACHWEIS

Copyright (c) 1995-2003 International Business Machines Corporation und andere.
Alle Rechte vorbehalten.

Hiermit wird jeder Person, die eine Kopie dieser Software und der zugehörigen
Dokumentationsdateien (die "Software") erhält, die kostenlose Genehmigung erteilt,
uneingeschränkt mit der Software zu handeln. Dazu gehört ohne Einschränkung
das Recht, Kopien der Software zu nutzen, zu kopieren, zu ändern, zusammenzufügen, zu veröffentlichen,
weiterzugeben und/oder zu verkaufen und den Personen, denen
die Software zur Verfügung gestellt wird, das gleiche Recht einzuräumen,
vorausgesetzt, dass der obige Copyrightvermerk (bzw. die Copyrightvermerke) und dieser
Berechtigungshinweis auf allen Kopien der Software sowie der zugehörigen Dokumentation
erscheinen.

DIE SOFTWARE WIRD OHNE WARTUNG (AUF "AS-IS"-BASIS) UND OHNE GEWÄHRLEISTUNG
(VERÖFFENTLICHT ODER STILLSCHWEIGEND) ZUR VERFÜGUNG GESTELLT, EINSCHLIESSLICH, ABER NICHT BEGRENZT
AUF DIE IMPLIZIERTE GEWÄHRLEISTUNG FÜR DIE HANDELSÜBLICHKEIT, DIE VERWENDUNGSFÄHIGKEIT FÜR EINEN
BESTIMMTEN ZWECK UND DIE FREIHEIT DER RECHTE DRITTER. UNTER KEINEN UMSTÄNDEN IST DER
ODER SIND DIE HIER AUFGEFÜHRTEN COPYRIGHTINHABER HAFTBAR FÜR SPEZIELLE,
UNMITTELBARE, MITTELBARE ODER FOLGESCHÄDEN ODER SCHÄDEN DURCH
NUTZUNGSAUSFALL, DATENVERLUST, GEWINNEINBUSSEN. DIES GILT UNABHÄNGIG VON DER HAFTUNGSGRUNDLAGE,
SEI SIE VERSCHULDENSABHÄNGIG ODER VERSCHULDENSUNABHÄNGIG, SOFERN SIE IN
IRGENDEINER FORM AUF DIE NUTZUNG DER SOFTWARE ZURÜCKZUFÜHREN WÄRE.

Mit Ausnahme der Verwendung in diesem Hinweis darf der Name eines Copyrightinhabers
ohne seine vorherige schriftliche Genehmigung nicht zu Werbezwecken,
anderen Arten der Verkaufsförderung oder zur Nutzung
in dieser Software verwendet werden.


Alle an dieser Stelle genannten Marken und eingetragenen Marken sind das Eigentum 
der jeweiligen Rechtsinhaber.