osftslog
Diese Seite wurde automatisch aus dem Datenbank-Schema-Dump generiert und kann unvollständig oder fehlerhaft sein. Die Spalten und Datentypen sind aus dem Schema-Dump bestätigt; die Wertebereiche von flag1/flag2 und der Pipeline-Lifecycle sind zusätzlich empirisch aus enaio-Server-Logs (Version 11.0, Build 801/802) rekonstruiert.
|
Persistenter Status-Spiegel der enaio®-Volltext-Such-Pipeline (Full Text Search, FTS). Pro indexierbarem DMS-Objekt eine Zeile (Primärschlüssel osid), die für immer lebt — kein DELETE in den ausgewerteten Logs beobachtet. Keine Pull-Queue: jeder Zugriff erfolgt per osid-Lookup; die eigentliche Job-Queue der FTS-Pipeline ist oscpmqueue.
Bewirtschaftet ausschließlich von zwei Service-Workern:
-
index:<port>— FTS-Indexer-Service (Default-Port8045), konsumiert die CP-QueuesFULLTEXTIDX,FULLTEXTDOC,FULLTEXTFILTER,FULLTEXTLOCATION,FULLTEXTDELETE. -
os-rendition-cache— Rendition-Service, konsumiert die CP-QueuesRENDITION,RENRESET.
User-Clients greifen nie direkt auf diese Tabelle zu.
1. Spalten
| Name | Typ | Länge | Beschreibung |
|---|---|---|---|
|
|
nicht-null |
DMS-Objekt-ID (Primärschlüssel, eindeutig pro Zeile). Verweist auf die Hauptobjekttabelle des jeweiligen Objekttyps ( |
|
|
nicht-null |
enaio-Objekttyp-ID ( |
|
|
— |
Trigger-Zeit — Zeitpunkt der letzten Objekt-Änderung, die eine (Re-)Indexierung ausgelöst hat. Format: Minuten seit Unix-Epoch ( |
|
|
— |
Letzter Verarbeitungs-Zeitpunkt der Pipeline (gleiches Format wie |
|
|
— |
Index-Relevanz-Flag. In den ausgewerteten Logs durchgängig |
|
|
— |
Pipeline-Status-Code — siehe Wertebereich |
|
|
32 |
Worker-Instanz-Tag in der Form |
2. Wertebereich flag2
| Wert | Bedeutung |
|---|---|
|
Objekt vom Indexer aus |
|
OK — Volltext erfolgreich indexiert. Voll- |
|
Volltext-Rendition (noch) nicht im Cache verfügbar. Indexer triggert daraufhin via std.CreateCPMessages mit |
|
Rendition liegt vor, Inhalt aber nicht (sinnvoll) indexierbar — z. B. PDF ohne extrahierbaren Text (Scan ohne OCR), Format-Inkompatibilität. Endzustand (kein automatischer Retry beobachtet). |
|
Rendition-Worker hat Job aufgenommen. Partial- |
|
Rendition fertig in Cache geschrieben (nach |
|
Rendition-Worker beginnt produktiven Schritt. Geht deterministisch nach |
|
Rendition läuft / Ergebnis pending. Typischer Vorzustand von |
|
Rendition übersprungen — kein Hash, keine Volltext-Datei verfügbar. Retry-Pfad. |
Voll-UPDATE`s (vom Indexer) setzen `flag1, date1, date2, flag2, instance. Partial-UPDATE`s (vom Rendition-Service) setzen nur `date2, flag2.
|
3. Typischer Lifecycle einer osid
INSERT (flag2 = 0, durch Indexer aus FULLTEXTIDX)
→ UPDATE flag2 = 1001 (Rendition-Worker Pickup)
→ UPDATE flag2 = 1003 → 1004 (Rendition läuft)
→ UPDATE flag2 = 1002 (Rendition im Cache)
→ UPDATE flag2 = 200 (Indexer aus FULLTEXTDOC: erfolgreich indexiert)
Bei Objekt-Änderung wird ein neuer FULLTEXTIDX-Eintrag in oscpmqueue erzeugt; der Lifecycle beginnt von vorn mit flag2 = 0.
4. Beobachtete SQL-Patterns
-- Initiale Anmeldung (INSERT, vom Indexer)
INSERT INTO osftslog (osid, ostype, date1, date2, flag1, flag2, instance)
VALUES (2677570, 262248, 29657186, 29657186, 1, 0, 'index:8045');
-- Endzustand setzen (Voll-UPDATE, vom Indexer)
UPDATE osftslog
SET date1 = 29657186, flag1 = 1, date2 = 29657186, flag2 = 200, instance = 'index:8045'
WHERE osid = 2677570;
-- Pipeline-Zwischenphase (Partial-UPDATE, vom Rendition-Service)
UPDATE osftslog SET date2 = 29657186, flag2 = 1002 WHERE osid = 2677570;
-- Status-Lookup (vor jeder Operation)
SELECT * FROM osftslog WHERE osid = 2677570;
5. Verwandte Tabellen
-
oscpmqueue — die eigentliche CP-Message-Queue der Pipeline (Push-Pull-Mechanismus).
-
osftcontent — Volltext-Content-Speicher (vom Indexer als Quelle gelesen).
-
osfttab — Volltextsuche-Hauptindex-Tabelle.
6. Beteiligte Server-API-Jobs
| Job | Rolle bzgl. osftslog |
|---|---|
Pickup aus oscpmqueue — startet jede Pipeline-Aktion. Der Queue-Name bestimmt, welche |
|
Liefert dem Worker u. a. |
|
Indexer-Lesepfad: holt den Volltext-Content (aus osftcontent bzw. dem Cache). Leeres Resultat → |
|
Vom Indexer aufgerufen, wenn Rendition nachgefordert werden muss ( |
|
Nachbearbeitung einer abgeschlossenen Message. |
|
Vom Rendition-Service nach |
|
Direkter SQL-Pfad, über den beide Worker |