directPRINT/Service
Windows Hot Directory Service
Spezifikation
| Betriebssysteme: |
Windows NT 4.0, Windows 2000, Windows XP, Windows Vista,
Windows 7, Windows Server 2000, Server 2003, Server 2008 |
| Softwaregattung: |
Hot Directory Service als Windows Dienst oder
Windows Applikation |
| Dateisysteme: |
NTFS, FAT und Netzwerklaufwerke |
| Überwachung: |
Mehrstufige Überwachung des Dateistatus:
- Ausnutzung von schnellen Low-Level Funktionen für NTFS-Laufwerke
(Event Handled)
- Sichere Dateiüberwachung anhand List - Directory Funktion (Polling)
für alle Dateisysteme
- Optionale Überwachung des Dateistatus anhand Indexdatei.
Hoher Datendurchsatz für lokale NTFS-Laufwerke, da keine Timeouts
verwendet werden. |
| Verzeichnisse: |
Gleichzeitige Überwachung mehrerer Verzeichnisse ohne
Einbußen in der Performance. Für jedes Verzeichnis können
abhängig vom Dateityp unterschiedliche Programme aufgerufen werden. |
| Aktionen: |
Abhängig vom Rückgabewert des
Programmes können die verarbeiteten Dateien gelöscht werden. Optional
können bei Rückgabe eines Fehlercodes die betroffenen Dateien in ein
Fehlerverzeichnis zur weiteren Untersuchung durch den Operator kopiert werden.
|
| Ereignisprotokoll: |
Alle Fehlerzustände werden im Windows - Ereignisprotokoll
vermerkt. Es werden keine Fehlerdialoge geöffnet. Das Fehlerprotokoll kann
administrativ über das Netzwerk mit der Windows - Anwendung
"eventvwr.exe" eingesehen werden. |
Steuerung durch die Kommandozeile
Das Programm dcp32.exe besitzt folgende Parameter in der Kommandozeile:
dcp32 [/START | /STOP | /RESET | /INSTALL |
/UNINSTALL]
| Parameter |
Beschreibung |
| /START |
Startet die Überwachung. Wurde die
Überwachung als Windows-Dienst konfiguriert, wird der Dienst gestartet und
das Programm beendet. Wurde die Überwachung als Windows-Applikation
definiert, wird die Überwachung gestartet. Die gestartete Applikation wird
jedoch nicht beendet, solange die Überwachung durchgeführt wird. Im
Windows Tray (neben der Uhr in der Startleiste) wird ein Symbol angezeigt. |
| /STOP |
Beendet die Überwachung, falls diese als Dienst gestartet
wurde. Eine Überwachung als Applikation kann derzeit nicht über die
Kommandozeile gestoppt werden. Falls die Überwachung als Dienst
konfiguriert wurde, wird das Programm beendet. |
| /RESET |
Löscht alle gespeicherten Daten der Indexdatei. Dateien,
deren Dateistatus zuvor in der Indexdatei enthalten waren, werden neu
bearbeitet. |
| /INSTALL |
Installiert den Windows - Dienst erneut. Diese
Option kann verwendet werden, falls wärend der Installation ein Fehler
aufgetreten ist und der Windows - Dienst nicht gestartet werden kann. |
| /UNINSTALL |
Deinstalliert den Windows - Dienst. Nach der Deinstallation
kann der gleiche Dienst für einen gewissen Zeitraum nicht erneut
installiert werden. |
Aufbau der Konfigurationsdatei
Die Konfiguration wird vollständig in einer
ASCII-Datei vorgenommen. Die Datei verwendet das bekannte INI-Format und kann
z.B. mit Notepad.exe editiert werden. Die Datei ist in verschiedene Abschnitte
(Sektionen) unterteilt.
Um die Konfigurationsdatei zu öffnen:
- Starten Sie directPRINT Service
- Wählen Sie "Datei - Einstellungen..."
Sie erhalten Notepad mit der geladenen Konfigurationsdatei.
Der Abschnitt [SETUP]
Diese Sektion enthält globale Parameter, die für alle
Überwachungspunkte gelten.
| Parameter |
Beschreibung |
| LOGLEVEL = <enum> |
Filtert die Fehlermeldungen die in das Windows- Systemlog
geschrieben werden. Sie können hiermit steuern, wie genau der
Programmstatus im Fehlerlog angegeben werden soll. Gültige Werte für
<enum> sind:
| <enum> |
Beschreibung |
| SUCCESS |
Alle Meldungen anzeigen |
| WARNING |
Warnungen und Fehler anzeigen |
| ERROR |
Nur Fehler Anzeigen |
|
| EXTRASCANTIME = # |
Der Intervall in Sekunden in der die Verzeichnisse nach
übersehenden Dateien abgesucht werden sollen. Dies ist ein integriertes
Sicherungssystem, dass bekannte Probleme des Windows - internen Dateisysteme
abfängt. Bei hoher Systemlast oder inkompatiblen Netzwerklaufwerken (z.B.
Samba) können u.U. Dateiänderungen übersehen werden. Die
überwachten Verzeichnisse werden deshalb zusätzlich in einem
Intervall nach Änderungen durchsucht. Beachten Sie, dass ein kürzerer
Intervall die Netzwerklast signifikant erhöht. |
Der Abschnitt [ENVIRONMENT]
Diese Sektion enthält eine Reihe frei definierbarer Parameter, die in
den folgenden Definitionen als Textbausteine verwendet werden können. Alle
Zeilen haben das Format:
| Parameter |
Beschreibung |
| NAME = WERT |
Die Parameter des Environments können bei allen Pfad- und
Programmangaben der folgenden Sektionen mit %NAME% verwendet werden.
Der String %NAME% % wird dann durch WERT ersetzt. Verwenden Sie das
Environment z.B., um Basisverzeichnisse für Anwendungen und Pfade
anzugeben. |
Der Abschnitt [WATCHPOINTS]
Geben Sie in dieser Sektion die zu überwachenden Verzeichnisse an. Jede
Zeile besitzt das Format:
| Parameter |
Beschreibung |
| WPSECTION = PATH,ACTIONSECTION,... |
| Parameter |
Beschreibung |
| WPSECTION |
Frei wählbarer Sektionsname für die Parameter dieses
Überwachungspunktes. |
| PATH |
Der zu überwachende Pfad. Es können die Parameter aus der Sektion
[ENVIRONMENT] verwendet werden. Schließen Sie diesen Parameter zu
Sicherheit in "doppelte Anführungszeichen" ein, falls der
Pfadname das Komma enthält. |
| ACTIONSECTION |
Frei wählbarer Sektionsname für die Parameter der Aktion. Es
können mehrere Sektionsnamen angegeben werden. Trennen Sie diese durch das
Komma. Werden mehrere Aktionen angeben, wird die erste Aktion ausgeführt,
auf die der Dateiname passt. |
Beachten Sie: Jedes zu überwachende Verzeichnis benötigt
Systemresourcen.
Beispiel:
WatchPoint1 = c:\MySpooler\HotDir1,Action1 |
Der Abschnitt [WPSECTION]
Der Name WPSECTION dieser Sektion ist ein Platzhalter und frei wählbar.
Er muss einem Sektionsnamen in der Sektion [WATCHPOINTS] entsprechen. Diese
Sektion legt fest, wie Verzeichnis zu überwachen ist.
| Parameter |
Beschreibung |
| DELETEFILES = <number> |
Steuert wie die Dateien im überwachten Verzeichnis nach der
Bearbeitung gelöscht werden sollen. Sollen die Dateien nach der
Verarbeitung nicht gelöscht werden und langfristig im überwachten
Verzeichnis verbleiben, so sollte die Option FileHistory=1 aktiviert
werden.
| <number> |
Beschreibung |
| 0 |
Ist dieser Parameter nicht vorhanden oder 0, werden keine Dateien
gelöscht. |
| 1 |
Dateien werden nach Ende des aufgerufenen Programmes gelöscht. |
| 2 |
Die Dateien werden auf jeden Fall gelöscht, auch wenn sie
schreibgeschützt sind oder zum Löschzeitpunkt durch eine Anwendung
blockiert sind. |
|
| ERRORFILES = <path> |
Geben Sie diesen Parameter an, falls Dateien in ein Verzeichnis verschoben
oder kopiert werden sollen, sobald das aufgerufene Programm mit einem
Fehlercode beendet
Ersetzen Sie <path> durch ein gültiges lokales Verzeichnis.
Haben Sie die Option DeleteFiles (s.o.) aktiviert, werden fehlerhaft
bearbeitete Dateien in das Verzeichnis verschoben. Haben Sie die Option
DeleteFiles nicht aktiviert, werden fehlerhaft bearbeitete Dateien in
das Verzeichnis kopiert. Die originale Datei bleibt in jedem Fall erhalten.
Wird der Parameter ErrorFiles nicht angegeben, wird die Datei im
Fehlerfall nicht verschoben bzw. kopiert.
Beispiel:
ErrorFiles = c:\MySpooler\Errors |
| WRITEDELAY = <number> |
Verzögert die Bearbeitung von neuen Dateien um die in <number>
angegebenen Millisekunden (ms). Jeder erneute Schreibzugriff auf die Datei
verlängert das Warteintervall. Einige Anwendungen wie der Microsoft IIS
FTP-Dienst schließen und öffnen Dateien bei der Erstellung mehrfach.
Über das Warteintervall kann die Weiterverarbeitung verzögert werden.
Wird die Option FileHistory verwendet, sollte als WriteDelay ein Wert
>= 1000 angegeben werden. |
| SUBDIRECTORIES=<bool> |
Gibt an, ob die Überwachung nur für das angegebene Verzeichnis
oder auch rekursiv für jedes Unterverzeichnis erfolgen soll.
| <bool> |
Beschreibung |
| 0 |
Es wird nur das angegebene Verzeichnis überwacht. |
| 1 |
Es wird das angegebene Verzeichnis und alle Unterverzeichnisse
überwacht. |
|
| FILEHISTORY=<bool> |
Aktiviert die permanente Speicherung des Dateistatus in einer Indexdatei.
Verwenden Sie diese Option, wenn die Dateien im überwachten Verzeichnis
nach der Verarbeitung nicht gelöscht und langfristig im Verzeichnis
verbleiben sollen. Sinnvollerweise sollte die Option DeleteFiles=0
angegeben werden. Bei aktivierter Option wird das letzte Schreibdatum und die
letzte Dateigröße jeder gefundenen Datei in einer permanenten
Indexdatei vorgehalten. So wird z.B. bei einem Neustart des Dienstes vermieden,
dass bereits bearbeitete Dateien erneut bearbeitet werden. Wird die Datei
verändert, so wird die konfigurierte Verarbeitungsroutine erneut
aufgerufen.
Da bei einer großen Anzahl Dateien der Zugriff auf die Indexdatei etwas
Zeit benötigt, sollte in der Option "WriteDelay=1000" oder mehr
angegeben werden.
Die Indexdateien "filehistory.dat" und "filehistory.idx"
werden automatisch bei erster Verwendung der Option im Programmverzeichnis
erzeugt. Werden die Indexdateien gelöscht, werden alle im überwachten
Verzeichnis enthaltenen Dateien erneut verarbeitet. Die Indexdateien
können mit dem Befehl "dcp32 /RESET" gelöscht werden. |
Der Abschnitt [ACTIONSECTION]
Der Name der ACTIONSECTION dieser Sektion ist ein Platzhalter und frei
wählbar. Er muss einem Sektionsnamen in der Sektion [WATCHPOINTS]
entsprechen. Diese Sektion legt fest, was bei einer gefundenen neuen Datei
geschehen soll (Aktion).
| Parameter |
Beschreibung |
| DESCRIPTION = <text> |
Legt eine Beschreibung für die Aktion fest. Ersetzen Sie <text>
durch Ihre Beschreibung. Der Text wird bei Fehlermeldungen im Ereignisprotoll
verwendet. Beispiel:
Description = Grafikdateien drucken |
| FILESPEC = <spec>,... |
Legt die Dateiendungen fest, die die aufgerufene Anwendung
unterstützt. Ersetzten Sie <spec> durch eine Dateispezifikation
ähnlich den DOS-Wildcards. Es können die Suchzeichen * und ?
verwendet werden. Mehrere Spezifikationen können durch das Komma getrennt
angegeben werden. Beispiel: FileSpec=*.tif,*.pcx,*.gif |
| WORKDIR = <path> |
Legt das aktuelle Laufwerk und Verzeichnis fest, in dem die Anwendung
ausgeführt wird. Ersetzen Sie <path> durch einen gültigen Pfad
ohne abschließendes Backslash. Beispiel:
WorkDir = c:\temp\long path |
| APPLICATION = <path> |
Legt die aufgerufene Applikation fest. Ersetzen Sie <path> durch den
Dateinamen und Pfad der aufgerufenen Anwendung. Sie können die im
Environment angegebenen Platzhalter verwenden. Beispiel:
Application = c:\programme\directtools\directprint.exe |
| PARAMETERS = <params> |
Legt die Aufrufparameter (Kommandozeile) der gestarteten Anwendung fest. Im
Aufrufparameter <params> können Platzhalter verwendet werden, um den
Dateiname der im überwachten Verzeichnis gefundenen Datei zu
übergeben.Folgende Platzhalter sind möglich:
| Makro |
Beschreibung |
Beispiel |
| %1 |
Kompletter Dateiname mit Pfad |
c:\long path\abc 1.tif |
| %2 |
Dateiname ohne Pfad |
abc 1.tif |
| %3 |
Dateiname ohne Pfad und ohne Namenserweiterung (Extension) |
abc 1 |
| %4 |
Pfad der Datei |
c:\long path |
| %5 |
Namenserweiterung (Extension) der Datei |
.tif |
| %6 |
Kurzer Dateiname mit Pfad |
c:\long~1\abc~1.tif |
| %7 |
Kurzer Dateiname ohne Pfad |
abc~1.tif |
| %name% |
Name einer beliebigen Variable, die durch eine Skript erstellt wurde. |
|
%FILECOUNT%
%FILECOUNT3%
%FILECOUNT6% |
Globaler Dateizähler, zählt alle Dateien in allen
Verzeichnissen, ohne führende Null, 3- oder 6-stellig |
5
005
000005 |
%DIRFILECOUNT%
%DIRFILECOUNT3%
%DIRFILECOUNT6% |
Dateizähler für das überwachten Verzeichnis, ohne
führende Null, 3- oder 6-stellig |
3
003
000003 |
| %HASH% |
Eindeutige Dateikennung, 8 stellig |
0034AB47 |
| %YY% |
Jahr, zweistellig |
08 |
| %YYYY% |
Jahr, vierstellig |
2008 |
| %MM% |
Monat, zweistellig |
04 |
| %DD% |
Tag, zweistellig |
01 |
| %HH% |
Stunde, zweistellig |
07 |
| %NN% |
Minute, zweistellig |
59 |
| %SS% |
Sekunde, zweistellig |
59 |
| %ZZZ% |
Millisekdune, dreistellig |
999 |
Kurze Dateinamen: Falls Sie kurze Dateinamen zum Kopieren von Dateien
verwenden, beachten Sie bitte, dass ein kurzer Dateiname ohne Pfad die Datei in
einem anderen Verzeichnis oder Laufwerk nicht mehr eindeutig bezeichnet.
|
| SCRIPT = <section> |
Gibt optional den Sektionsnamen mit einem Script an. Das Script wird vor
dem Programmaufruf ausgeführt und kann dazu verwendet werden, die
Aufrufparameter anzupassen. |
| SHOWSTATE = <number> |
Legt die Anzeige des aufgerufenen Programmes auf dem Desktop fest.
| <number> |
Beschreibung |
| 0 |
Keine Anzeige. Die Anwendung wird versteckt. Falls Sie die Überwachung
als Dienst ausführen, sollten Sie diese Einstellung wählen. |
| 1 |
Normale Anzeige. Die Anwendung wird als oberste Anwendung auf dem Desktop
angezeigt. |
| 2 |
Minimierte Anzeige. Die Anwendung wird minimiert auf dem Desktop
dargestellt. |
| 3 |
Normale inaktive Anzeige. Die Anwendung wird normal auf dem Desktop
angezeigt, ohne die aktive Anwendung zu unterbrechen. Evtl. ist das Fenster der
gestarteten Anwendung von anderen Fenstern verdeckt. |
|
Skripte ausführen
Scripte werden vor jedem Programmaufruf ausgeführt und können
Parameter im Environment verändert und neu setzen. Das Environment ist der
Namensraum der %NAME% - Variablen, aus denen ein Programmaufruf
zusammengesetzt werden kann.
Skripte bieten Ihnen somit die Möglichkeit, komplexe Parameter zu
extrahieren und an die folgende Anwendung zu übergeben.
Das Script wird in einer eigenen Sektion mit beliebigen Namen erstellt. Der
Sektionsname wird im Parameter SCRIPT einer Aktion in der Sektion
[ACTIONSECTION] zugeordnet. Scripte, die nicht zugeordnet sind, werden auch
nicht ausgeführt. Ein Script wird immer zeilenweise von oben nach unten
ausgeführt.
Bei der Auswertung von Texten können komplexe Such- und
Ersetzungsmuster, sogenannte Reguläre Ausdrücke verwendet
werden.
Syntax Extract - Befehl
EXTRACT <name> = <value>,<match>,<regexpr>
| Parameter |
Beschreibung |
| <name> |
Name einer Environment - Variablen, in der das Ergebnis abgelegt wird. |
| <value> |
Der durchsuchender String. Befinden sich in <value> Parameter, so
werden diese durch den aktuellen Parameterwert im Environment ersetzt. |
| <match> |
Index des gefundenen Teilausdruckes in <regexpr>. Ein Teilausdruck im
Regulären Ausdruck wird durch eine runde Klammerung (...) definiert.
<match> gibt also die von 1 aufwärts zählende Klammerung an.
Wird 0 angegeben, wird der gesamte gefundene Ausdruck zurückgegeben. |
| <regexpr> |
Ein Reguläre Ausdruck. Verwenden Sie das Programm
"RexTutor.exe", um Ihren Regulären Ausdruck vorher zu
testen. |
Beispiel:
Aus einem Dateinamen soll der mit einem Punkt separierte Teilstring vor der
Dateiextension extrahiert werden. Der Dateiname steht in der Variable %1 zur
Verfügung. Der Dateiname lautet z.B. "c:\pfad\langer
pfad\afilename.searched-string.prn". Um den Text
"searched-string" in die Variable "astring" zu
übernehmen:
EXTRACT astring = %1,1,.*\.(.*)\.prn$
Syntax Zuweisung =
<name> = <value>
Weist der Environment - Variable mit Namen <name> den neuen Wert
<value> zu. Befinden sich in <value> Parameter (%NAME%), so
werden diese durch den aktuellen Parameterwert im Environment ersetzt.
Syntax IFMATCH - Befehl
IFMATCH <value> = <regexpr>
Sucht in <value> den ersten Teilausdruck (die erste runde Klammer).
Falls der Suchausdruck zutreffend ist, wird der erste Teilausdruck der Variable
<value> zugewiesen. Trifft der Suchausdruck nicht zu, wird <value>
nicht verändert. Im <regexpr> muss mindestens ein Teilausdruck
(runde Klammern) enthalten sein. Vor dem IFMATCH - Befehl sollte ein EXTRACT -
Befehl oder eine Zuweisung (=) angegeben werden.
Minimale Installation, Einbindung in Applikationen
Die Installation von directPRINT/Service erfordert das
Kopieren der folgenden Programmdateien in ein beliebiges Verzeichnis:
- "dcp32.exe" - die Programmdatei
- "dcpsvr.exe" - der Windows - Dienst
- "dcp32.chm" - die Hilfe-Datei
- "dcpsvr.ini" - die Konfigurationsdatei
Zur Registration des Dienstes muss einmalig der folgende
Aufruf erfolgen: "dcp32.exe /INSTALL".
|