Tool zum Verarbeiten von Lucene-Indizes

Übersicht

Das IndexRepairKit repariert einen Index der B2B. Der Reindizierer schreibt direkt in den Index und nutzt keine Puffertabelle (er kann also auch ohne B2B laufen), daher muss das Tool direkten Zugriff zum Indexverzeichnis haben. Ausgegangen wird von einem tomcat-application server, andernfalls müssen die genannten Verzeichnisse angepasst werden.

Einrichtung und Installation

  • IndexRepairKit.zip im Dateisystem entpacken.
  • Falls noch nicht vorhanden, die nötigen Datenbanktreiber dem Verzeichnis hinzufügen (zu finden zum Beispiel im tomcat/lib-Verzeichnis).
  • Zugangsdaten für die Datenbank in dbconnection.txt analog zum dortigen Beispiel konfigurieren. Die Datenbankeinstellungen können aus der b2bbp-engine.xml entnommen werden. (standard Verzeichnispfad tomcat/conf/Catalina/localhost/b2bbp-engine.xml)

Verzeichnis

DBconnection

Ausführung

Vor dem Start sollten die IndexServices, die den Index schreiben der aufgefrischt werden soll, in der B2B ausgeschaltet werden! (nicht zwingend notwendig, aber empfohlen) Dazu kann bei den Services in der B2B der Haken bei „Startup“ bei den entsprechenden IndexServices (Klassen org.b2bbp.service.inbound.index.IndexService2, com.nextlevel.ccm.indexing.service.IndexServiceCCM und ähnliche) entfernt werden.

Je nach Betriebssystem reIndex.bat oder reIndex.sh ausführen. (Im Falle einer OutOfMemoryException kann in den Ausführungsdateien mittels set JAVA_OPTS=–Xmx1024m, hier 1024 MB, zusätzlich Speicher für die JVM allokiert werden). In der Kommandozeile wird man zur Eingabe von Indextyp und Indiezierungsgrenzen aufgefordert. Welche Einstellungsmöglichkeiten es gibt, wird unter “Benutzereingaben” erläutert.

Bat

Benutzereingaben

Nach dem ausführen der Batch-Datei, müssen Einstellungen des Anwenders vorgenommen werden. Als erstes muss der IndexTyp festgelegt werden. Die Bezeichnungen des Indextyps entsprechen den in den Global Properties hinterlegten bezeichnungen wie zum Beispiel: B3P_SEARCH_INDEX_DIRECTORY.

Menue

Weitere Konfigurationen für die Unterschiedlichen varianten des IndexRepairkits:

  • Start- und Enddatum (Zeitraum, indem die Nachrichten nachindiziert werden sollen) der ReIndizierung wird in folgendem Format: [dd.mmyyyy HH:mm:ss], z.B: 15.05.2011 22:21:22 eingetragen.
  • Stoppzeit der Indizierung: Sollte man einen größeren Zeitraum nachindizieren, kann es Sinnvoll sein eine Stoppzeit einzurichten. Mit der Eingabe ‘X’ wird keine festgelegte Stopzeit gesetzt.
  • Angabe nach wievielen Nachrichten ein Commit zum Index durchgeführt werden soll. (Empfohlen : 1000, diese Angaben ist Datenbankabhängig und kann je nach Datenbankgöße stark variieren!)
  • Angabe wie groß der Zeitraum ist, der aus der Datenbank pro Abfrage gelesen werden soll, in Stunden. (Default-Wert: 6, diese Angaben ist Datenbankabhängig und kann je nach Datenbankgöße stark variieren!)
  • Desweiteren kann der ReIndexer auch im Debugmodus ausgeführt werden, hierfür muss allerdings eine Stoppzeit angegeben werden.

Besonderheiten beim CCM-Index

Bei der Reindizierung des CCM-Index kann mit der Nutzer-Eingabe “Sollen die neu zu indizierenden Dokumente vorher im Index gesucht und gelöscht werden? [J/N]” der Benutzer entscheiden, ob nach vorhandenen Dokumenten im Index gesucht und falls vorhanden diese gelöscht werden sollen bevor die Reindizierung durchgeführt wird. Dies ist z.B. dann sinnvoll, wenn bei bestehenden Dokumenten im Index neue Felder, die neu in der Extension FLEXIBLE_INDEX konfiguriert wurden, hinzugefügt werden sollen.

Besonderheiten beim Archiv-Index

Bei der Reindizierung des Archive-Index kann mit der Nutzer-Eingabe “Soll versuchtwerden der original Verarbeitungsstatus (VS) zu indizieren? Es wird ein JOIN zw. DATA_MESSAGE und DATA_CLEARING ausgeführt. Die Verarbeitung dauert etwas länger [J/N]” der Benutzer entscheiden, originale VS (SUC, MAN oder ERR) in den Index geschrieben werden soll. Hierfür sind mehr Datenbankabfragen nötig. Wird hier nein ausgewählt, haben die Nachrichten im Index den Status “ARC”.

Nach der Konfiguration wird man aufgefordert die Datenbanksettings zu bestätigen und die Reindizierung zu starten.

Das Ergebnis der Reindizierung wird über einzelne Zwichenberichte und einen beschließenden Abschlusbericht übermittelt.

Trouble Shooting

Der Reindizierer schreibt direkt in den Index und nutzt nicht die Puffertabelle. (Kann also auch ohne B2B laufen), daher muss das Tool direkten Zugriff zum Indexverzeichnis haben.

Bei Fehlern mit einem Lock sollten die Angaben zur Anzahl der Nachrichten pro Commit und dem Zeitraum pro Abfrage variiert werden.

Bei NullPointerException und Problemen mit Messages sollten die Global Properties B3P_REPORTING_DB_ für alle verschiedenen Daten überprüft werden. Wenn die Reportingdatenbank-properties nicht benötigt werden, sollten sie entfernt werden. Alternativ sollten sie so korrigiert werden, dass mit den Daten der von der B2B genutzten Datenbank übereinstimmen (siehe tomcat/conf/Catalina/localhost/b2bbp-engine.xml). (Dieses Problem sollte bei neuem B2B-Deployment nicht auftreten können.)

View Me   Edit Me