Spool Fehlermeldungen (Errors)
Die häufigsten in der Praxis auftretenden Fehlercodes finden Sie nachfolgend erklärt. TFORMer Server spezifische Fehlercodes sind im Manual TFORMer Spooladmin.pdf (Fernwartung) enthalten. Event-Log Fehlercodes finden Sie im TFORMer Server.pdf.
Ab TFORMer Server V8 werden Fehler, die im Druck-Kernel entstehen (z.B. Datenfeld nicht definiert), mit Zusatzinformationen zur besseren Fehlereingrenzung versehen. Das Manual enthält nur programmspezifische Fehlercodes, im Log können aber auch
Fehlercodes des Betriebsystems angezeigt werden.
Spool zeigt Error Code 0000006e oder 00000002
- Spool zeigt Error 0000006e mit normalen Drucker (Drucker konnte nicht initialisiert werden).
- Spool zeigt Error 00000002 mit PDF (Drucker konnte nicht initialisiert werden).
Diese Fehlermeldung kann auftreten wenn im Report ein Bild (Imagedatei) enthalten ist, das von TFORMer nicht gefunden wird. Das Verhalten bei fehlenden Bildern (abort/ignore/print) kann im TFORMerSDK_Config\TFORMer.xml eingestellt werden.
Spool zeigt Error Code 8002802b oder 000010D8
Die Fehlercodes bedeuten: 8002802b = Element not found, 000010D8 = Object not found.
Der Fehler tritt üblicherweise auf, wenn:
- Ein Datenfeld in den Importdaten (z.B. im Print-Server Script) keine Entsprechung im Formular aufweist – das übergebene Datenfeld wird also im Formular bzw. im Repository nicht verwendet.
- Prüfen Sie das Formular bzw. die Liste der Projekt-Datenfelder im Repository und vergleichen Sie mit der Liste der an den TFORMer Server übergebenen Datenfelder.
Man kann solche überzähligen Datenfelder ignorieren indem man im Repository die Einstellung Common – Undefined Datafields auf 0-Ignore setzt (z.B. für einen Datenbank-Select mit optionalen Werten).
Spool zeigt Error Code 800710D2
In den meisten Fällen entsteht dieser Fehler wenn ein neues Datenfeld im Formular eingefügt wurde (z. B. ein neues Barcode Datenfeld), aber das neue Datenfeld in der importierten Datei noch nicht enthalten ist.
Spool zeigt Error Code 8007000D
Das bedeutet dass die von Ihnen eingegebenen "Daten nicht zulässig bzw. ungültig" sind. Der TFORMer Server startet zwar den Druckvorgang, kann diesen aber nicht beenden. Zum Beispiel "30 von 54 Seiten wurden gedruckt".
Das Problem entsteht wenn Sie Daten eingeben die TFORMer nicht verarbeiten kann. In den meisten Fällen werden ungültige Daten für die Erzeugung eines Barcodes übergeben.
Zum Beispiel:
ChargenNummer = "A1234 !" ;
Die Chargen Nummer wird in einem Barcode mit dem Typ Code39 verschlüsselt. Das nicht zulässige Zeichen, in diesem Falle ein Rufzeichen "!", verursacht die Fehlermeldung. Das Verhalten bei Fehlern im Barcode kann im TFORMerSDK_Config\TFORMer.xml eingestellt werden.
Spool zeigt Error Code 8007001C
Der Fehlercode 8007001C bedeutet, dass sich im Drucker kein Papier mehr befindet.
Spool zeigt Error Code 3F5
Ursache: Sie versuchen ein bereits initialisiertes Datenfeld nachträglich zu ändern (Berechnungen davor/Berechnungen danach). Berechnete Datenfelder sind intern verwaltete Datenfelder und können von außen nicht übergeben werden (und umgekehrt).
Spool zeigt Error Code 8004300C
Im TFORMer Monitor wird der Fehlertext Aufgrund eines Fehlers wurde die angegebene Job-Datei nicht angenommen angezeigt. Im Event-Log findet sich ein Eintrag Fehler beim Schreiben der Ausgabedatei; Fehler: 80070050, die Datei ist vorhanden.
Ursache: Temporäre TFORMer Jobdateien (TECxxxx.tmp Dateien) können nach dem Einspoolen nicht gelöscht werden und bleiben im Temp Verzeichnis liegen. Sobald das Temp Verzeichnis mehr als 65535 Einträge (TFORMer Dateien) aufweist, bekommt man obige Fehlermeldung. Der Fehler tritt auf, wenn in der Jobdatei ein Fehler ist und diese nicht in das JobError Verzeichnis verschoben werden kann (evtl. fehlendes JobError Verzeichnis oder fehlende Rechte auf dieses). Weiters können auch fehlende Rechte auf den temporären Ordner die Ursache sein.
Spool zeigt Fehlercode 6D68
Der Fehler 6D68 (Drucker konnte nicht initialisiert werden) tritt üblicherweise bei der Schachtauswahl auf.
- Es ist ein Schachtname im TFORMer Layout oder in den Schachtzuordnungen definiert, den es auf dem Drucker nicht gibt.
- Es ist ein Format im TFORMer Layout oder in den Schachtzuordnungen definiert, den es auf dem Drucker nicht gibt.
Wenn es den Schacht oder Formatnamen auf dem Drucker nicht gibt, löst das einen Fehler bei der Druckerinitialisierung aus.
Lösungsmöglichkeiten:
- Es könnte sein, dass der Druckertreiber sprachspezifisch ist, d.h. man wählt „Fach 2“ und der Treiber kennt aber nur „Tray 2“ oder umgekehrt. In diesem Fall den Treiber mit der richtigen (einheitlichen) Sprache installieren.
- Statt mit Fach (Tray) 1, 2, 3 mit Formaten (DINA4, etc) arbeiten. Dafür sorgen, dass bei allen Druckern die gewünschten Formate verfügbar sind. Gegebenenfalls unter Druckservereigenschaften eine neues Formular (Papierformat) definieren.
- Im TFORMer individuelle Schachtzuordnungen hinterlegen (je Druckermodell/Gruppe eine separate Zuordnungstabelle) und beim Drucken die Zuordnung in der Jobdatei mitangeben. In der Zuordnung ist dann der richtige Schachtname je Druckermodell einstellbar. Siehe TFORMer Handbuch „Schachtzuordnungen“.
Spool zeigt Fehlercode 6
- Spool zeigt Error 00000006 (Drucker konnte nicht initialisiert werden), das Problem tritt bei allen Druckern auf.
Prüfen Sie bitte ob es im Master Repository Verzeichnis eine Datei "TFORMerServer.tfs_lock“ gibt. Wenn es diese gibt, bitte alle geöffneten TFORMer Designer schließen und diese Datei (wenn immer noch vorhanden) löschen. Weiters dafür Sorge tragen, dass nach dem Beenden des Printserver.exe Prozesses keine *.tfs_lock" Datei im Production Repository mehr liegt. Danach den Server (bzw. nur den Prozess) neu starten und prüfen ob das Problem immer noch auftritt.
Die „tfs_lock“ Datei sperrt das Repository zur Bearbeitung sobald ein TFORMer Designer oder TFORMer Server das Repository öffnet. Ein nicht ordnungsgemäß geschlossener Designer kann diese Datei stehen lassen und dann beim nächsten Start des Servers das Öffnen des Repositories blockieren.
Ab TFORMer Server 6.1.3 tritt dieses Problem nicht mehr auf - wir raten zu einem Update.
Systemspezifische Fehlercodes
Fehlercodes, die über Betriebssystemaufrufe rückgemeldet werden (Windows Error Codes) sind bei Microsoft ersichtlich: System Error Codes
Jobs sind alle auf "Waiting"
Verhalten: Einlangende Jobs werden mit dem Status "Waiting" angezeigt, jedoch nicht gedruckt.
- Bitte prüfen Sie im TFORMer Monitor (Spooladmin) ob der jeweilige Drucker auf Status "Aktiv" ist. Prüfen Sie auch ob der jeweilige Drucker im Netzwerk erreichbar und nicht "Offline" ist.
- Betrifft das Verhalten alle Drucker, dann prüfen Sie bitte zusätzlich den Status des TFORMer Servers (der Server kann insgesamt ebenfalls auf "inaktiv" gesetzt sein). Der Passiv-Modus ist für Parallelbetrieb (Ausfallsicherheit) gedacht, es wird eingespoolt, aber nicht gedruckt.
Beendet man den Passivmodus und setzt man den Server auf aktiv, werden die vorhandenen Jobs automatisch auf den Status "gedruckt" gesetzt, aber ohne diese dabei zu drucken. Das Nachdrucken fehlender Jobs muss dann manuell erfolgen.
Wie kann ich das Logging aktivieren?
Das Logging wird in der Registry aktiviert:
Logging Printserver (Jobs empfangen, Jobs verwalten, Jobs in Druck geben)
Registry:
- HKEY_LOCAL_MACHINE\SOFTWARE\TEC-IT\PrintServer\CurrentVersion\TRACE
- TRACEFILE auf 1 setzen.
- TRACELEVEL auf 1b (Hexadezimal) setzen
Auf 64 Bit Systemen den SOFTWARE\Wow6432Node Key beachten!
Zusätzlich in Versionen vor V6
Logging TECLabelPrint (Datenfelder setzen, Druckvorgang durchführen)
Registry:
- HKEY_LOCAL_MACHINE\SOFTWARE\TEC-IT\TECLabelPrint\CurrentVersion\TRACE
- TRACEFILE auf 1 setzen.
- TRACELEVEL auf 1b (Hexadezimal) setzen.
Die Registryeinstellungen werden nur nach einem Prozess-Neustart gelesen. Entweder den TEC-Launcher Service beenden (30 Sek. warten bis Printserver.exe Prozess im Taskmanager verschwindet) und wieder neu starten oder den Printserver.exe Hauptprozess im Taskmanager beenden (wenn gerade nichts gedruckt wird!). Im eingestellten Trace-Pfad (z.B. C:\ProgramData\TEC-IT\TFORMer Server\6.1\Log\) sollten danach zwei Logdateien sichtbar werden. Der Wert von TRACEPATH muss mit einem Backslash abgeschlossen werden.
Das Logging bitte nur zur Fehlersuche verwenden. Zur Einschränkung der Logfiles (Festplattenspeicher) stehen noch die Registryeinträge TRACEDAYS (Aufbewahrungszeit) und TRACESIZE (Maximalgrösse in KB) zur Verfügung.
Trace Level einstellen
Registry Key
- HKEY_LOCAL_MACHINE\SOFTWARE\TEC-IT\PrintServer\CurrentVersion\TRACE
"TRACELEVEL"=dword:00000000
gibt den Feinheitsgrad der Trace-Einträge an.
Besteht aus fünf Bits:
5 4 3 2 1
| | | | +-- - Funktionsaufrufe Stufe 3 (Hilfsfunktionen)
| | | +---- - Funktionsaufrufe Stufe 2 (weniger wichtig)
| | +------ - Funktionsaufrufe Stufe 1 (wichtig)
| +-------- - Nur interne Programmfehler
+---------- - Fast keine Traces (nur Start Ende)
Wert 0: schaltet alle Traces aus
Wert 1F: schaltet alle Traces ein
Wert 1C: empfohlene Standardeinstellung
Spooler stoppt oder beendet den Betrieb unerwartet
Problem: Auf einem Windows Server 2003 basierenden System mit installiertem Zebra Drucker stürzt der Printer Spooler (Spoolsv.exe) ab.
Bitte befolgen Sie die Anleitung dieses MSDN Eintrags: http://support.microsoft.com/kb/2026187/de
Die im Hinweis beschriebenen Monitor DLLs finden sie auch im Unterverzeichnis spool/drivers.
TCP/IP Konnektor Error Code 0x80090011L
Error Code nach Kommando 'FE' (TCP/IP Konnektor) wenn Druckername nicht vorhanden ist.
// Objekt wurde nicht gefunden.
//
#define NTE_NOT_FOUND HRESULTTYPEDEF_(0x80090011L)
Handle-Verbrauch steigt bei TCP/IP Datenübergabe an
In regelmäßigen Abständen wird z. B. mit „JI;xxx;“ (Job Info) + „q;“ (quit) der Jobstatus abgefragt. Parallel dazu steigt (bei aktiven Druckern) der Handle-Verbrauch der Printserver.exe im Taskmanager rasch an.
Bitte prüfen Sie, ob Sie den Statuscode des Quit Kommandos abfragen bevor Sie die TCP/IP Verbindung schließen. Wenn man die Rückmeldungen der einzelnen Befehle nicht vollständig ausliest (und die Verbindung schließt), kann das den Handle-Verbrauch erhöhen.
Print Server über externen Spool-Admin (DCOM Client) nicht erreichbar
Sie starten den DCOM basierenden TFORMer Monitor ("Spool Admin") von einem externen Rechner, geben den Hostnamen des TFORMer Servers ein (TFORMer Server ➜ Hinzufügen), können sich aber nicht verbinden - es wird ein Fehler (rot) angezeigt.
Lösung
Der externe Benutzer muss in die DCOM Berechtigungen des TFORMer Servers aufgenommen werden.
- Öffnen Sie in der Server Manager-Konsole auf dem TFORMer-Server das Menü Extras ➜ Computerverwaltung.
- Wechseln Sie in der Computerverwaltung zu Lokale Benutzer und Gruppen und klicken Sie dann auf Gruppen.
- Fügen Sie das externe Benutzerkonto zur Gruppe Distributed COM Benutzer hinzu.
- Passen Sie die DCOM-Sicherheitseinstellungen auf dem TFORMer-Server an. Dazu führen Sie das Tool DCOMCNFG aus.
- Geben Sie dem externen Benutzer oder der gesamten DCOM Gruppe Startberechtigungen auf das Print Server DCOM Objekt.
- Geben Sie dem externen Benutzer oder der gesamten DCOM Gruppe Zugriffsberechtigungen auf das Print Server DCOM Objekt.
Sie können alternativ auch den Browser-basierenden TFORMer Web-Monitor verwenden. Bei Bedarf kann dort IP Whitelisting aktiviert werden.
Neustart Probleme mit HP Universal Print Driver
Folgendes Problem kann auftreten, wenn zuvor über einen HP Universal Print Treiber ausgedruckt wurde und ein Prozess hpmup081.bin im Taskmanager aktiv ist.
Nach einem Neustart über Spooladmin oder über TECLauncher Service Restart kommt der Print Server nicht mehr hoch. Im Eventlog finden sich Meldungen wie:
- PrintServer is already running. The just started instance is exiting. Please check if the DCOM-rights are adjusted correctly.
- Could not create "User Listener Mailslot". Mailslot: \\.\mailslot\PSMS_To Error : 800700B7, Cannot create a file when that file already exists.
Ursache: Der vom HP Treiber aktivierte hpmup081.bin Prozess übernimmt die Mailslot- Handles des Printservers und gibt diese nicht mehr frei. Sind diese Mailslots bereits belegt, kann der Printserver nicht hochstarten.
Workaround: Den Prozess hpmup081.bin im Taskmanager beenden und danach den Printserver restarten. Als Lösung die Version 4.7.2+ des HP Universal Treibers installieren. Die neue Version behebt explizit dieses Problem.
Crash in PrintServer.exe nach Security-Update KB3170455
Problem
Der PrintServer.exe Prozess beendet sich periodisch während der Drucker-Initialisierung. Das führt zu einer Neustart-Schleife. Sie müssen den TECLauncher Service beenden oder das TFORMer Server Spool-Verzeichnis umbenennen (setzt den PrintServer automatisch auf passiv) um das System zu stabilisieren.
Ursache: Beim Drucken auf Netzwerkdrucker (z.B. auf \\server\printer) lädt und installiert der Windows Spooler automatisch die benötigten Druckertreiber im Hintergrund. Nach der Installation von KB3170455 werden neue Regeln für die Treiberinstallation angewendet, die zu einem Crash im PrintServer.exe führen können (speziell mit älteren, nicht-autorisierten Treibern).
Workarounds und Lösungen
- Ein rascher Workaround für den Produktionsbetrieb wäre die Deinstallation des KB3170455 Security Patches. Alternativ können Sie jene Drucker im Spool deaktivieren, die den Crash auslösen (Spools schrittweise aktiv setzen oder separat mit tfprint den problematischen Drucker herausfinden).
- Wenn Sie TFORMer Server 6.1.3 verwenden, können Sie einen Hotfix von unserem Support anfordern. Diese behebt das Problem mit dem Crash und der Neustart-Schleife - allerdings können Sie auf den betroffenen Druckern weiterhin nichts ausdrucken. Alternativ zum Hotfix können Sie auf die letzte TFORMer Server Version updaten (> 6.1.4), die ebenso den Fix beinhaltet.
- Aktualisieren Sie den Druckertreiber und achten Sie darauf, dass entweder solche installiert werden, die mit Windows mitgeliefert werden, oder als digital signiertes Drucker-Treiber-Package zur Verfügung steht.
- Für die korrekte Treiberinstallation sollte das Benutzerkonto, unter dem der TFORMer Server läuft, lokale Admin-Rechte haben.
Das Problem muss nicht sofort nach der Installation von KB3170455 auftreten. Systeme, die bereits einen Treiber installiert haben, können solange funktionieren bis dieser aktualisiert oder neu installiert wird. Drucker die das Problem auslösen, haben meistens keinen "Packaged" Status (siehe Drucker-Management, Treiber-Tab).
Wie kann ich ein neues PrintList File ("Playlist") generieren?
Sollte nach einem System-Crash einmal das PrintList.PL File beschädigt sein, dann kann man mit der nachfolgenden Prozedur beim Hochstarten des TFORMer Servers ein neues PrintList File erstellen lassen.
- Sich notieren, welche Drucker gerade aktiv sind, umgeleitet, auf Pause oder Inaktiv
- TECLauncher Service beenden
- Warten bis Printserver.exe sich beendet. Wenn das zu lange dauert, dann sicherstellen, dass gerade nichts gedruckt wird und den „Printserver.exe“ im Taskmanager beenden.
- Im Spoolverzeichnis die Datei PSPrintList.PL auf PSPrintList.PL_backup umbenennen
- Im Spoolverzeichnis die Datei PSPrintList.PLO auf PSPrintList.PLO_backup umbenennen
- TECLauncher Service neu starten
- Jetzt werden alle TSF Dateien im Spoolverzeichnis neu gelesen. Das kann etwas dauern. Der Server ist im Monitor für einige Zeit nicht verfügbar.
- Sobald fertig (Server ist im Monitor wieder erreichbar / F5 Refresh): Alle Spools bzw. Drucker erscheinen im Monitor deaktiviert.
- Aktivieren: Manuell jeden Spool/Drucker Fortsetzen, der anfänglich aktiv war (siehe obige Merkliste). Umleitungen ebenfalls wieder neu einstellen.
Danach sollte das Playlistfile wieder zu 100% aktuell sein.
Wie kann ich TFORMer Server Remote neu starten?
Entweder über DCOM mit diesem Script (TFORMer Monitor muss auf dem Client installiert sein):
VBScript:
Dim ps
set ps = CreateObject("PrintServer.COMPrintServer", ServerNameOrIPAddress)
ps.Restart
VB:
Dim ps As PrintServerLib.ComPrintServer ‘References auf Printserver Library muss eingestellt sein
Set ps = CreateObject("Printserver.ComPrintServer", ServerNameOrIPAddress)
ps.Restart
Oder über eine Druckjobdatei mit diesem Inhalt (ab V6.0.1):
DefineScript;
ENDSERVER;
Bitte beachten Sie: Der TECLauncher Dienst muss auf dem betroffenen Server laufen, um den TFORMer Server nach dem Herunterfahren wieder neu zu starten.
Die Lizenzdatei wird nicht gelesen
Die PrintServer.ini Datei ist an die TFORMer Server Version und an die Anzahl der freigeschalteten Drucker angepasst. Zur Lizenzierung die INI Datei in den folgenden Pfad kopieren und dann den TFORMer Server neu starten:
C:\ProgramData\TEC-IT\TFORMer Server\8
Die PrintServer.ini Lizenzdatei wird nur im Default-Installationspfad gesucht – auch wenn das Repository woanders liegt. Das ProgramData Verzeichnis ist normalerweise im Explorer ausgeblendet.
Wie kann ich bei einem PDF Druckertyp den Dateinamen dynamisch steuern?
Hierfür zeigen wir Ihnen zwei verschiedene Möglichkeiten:
a) Den Dokument Namen über eine Expression im Formular setzen: Dabei holt man sich über die Systemvariable Device das Verzeichnis und ergänzt dann den Dateinamen über einen variablen Ausdruck.
- Unter Eigenschaften ➔ Gerät das Prefix für den Pfad setzen.
- Danach über eine Expression in der Formular/Reporteigenschaft Dokument Name (im Layout) einen dynamischen Dateinamen anhängen.
- Zum Beispiel kann man einen Zeitstempel dazuhängen, woraufhin der Dokumentenname den vollen Pfad ergibt: Device + Format(Now(), "yymmdd-HHmmss") + ".pdf"
- Um Überschreibungen zu verhindern, kann man eine Zusatzidentifikation (als Prefix, Suffix, im Prinzip jedes Datenfeld möglich) dazugeben.
b) Den Dokument-Namen über ein externes Datenfeld tfDokumentName von außen setzen:
- Der tfDokumentName ist ein System-Datenfeld, das nicht extra angelegt werden muss.
- Dieses externe Datenfeld wird automatisch an das Device angehängt.
Wie kann ich feherhafte Jobdateien regelmässig löschen?
Enthält das JobError Verzeichnis mehr als 65535 Dateien, können fehlerhafte Dateien nicht mehr aus dem überwachten Spool-In Verzeichnis heraus verschoben werden. Das führt zu Stabilitätsproblemen, da fehlerhafte Jobs stehen bleiben und mehrfach eingelesen werden.
Richten Sie im Windows Task Scheduler ein Clean-Up Script ein, in dem Sie das Verzeichnis regelmässig von alten TMP Dateien befreien - hier ein Beispiel, das alle Dateien älter als 60 Tage löscht:
rem CMD Script, taken from https://ss64.com/nt/forfiles.html
echo Deleting tmp files from JobError directory (*.tmp) older than 60 days
C:
cd C:\ProgramData\TEC-IT\TFORMer Server\8\JobError
forfiles /p "C:\ProgramData\TEC-IT\TFORMer Server\8\JobError" /m *.tmp /D -60 /C "cmd /c del @path"