SOG-Helpcenter Logo SOG Business - Software

Administrative SOG ERP-Tabellen


Nachfolgend ist die Funktion von administrativen Datenbanktabellen beschrieben, die SOG ERP für bestimmte Sonderaufgaben nutzt.

dbhhcontextid


Jede SOG ERP-Verbindung zu einer SQL-Server Datenbank bekommt von SOG ERP oder direkt vom SQL Server eine eindeutige Connection-GUID, die über die SQL Funktion "CONTEXT_INFO()" abgefragt werden kann.
Dabei ist sichergestellt, dass diese GUID niemals wiederverwendet wird.
Über die Tabelle "dbhhcontext" findet eine Zuordnung der Connection-GUID zu einer SOG ERP-Applikations-Guid statt.
Dabei können mehrere durch die Applikation geöffneten DB-Connections, der gleichen SOG ERP-Applikations-Guid zugeordnet sein.

Wurden durch die Applikation Resourcen in der Daten reserviert (Semaphoren, logische Satzschütze, usw.) werden diese mit der SOG ERP-Applikations-Guid marikiert, sodass mithilfe der Kommandozeilenfunktion "clearoldproc" ein Aufräumen der Resourcen automatisch durchgeführt werden kann, wenn keine Connection zu der SOG ERP-Applikations-Guid mehr existiert.

Datensätze in dieser Tabelle können auch nach dem Ende einer Applikation stehen bleiben, und werden durch den nächsten "clearoldproc" automatisch entsorgt.

"clearoldproc" ist auch als SQL-Datei verfügbar: sql\sog\mss\ClearOldProc.sql
"clearoldproc" wird bei jedem ActiveSkin Start automatisch durchgeführt.

dbprocopt


Über die Tabelle "dbprocopt" können Applikationen Optionen setzen, die direkt in Triggern oder anderen SQL-Scripten ausgewertet werden können.
Damit kann eine Applikation z.B. dafür sorgen, dass keine Daten in die Tabelle "dbchglog" geschrieben werden (Datenkonvertierung).

Daten in der Tabelle dbprocopt werden mit einer SOG ERP-Applikations-Guid einer Applikations zugeordnet und können daher durch die Funktion "clearoldproc" automatisch wieder freigegeben werden, wenn die Applikation keine Verbindung zur Datenbank mehr hat.

dbsema


Erlaubt die Reservierung von Semaphoren.
Über Semaphoren kann gesteuert werden, das nicht mehrere Prozesse gleichzeitig versuchen, eine bestimmte Aufgabe durchzuführen.
So wird z.B. über Semaphoren abgesichert, dass die Belegschreibungs- und Buchungsprogramme nicht an mehreren Clients mehrfach gestartet werden können.
Daten in der Tabelle dbsema werden mit einer SOG ERP-Applikations-Guid einer Applikations zugeordnet und können daher durch die Funktion "clearoldproc" automatisch wieder freigegeben werden, wenn die Applikation keine Verbindung zur Datenbank mehr hat.

dbtranssema


In dieser Tabelle können Applikationen Datensätze innerhalb einer Transaktion schützen, um DeadLock-Situationen auf der Datenbank zu vermeiden.

lockown


Eigentümer-Datensatz für logsiche Satzschütze.
Über die Tabelle "lockown" kann eine Applikation eine eindeutige Satzschutznummer erzeugen, mit der sie Datensätze logisch schützen kann. Die Satzschutznummer wird dabei im Format "HHMMSS00" vergeben. Es wird jedoch sichergestellt, das eine vorhandene Nummer nicht neuverwendet wird, solang noch Datensätze zu dieser Nummer geschützt sind.
Datensätze in "lockown" sind einer SOG ERP-Applikations-Guid zugeordnet, sodass sie durch "clearoldproc" automatisch gelöscht werden können, wenn die Applikation nicht mehr vorhanden sein sollte.

lockitem


Legt eine Applikation einen logischen Satzschutz auf Datensätze in der Datenbank, so geschied dies in dem die Satzschutznummer der Applikation in das Datenfeld "hhlock" der entsprechenden Tabelle eingetragen wird.
Durch einen Datenbanktrigger wird dabei dafür gesorgt, dass automatisch für jeden geschützten Datensatz ein Datensatz in der Tabelle "lockitem" ereugt wird.
Existiert zu den lockitem-Datensätzen kein "lockown" Datensatz mehr, so werden auch die "lockitem" Datensätze, sowie die Blockierungen der Daten in den Tabellen über das Datenfeld "hhlock" automatisch durch "clearoldproc" wieder gelöscht und freigegeben.

dbchglog


Durch Konfiguration von Steuerdateien im Verzeichnis "etc\dbchglog" kann dafür gesorgt werden, dass automatisch Änderungen an Daten in SOG ERP Tabellen in der Tabelle "dbchglog" protokolliert werden. Den Anstoß der Protokollierung erfolgt dabei über Datenbanktrigger.
in dbchglog wird festgehalten, welcher Prozess welcher Benutzer wann welche Änderungen an den Daten durchgeführt hat.

Bitte beachten Sie, dass nach Änderung der etc\dbchglog Konfigurationsdateien die Datenbankstruktur aktualisiert werden muss (sql\zcview2.sql), damit sich die Änderung auf die Datenbanktrigger auswirkt.