Arbeitsweise des Laufwerkstreibers
Arbeitsweise des Laufwerkstreibers Beschreibung der Arbeitsweise des Laufwerkstreibers
Der Laufwerkstreiber stellt ein Laufwerk zur Verfügung, dessen Inhalt durch die Funktionen des entsprechenden CONZEPT 16-Clients zur Verfügung gestellt werden.

Alle Aktionen auf dem Laufwerk lösen ein entsprechendes Ereignis beim Laufwerkstreiber aus. Dieser baut eine Verbindung über einen definierten Socket (siehe SOA-Service - Konfigurationsdatei ) auf, sendet eine Anfrage (Request) in Form eines Datenpakets und wartet, bis er eine Antwort (Response) bekommt. Anschließend kann die Verbindung wieder getrennt werden. Da häufig innerhalb kurzer Zeit erneut Ereignisse auf dem Laufwerk ausgelöst werden, empfiehlt es sich für die Verbindung ein Keep-alive von 60 Sekunden zu definieren. Dadurch wird die Performanz gegenüber Verbindungen ohne Keep-alive erheblich gesteigert.
Da die Kommunikation über einen Socket stattfindet, können sowohl der SOA-Service (SOCKET-basiert), als auch der Standard- oder Advanced-Client (Ereignis EvtSocket) zur Ausführung der entsprechenden Funktionen verwendet werden. Diese Funktionen stellen die angeforderten Informationen zusammen und senden sie in Form von Datenpaketen zurück an den Laufwerkstreiber. Die Informationen werden dem entsprechenden Programm zur Verfügung gestellt.
Für den normalen Betrieb muss der SOA-Service verwendet werden, da sonst der Laufwerkstreiber erst nach dem Starten der Applikation gestartet werden kann und das Laufwerk nur bis zum Beenden der Applikation zur Verfügung steht.
Nach dem Starten des Laufwerkstreibers wird sofort das Ereignis DrvInit durchgeführt. Damit das Ereignis verarbeitet werden kann, muss der CONZEPT 16-SOA-Service bzw. der Client vor dem Laufwerkstreiber gestartet werden. Wird der Laufwerkstreiber angehalten, wird das Ereignis DrvTerm durchgeführt. Sollten zu diesem Zeitpunkt noch Dateien auf dem Laufwerk geöffnet sein, werden Änderungen an diesen Dateien nicht übernommen.
Kommt es zu einem Verarbeitungsfehler innerhalb des Laufwerkstreibers, wird das Ereignis DrvError ausgelöst. In diesem Ereignis kann eine Protokollierung vorgenommen werden. Alle Ereignisse werden in dem Bereich Ereignisse des Laufwerkstreibers beschrieben.
Der Laufwerkstreiber verfügt über einen eigenen Cache für die Verzeichnisstruktur, die Dateien, die Stammdaten des Laufwerks und die Benutzerinformationen (einschließlich Berechtigungen). Die Aktualität der Informationen wird über entsprechende Timeouts gesteuert. Die Timeouts werden getrennt voneinander in den Response-Datenpaketen von DrvGetFileEntries , DrvGetVolumeData und DrvLoginDomainUser angegeben. Informationen, die innerhalb des Timeouts angefordert werden, führen nicht dazu, dass ein Request gesendet wird. Die Informationen werden aus dem Cache geladen. Für Dateien wird bei jedem Zugriff DrvOpenFile aufgerufen. Der Wert im Item ItemContentChanged bestimmt, ob DrvReadFile ausgelöst wird (true) oder die Datei aus dem Cache geladen wird (false).
Zu jedem Ereignis sendet der Laufwerkstreiber ein Datenpaket und wartet auf eine Antwort. Die Datenpakete sind bei den Ereignissen beschrieben. Der generelle Aufbau der Datenpakete kann dem Abschnitt Beschreibung der Datenpakete entnommen werden.
Der Laufwerkstreiber, der verarbeitende Client und der Datenbank-Server müssen aus Performanzgründen auf dem gleichen System gestartet werden.
Nach dem Versenden der Antwort kann die Socket-Verbindung wieder getrennt werden. Wird hier allerdings die Verbindung mit einem Keep-Alive offen gehalten, kann eine erheblich höhere Performanz erreicht werden. Empfehlenswert ist ein Keep-Alive von 60 Sekunden.
Es können mehrere Laufwerke erzeugt werden. Dazu müssen beim SOA-Service mehrere Laufwerkstreiber und die dazugehörigen SOCKET-Tasks definiert werden. Über das Task -Objekt können die verschiedenen Laufwerke unterschieden werden.
Treten bei der Verarbeitung durch den Laufwerkstreiber Fehlerzustände auf, werden diese in der Protokolldatei des Laufwerkstreibers eingetragen (siehe Log-Einträge ).