Bei der Konfiguration des Verzeichnis-Monitors sind gegenüber der Konfiguration normaler Gateways einige Unterschiede zu beachten. Das auffälligste ist, daß der Verzeichnis-Monitor keine Angabe zum Port benötigt, weil er selbst auf keiner Netzwerkverbindung hört, sondern nur seinerseits Verbindungen zu anderen Konvertern oder Gateways aufbaut.
Desweiteren benötigt der Verzeichnis-Monitor auch keine Ressourcendatei, weil er an den von ihm transportierten Dateien keine Änderungen vornimmt, und deshalb keine Ressourcen braucht. Der Verzeichnis-Monitor macht keine Annahmen darüber, welcher Art die Dateien sind, die er aus den Verzeichnissen ausliest!
Entscheidend für die Funktion sind die Angaben unter Spool Verzeichnis, Skript Verzeichnis und Befehlszeile. Das Spool Verzeichnis wird immer benötigt, weil dies entweder das Verzeichnis ist, das die zu überwachenden Unterverzeichnisse enthält, oder sogar selbst überwacht wird. Das Skript Verzeichnis muß nur dann angegeben werden, wenn die vorgefundenen Dateien durch einen externen Prozess bearbeitet werden sollen. Sollen die Datei dagegen einfach nur an einen Konverter oder an ein Gateway weitergegeben werden, kann dieses Feld leer bleiben.
Mit der Befehlszeile wird entschieden, ob ein externer Prozess zur Bearbeitung der vorgefundenen Dateien verwendet werden soll oder nicht. Ist die Befehlszeile ausgefüllt, wird das darin enthaltene Kommando für jede vorgefundene Datei aufgerufen. Ist sie hingegen leer, werden die vorgefundenen Dateien einfach nur an den dem Verzeichnis zugeordneten Konverter übertragen.
Für die Auswahl der durch den Verzeichnis-Monitor zu überwachenden Verzeichnisse gelten die folgenden Regeln:
Ist unter Befehlszeile nichts eingetragen, werden alle in den überwachten Verzeichnissen vorgefundenen Dateien ohne weitere Modifikation an den dem Verzeichnis zugeordneten Konverter oder Gateway geschickt. Gegenüber dem Konverter oder Gateway verhält sich der Verzeichnis-Monitor wie ein druckender Host-Rechner. Nach erfolgreicher Übertragung wird die vorgefundene Datei automatisch gelöscht.
In diesem Modus realisiert der Verzeichnis-Monitor eine Datei-Schnittstelle für einen Teil oder für alle Konverter und Gateways.
Ist hingegen unter Befehlszeile ein Kommando eingetragen, wird dieses Kommando für jede in den überwachten Verzeichnissen vorgefundene Datei einmal ausgeführt. Das Kommando startet in der Regel ein Skript oder ein Programm, welches parallel zum Verzeichnis-Monitor als eigener Prozess ausgeführt wird. Das aufgerufene Skript oder Programm muß die Datei nach vollendeter Arbeit selbst löschen.
Wegen der Parallelbearbeitung durch einen externen Prozess wird die vorgefundene Datei erst in ein Arbeitsverzeichnis verschoben, um so irrtümliche Prozessaufrufe durch weitere Verzeichniszugriffe des externen Prozesses zu vermeiden. Der Verzeichnis-Monitor legt daher in jedem überwachten Verzeichnis ein weiteres Unterverzeichnis mit dem Namen Work an. Der externe Prozess kann daher die Datei nicht nur lesen, sondern auch abändern und nach getaner Arbeit löschen.
In diesem Modus können zum Beispiel nicht unterstützte Dateitypen (z.B. PDF) mit Hilfe der dazugehörenden Applikationen (z.B. Adobe Reader) direkt auf den Konverter oder das Gateway gedruckt werden.
Für die Fälle, in denen mit Hilfe eines Skriptes die vorgefundene Datei bearbeitet werden muß, liegt im Skript-Verzeichnis der convert4print-Installation ein kleines Hilfsprogramm mit dem Namen Sender.exe, welches eine Datei via TCP/IP an einen Konverter oder ein Gateway überträgt.
Die Verwendung dieses Hilfsprogramms erspart die Programmierung einer TCP/IP-Verbindung zur Weitergabe der Druckdaten. In dem unten abgebildeten Beispiel-Perl-Skript relais.pl sind die Parameter des Programms zu erkennen. Auf Wunsch kann, wie gezeigt, sogar ein Journal mit einer Liste der übertragenen Dateien geführt werden.
Damit das Skript weiss, an welchen Konverter oder welches Gateway die Druckdaten übertragen werden sollen, wurde der Skript-Parameter %8 eingeführt, der die Port-Nummer des Konverters oder Gateways enthält.
#!/usr/bin/perl # Command: perl relais.pl "%1" "%3" %8 # Call: perl relais.pl Scriptpath Filename Port #--------------------------------------------------------------------# my $Script = $ARGV [0]; my $Name = $ARGV [1]; my $Port = $ARGV [2]; my $Res = 0; if ($Script eq "" || $Name eq "" || $Port eq "") { $Res = -1; } else { my $Cmd = "\"$Script/Sender.exe\"" . "/Target=\"10.1.17.7\" " . "/Port=$Port " . "/ErrorLog=\"$Script\\Relais.txt\" " . "/LogLevel=3 " . "\"$Name\""; $Res = system ($Cmd) / 256; unlink ($Name); } exit $Res; #--------------------------------------------------------------------#
Der Aufruf des Skriptes ist im obigen Bildschirmfoto der Konfiguration des Verzeichnismonitors zu sehen. Im Skript ist natürlich die IP-Adresse an die eigenen Gegebenheiten anzupassen!