Dem AppServer sind alle Datenbankänderungen bekannt, sodass er bei Projektänderungen und/oder Rollenänderungen mit Updates des LinkDB-Suchindex [LinkDB search index] oder Client-Benachrichtigungen automatisch reagieren kann.
Falls die Option Kataloge und Suche über AppServer [Catalog browsing and search with AppServer] gewählt ist (also nicht Kataloge, Suche und Datenbank über AppServer [Catalog browsing, search and database with AppServer]), funktionieren automatische Updates des LinkDB-Suchindex [LinkDB search index] dennoch. Das ist möglich, da man auf dem AppServer einen "Task" konfigurieren kann, der regelmäßig den LinkDB-Suchindex [LinkDB search index] aktualisiert (mit den Infos aus der LOGTABLE).
Ein
älteres Konzept (bis V9.08) verwendet für Index-Updates das Skript
nightupdate_erp.vbb
. Dieses sorgt
dafür, dass die ERPTABLE in den Volltextsuchindex (=Lucene-Index)
aufgenommen wird. (Kann optional auch in V10/11 verwendet werden.)
(Details finden Sie im Skript selbst.) Der Vorteil der AppServer-Lösung
ist, dass nur die Teile des ERP-Suchindex aktualisiert werden, in denen
sich Daten geändert haben. Sofern nicht in speziellen Fällen etwas
entgegensteht, wird der Prozess nightupdate_erp.vbb
in V10/11 nicht
mehr benötigt.
Intervall, in welchem der Task zum Aktualisieren des ERP-Suchindex gestartet wird. Er prüft dann in der LOGTABLE, ob neue Einträge vorhanden sind. Wenn ja, dann wird der ERP-Index aktualisiert.
Ist der Wert gesetzt, wird außerdem nach einem Katalogupdate der Suchindex automatisch aktualisiert.
Wenn Sie die Aktualisierung des Suchindex nicht automatisch ablaufen lassen möchten, sondern nach einem Update manuell anstoßen möchten, verfahren Sie folgendermaßen:
Entfernen Sie den Wert "
DBSearchIndexTask
" aus dem Schlüssel "Tasks
".plinkcommon.cfg
-> SchlüsselUPDATESEARCHINDEX
-> Es erscheint nun beim Anstoßen des Katalogupdates eine Meldung, ob Sie den ERP-Suchindex nach der Installation automatisch aktualisieren möchten.
Möchten Sie die ERP-Suchindexe nach der Installation automatisch aktualisieren? [Do you want to update the ERP search indexes automatically after installation?]
Siehe hierzu auch Abschnitt 4.16.7, „ Volltextsuchindex aktualisieren bei LinkDB-Änderung / plinkcommon.cfg -> Block [Common] -> Schlüssel "UPDATESEARCHINDEX" “.
DBClearLogTask: Intervall in welchem der Task zum Aufräumen der LOGTABLE gestartet wird. Dieser Task löscht alte Einträge aus der LOGTABLE.
Detaillierte Informationen hierzu finden Sie im folgenden Abschnitt.
INSERTS, DELETES und manuelle UPDATES (durch PARTlinkManager oder PARTdataManager) können automatisch in der Tabelle LOGTABLE geloggt werden.
LOGID VARCHAR(40) NOT NULL, TABNAME VARCHAR(15) NOT NULL, KEYFLD VARCHAR(15) NOT NULL, LOGKEY VARCHAR(500) NOT NULL, LOGEXT VARCHAR(64), LOGTIME VARCHAR(20) NOT NULL, USERNAME NVARCHAR(20), HOSTNAME NVARCHAR(20), PROGNAME VARCHAR(15), MODTYPE SMALLINT DEFAULT 0 NOT NULL, UPDSEARCH SMALLINT DEFAULT 0 NOT NULL,
Die Tabelle kann via PARTlinkManager -> Extras Menü -> Datenbank [Database] -> Zusätzliche Tabellen editieren [Edit additional tables] eingesehen werden.
Falls in der Konfigurationsdatei plinkcommon.cfg unter ADDITIONALTABLES der Eintrag LOGTABLE gesetzt wurde, wird die Tabelle hier angezeigt.
Bedeutung der einzelnen Spalten von LOGTABLE
TABNAME: Tabelle, wo die Änderungen gespeichert werden (ERPTABLE oder LINKTABLE).
LOGEXT: Zusätzliche Information. Bei LinkDB-Änderungen ist das Version und Zeilen-ID.
USERNAME: Login-Name des Benutzers, der die Änderung ausgeführt hat.
UPDSEARCH: Wenn UPDSEARCH den Wert 1 hat, dann soll der ERP-Suchindex aktualisiert werden. Wird vom AppServer zurück auf 0 gestellt, nachdem er aktualisiert wurde.
Damit der Task auch wirklich ausgeführt wird,
müssen noch folgende Einstellungen in der Konfigurationsdatei pappserver.cfg
vorhanden
sein.
[TaskManagerModule] TimerInterval=60 tasks=loadAll DBSearchIndexTask=1h DBClearLogTask=24h [DBClearLogTask] DaysToKeep=365
TimerInterval: Gibt an, in welchem Intervall (Sekunden) geprüft werden soll, ob ein neuer Task zur Ausführung ansteht. (Normalerweise nicht zu ändern)
DBSearchIndexTask: Intervall, in welchem der Task zum Aktualisieren des ERP-Suchindex gestartet wird. Er prüft dann in der LOGTABLE, ob neue Einträge vorhanden sind. Wenn ja, dann wird der ERP-Index aktualisiert.
DBClearLogTask: Intervall in welchem der Task zum Aufräumen der LOGTABLE gestartet wird. Dieser Task löscht alte Einträge aus der LOGTABLE.
Beispiele für mögliche Datumsformate:
1m Task wird jede Minute ausgeführt 1h Task wird jede Stunde ausgeführt 13:21z Task wird jeden Tag um 13:21 GMT ausgeführt mon 14:30 Task wird jeden Montag um 14:30 (lokale Zeit) ausgeführt DaysToKeep: Anzahl der Tage, in denen die Einträge in der LOGTABLE gespeichert werden.
Manuelles Update des LinkDB-Suchindex: Bei Bedarf möglich. Siehe hierzu Abschnitt 1.3.3.6.6.4, „LinkDB-Suchindex “.
Initiales Erstellen des LinkDB-Suchindex:
Zeitaufwand für eine initiale Befüllung: 100.000 Datensätze ca. 25 min. pro Rolle.[15]
[15] Genaue Zeiten sind abhängig von den genauen Umständen wie Netzwerkgeschwindigkeiten, Prozessorgeschwindigkeit, Plattengeschwindigkeit, etc.