Einleitung
Der UpdateBackupIndexServiceCCM dient dazu, Probleme, die bei der Parallelverarbeitung von Nachrichten entstehen, zu kompensieren.
Normale Index Updates und Deferred Updates
Der Grundmechanismus zur Synchronisierung von Informationen zwischen B2B und CCM sind Index-Updates. Neu hereinkommende Nachrichten werden über ADD-Operationen und die B2BBP_CCM_INDEX_SYNC Datenbanktabelle in den CCM-Index geschrieben. Ändern sich Nachrichten in der B2B, wie z.B. durch eingehende CONTRLs, deren Ursprungsnachricht das Attribut “Published to CCM” haben oder durch die StatusSynchronisation mit einer IS-U, werden Update-Dokumente erzeugt, die in der Regel über UPD-Operationen und B2BBP_CCM_INDEX_SYNC in den CCM-Index geschrieben werden.
Jedes Update hat explizit oder implizit einen Suchterm, der ihm ermöglicht, die upzudatende Originalnachricht im Index zu finden. Für Updates in der B2BBP_CCM_INDEX_SYNC Tabelle gibt es einen Mechanismus für den Fall, dass ein Update seine Originalnachricht nicht im Index findet. Dabei werden die UPD-Objekte als UDD-Objekte (Deferred Updates) in eine Warteschleife in der B2BBP_CCM_INDEX_SYNC Tabelle geschickt und entweder irgendwann zugeordnet und ausgeführt oder nach einem definierten Zeitraum und mehreren fehlgeschlagenen Zuordnungsversuchen in der B2BBP_CCM_INDEX_SYNC_BU Tabelle archiviert.
Related Updates
Ein Sonderfall sind sogenannte zugehörige (“Related”) Updates. Sie entstehen bei der Indizierung von APERAK-Dokumenten (ADD-Operation). Wenn der IndexServiceCCM die APERAK-Objekte aus der Tabelle holt und verarbeitet, erzeugt er Related Updates, um das zugehörige Originaldokument (z. B. UTILMD) auf BS=APC zu setzen. Diese werden nicht in die B2BBP_CCM_INDEX_SYNC geschrieben, sondern direkt im Index umgesetzt.
Diese Related Updates (eins für jeden Vorgang) prüfen in der DB, ob bei ihrer Originalnachricht das Attribut B3P_PUBLISHED_TO_CCM gesetzt ist. Wenn nicht, werden in der B2BBP_CCM_INDEX_SYNC Tabelle UDD-Objekte erzeugt.
Besonderheit Contrl-Updates
Läuft eine Contrl über die ContrlConsumerAction, so wird geprüft, ob die Ursprungsnachricht das Attribut “Published to CCM” besitzt. Ist dies der Fall, so wird ein Update-Dokument in der B2BBP_CCM_INDEX_SYNC Tabelle erzeugt. Ist dies nicht der Fall, der Channel der Originalnachricht Nachricht jedoch in der Extension B3P_CCM_CHANNELS vorhanden und die Global Property B3P_CCM_CHECK_USING_UPDATE_TBLauf true gesetzt, so wird ein Update-Eintrag in die B2BBP_CCM_UPDATE_BACKUP Tabelle geschrieben.
Der Service UpdateBackupIndexServiceCCM nimmt sich einen Teil der UPD aus der B2BBP_CCM_UPDATE_BACKUP Tabelle und prüft in der B2BBP_DATA_ATTRIBUTE Tabelle, ob mittlerweile das Attribut gesetzt wurde. Ist dies der Fall, so wird das Update in die B2BBP_CCM_INDEX_SYNC Tabelle geschrieben und aus der B2BBP_CCM_UPDATE_BACKUP Tabelle gelöscht.
Installation
Datenbanktabelle
Der UpdateBackupIndexServiceCCM benötigt die Datenbanktabelle B2BBP_CCM_UPDATE_BACKUP. Aktuelle CREATE-Skripte für verschiedene Datenbanken können beim Support angefordert werden.
CCM Update Backup Service definieren
Definieren Sie einen neuen Service Task unter “Administration -> Services” wie folgt:
Field | Value |
---|---|
ID | ccm_update (eindeutige ID) |
Name | CCM Update Backup Service |
Typ | INDEX |
Klasse | com.nextlevel.ccm.indexing.service.UpdateBackupIndexServiceCCM |
Channel | <keine Auswahl> |
Richtung | nach Welt |
Status | STP |
Erstellt von | b2bbp |
Startup | Yes (check box) |
Wird der Service in einem Customizing über eine xml-Datei hochgeladen, ist defaultmäßig Startup=0 eingestellt. Der Service muss dann noch manuell gestartet werden (Startup=1).
Service-Attribute für den UpdateBackupIndexServiceCCM definieren
Eigenschaft | Wert | Beschreibung |
---|---|---|
B3P_POLL_INTERVAL | 40 (positive Ganzzahl) | Periode für Neustart des Service, in Sekunden |
B3P_MAX_FILES | 300 (positive Ganzzahl) | Anzahl der Nachrichten, die bei Aufruf des Service “in einem Rutsch“ verarbeitet werden |
B3P_MAX_DAYS | 30 (positive Ganzzahl) | maximales Alter der Updates, die noch verarbeitet werden sollen, in Tagen |
Knotenzuordnung
Ordnen Sie den Service einem Knoten zu. Zur Zuordnung zu Knoten <N> hängen Sie an den Wert der GlobalProperty NODE_<N> mit Komma die ID des Service an, z.B.
NODE_12=ccm_index_pre,ccm_update
Der Service darf maximal auf einem Knoten laufen.
View Me Edit Me