osftslog
This page was automatically generated from the database schema dump and may be incomplete or incorrect. Columns and data types are confirmed from the schema dump; the value ranges of flag1/flag2 and the pipeline lifecycle are additionally reverse-engineered from enaio server logs (version 11.0, build 801/802).
|
Persistent status mirror of the enaio® Full Text Search (FTS) pipeline. One row per indexable DMS object (primary key osid), living forever — no DELETE observed in the analysed logs. No pull queue: every access is via osid lookup; the actual job queue of the FTS pipeline is oscpmqueue.
Maintained exclusively by two service workers:
-
index:<port>— FTS indexer service (default port8045), consuming the CP queuesFULLTEXTIDX,FULLTEXTDOC,FULLTEXTFILTER,FULLTEXTLOCATION,FULLTEXTDELETE. -
os-rendition-cache— rendition service, consuming the CP queuesRENDITION,RENRESET.
User clients never access this table directly.
1. Columns
| Name | Type | Length | Description |
|---|---|---|---|
|
|
not-null |
DMS object ID (primary key, unique per row). References the main object table of the respective object type ( |
|
|
not-null |
enaio object-type ID ( |
|
|
— |
Trigger time — point in time of the last object change that required a (re-)indexing. Format: minutes since Unix epoch ( |
|
|
— |
Last processing time of the pipeline (same format as |
|
|
— |
Index-relevance flag. Consistently |
|
|
— |
Pipeline status code — see Value range |
|
|
32 |
Worker instance tag in the form |
2. Value range flag2
| Value | Meaning |
|---|---|
|
Object picked up by the indexer from |
|
OK — full-text successfully indexed. Full |
|
Full-text rendition not (yet) available in the cache. The indexer then triggers a new rendition job via std.CreateCPMessages with |
|
Rendition is present but the content cannot (meaningfully) be indexed — e.g. a PDF without extractable text (scan without OCR), format incompatibility. Terminal state (no automatic retry observed). |
|
Rendition worker has picked up the job. Partial |
|
Rendition finished and written to cache (after |
|
Rendition worker starts the productive step. Deterministically transitions to |
|
Rendition running / result pending. Typical predecessor state of |
|
Rendition skipped — no hash, no full-text file available. Retry path. |
Full UPDATE`s (by the indexer) set `flag1, date1, date2, flag2, instance. Partial UPDATE`s (by the rendition service) set only `date2, flag2.
|
3. Typical lifecycle of an osid
INSERT (flag2 = 0, by indexer from FULLTEXTIDX)
→ UPDATE flag2 = 1001 (rendition worker pickup)
→ UPDATE flag2 = 1003 → 1004 (rendition running)
→ UPDATE flag2 = 1002 (rendition in cache)
→ UPDATE flag2 = 200 (indexer from FULLTEXTDOC: successfully indexed)
When the object changes, a new FULLTEXTIDX entry is created in oscpmqueue; the lifecycle restarts with flag2 = 0.
4. Observed SQL patterns
-- Initial registration (INSERT, by indexer)
INSERT INTO osftslog (osid, ostype, date1, date2, flag1, flag2, instance)
VALUES (2677570, 262248, 29657186, 29657186, 1, 0, 'index:8045');
-- Set terminal state (full UPDATE, by indexer)
UPDATE osftslog
SET date1 = 29657186, flag1 = 1, date2 = 29657186, flag2 = 200, instance = 'index:8045'
WHERE osid = 2677570;
-- Intermediate pipeline phase (partial UPDATE, by rendition service)
UPDATE osftslog SET date2 = 29657186, flag2 = 1002 WHERE osid = 2677570;
-- Status lookup (before every operation)
SELECT * FROM osftslog WHERE osid = 2677570;
5. Related tables
-
oscpmqueue — the actual CP message queue of the pipeline (push-pull mechanism).
-
osftcontent — full-text content storage (read by the indexer as source).
-
osfttab — main index table of the full-text search.
6. Related Server-API jobs
| Job | Role w.r.t. osftslog |
|---|---|
Pickup from oscpmqueue — starts every pipeline action. The queue name determines which |
|
Provides the worker with |
|
Indexer read path: fetches the full-text content (from osftcontent or the cache). Empty result → |
|
Called by the indexer when a rendition needs to be re-requested ( |
|
Post-processing of a completed message. |
|
Called by the rendition service after |
|
Direct SQL path through which both workers read and write |