Toschie
15-01-15, 11:50
Folgendes Problem.
Ich schreibe mit einem SQLRPGLE-Programm Daten in eine Printerfile.
Die Printerfile hat folgende Informationen:
Druckerdatei ändern (CHGPRTF)
Auswahl eingeben und Eingabetaste drücken.
Datei . . . . . . . . . . . . . > PRTOMSXML Name, generisch*, *ALL
Bibliothek . . . . . . . . . . *LIBL Name, *LIBL, *ALL, *ALLUSR...
Einheit:
Drucker . . . . . . . . . . . *JOB Name, *SAME, *JOB, *SYSVAL
Druckereinheitentyp . . . . . . *SCS *SAME, *SCS, *IPDS, *LINE...
Seitengröße:
Länge--Zeilen pro Seite . . . 255 .001-255.000, *SAME
Breite--Stellen pro Zeile . . 378 .001-378.000, *SAME
Maßangabe . . . . . . . . . . *ROWCOL *SAME, *ROWCOL, *UOM
Zeilen pro Zoll . . . . . . . . 6 *SAME, 6, 3, 4, 7.5, 7,5...
Zeichen pro Zoll . . . . . . . . 10 *SAME, 10, 5, 12, 13.3, 13...
Überlaufzeile . . . . . . . . . 255 1-255, *SAME
Satzformat-Aktualitätsprüfung . *NO *SAME, *YES, *NO
Text 'Beschreibung' . . . . . .
Auswahl eingeben und Eingabetaste drücken.
Zusätzliche Parameter
Rand auf der Vorderseite:
Oberer Seitenrand . . . . . . *DEVD 0-57.790
Linker Seitenrand . . . . . . 0-57.790
Rand auf der Rückseite:
Oberer Seitenrand . . . . . . *FRONTMGN 0-57.790
Linker Seitenrand . . . . . . 0-57.790
Satzumbruch . . . . . . . . . . *NO *SAME, *NO, *YES
Maßnahme bei undruckb. Zeichen:
Zeichen ersetzen . . . . . . . *YES *SAME, *YES, *NO
Ersatzzeichen . . . . . . . . ' ' 40-FE, *SAME, *BLANK
Seite ausrichten . . . . . . . . *NO *SAME, *NO, *YES
Steuerzeichen . . . . . . . . . *NONE *SAME, *NONE, *FCFC, *MACHINE
Kanalwerte:
Kanal . . . . . . . . . . . . *NORMAL *SAME, *NORMAL, 1, 2, 3, 4...
Zeilennummer für Kanal:
Leitung . . . . . . . . . . . 1-255
+ für weitere Werte
Genauigkeit . . . . . . . . . . *CONTENT *SAME, *CONTENT, *ABSOLUTE
Druckqualität . . . . . . . . . *STD *SAME, *STD, *DEVD, *DRAFT...
Papierzufuhr . . . . . . . . . . *DEVD *SAME, *DEVD, *AUTOCUT...
Papierfach . . . . . . . . . . . 00001 1-255, *SAME, *E1, *FORMDF
Ausgabefach . . . . . . . . . . *DEVD 1-65535, *SAME, *DEVD
Schriftart:
Kennung . . . . . . . . . . . *CPI Zeichenwert, *SAME, *CPI...
Punktgröße . . . . . . . . . . 000.1-999.9, *NONE
Zeichen-ID:
Grafikzeichensatz . . . . . . *DEVD Zahl
Codepage . . . . . . . . . . . Zahl
Dezimalformat . . . . . . . . . *JOB *SAME, *FILE, *JOB
Schriftartzeichensatz:
Zeichensatz . . . . . . . . . *FONT Name, *SAME, *FONT
Bibliothek . . . . . . . . . Name, *LIBL, *CURLIB
Codepage . . . . . . . . . . . Name
Bibliothek . . . . . . . . . Name, *LIBL, *CURLIB
Punktgröße . . . . . . . . . . 000.1-999.9, *NONE
Codierte Schriftart:
Codierte Schriftart . . . . . *FNTCHRSET Name, *SAME, *FNTCHRSET
Bibliothek . . . . . . . . . Name, *LIBL, *CURLIB
Punktgröße . . . . . . . . . . 000.1-999.9, *NONE
Tabellenverweiszeichen . . . . . *NO *SAME, *YES, *NO
Seitendefinition . . . . . . . . *NONE Name, *SAME, *NONE
Bibliothek . . . . . . . . . . Name, *LIBL, *CURLIB
Formulardefinition . . . . . . . *NONE Name, *SAME, *NONE, *DEVD
Bibliothek . . . . . . . . . . Name, *LIBL, *CURLIB
AFP-Zeichen . . . . . . . . . . *NONE Zeichenwert, *SAME, *NONE
+ für weitere Werte
Grad der Seitendrehung . . . . . *AUTO *SAME, *AUTO, *DEVD, *COR...
Log. Seiten pro phy. Seite . . . 1 1-4, *SAME
Ausgabe verkleinern . . . . . . *TEXT *SAME, *TEXT, *NONE
Drucktext . . . . . . . . . . . *JOB
Hardwareausrichtigung . . . . . 0 *SAME, 0, 50, 100
Beidseitig drucken . . . . . . . *NO *SAME, *NO, *YES, *TUMBLE...
Schreiben verzögern . . . . . . *YES *SAME, *YES, *NO
Maßeinheit . . . . . . . . . . . *INCH *SAME, *INCH, *CM
Schablone für Vorderseite:
Schablone . . . . . . . . . . *NONE Name, *NONE, *SAME
Bibliothek . . . . . . . . . Name, *LIBL, *CURLIB
Oberer Seitenrand . . . . . . 0-57.790, *SAME
Linker Seitenrand . . . . . . 0-57.790, *SAME
Schablone für Rückseite:
Schablone . . . . . . . . . . *FRONTOVL Name, *FRONTOVL, *NONE, *SAME
Bibliothek . . . . . . . . . Name, *LIBL, *CURLIB
Oberer Seitenrand . . . . . . 0-57.790, *SAME
Linker Seitenrand . . . . . . 0-57.790, *SAME
Konstante Rückseite . . . . . *NOCONSTANT, *CONSTANT, *SAME
Zeilendaten konvertieren . . . . *NO *NO, *YES, *SAME
IPDS-Durchgriff . . . . . . . . *DEVD *DEVD, *NO, *YES, *SAME
Liste d. Benutzerressourc.bib. *DEVD Name, *DEVD, *NONE...
+ für weitere Werte
Eckklammer . . . . . . . . . . . *NONE *NONE, *BOTRIGHT...
Randheftung:
Bezugskante . . . . . . . . . *NONE *NONE, *DEVD, *BOT, *RIGHT...
Abstand zur Bezugskante . . . 0-57.790, *DEVD, *SAME
Anzahl Klammern . . . . . . . 1-122, *DEVD, *SAME
Klammernabstand . . . . . . . 0-57.790, *DEVD, *SAME
+ für weitere Werte
Sattelheftung:
Bezugskante . . . . . . . . . *NONE *NONE, *TOP, *LEFT, *DEVD...
Anzahl Klammern . . . . . . . 1-122, *DEVD, *SAME
Klammernabstand . . . . . . . 0-57.790, *DEVD, *SAME
+ für weitere Werte
Schriftartauflösung f. Format. *DEVD *DEVD, *SEARCH, 240, 300...
Spool-Verarbeitung der Daten . . *YES *SAME, *YES, *NO
Spool-Ausgabewarteschlange . . . OMS Name, *SAME, *JOB, *DEV
Bibliothek . . . . . . . . . . *LIBL Name, *LIBL, *CURLIB
Formularart . . . . . . . . . . *STD Zeichenwert, *SAME, *STD
Kopien . . . . . . . . . . . . . 1 1-255, *SAME
Verfallsdatum für Datei . . . . *NONE Datum, *DAYS, *NONE, *SAME
Tage bis zum Verfall der Datei 1-366
Zu druckender Seitenbereich:
Anfangsseite . . . . . . . . . 1 Zahl, 1, *SAME, *ENDPAGE
Endseite . . . . . . . . . . . *END Zahl, *SAME, *END
Max. Anzahl Spool-Ausgabesätze 20000000 1-99999999, *SAME, *NOMAX
Dateitrennseiten . . . . . . . . 0 0-9, *SAME
Zeitplan für Spool-Ausgabe . . . *FILEEND *SAME, *FILEEND, *JOBEND...
Spool-Datei anhalten . . . . . . *NO *SAME, *NO, *YES
Spool-Datei sichern . . . . . . *NO *SAME, *NO, *YES
Ausgabepriorität (in OUTQ) . . . *JOB *SAME, *JOB, 1, 2, 3, 4, 5...
Benutzerdaten . . . . . . . . . *SOURCE Zeichenwert, *SAME...
Spool-Dateieigner . . . . . . . *CURUSRPRF *SAME, *CURUSRPRF, *JOB...
Benutzerdefinierte Auswahl . . . *NONE Zeichenwert, *SAME, *NONE
+ für weitere Werte
Benutzerdefinierte Daten . . . . *NONE
Benutzerdefiniertes Objekt:
Objekt . . . . . . . . . . . . *NONE Name, *SAME, *NONE
Bibliothek . . . . . . . . . Name, *LIBL, *CURLIB
Objektart . . . . . . . . . . *SAME, *DTAARA, *DTAQ...
Zieldatenstromdatei . . . . . . *SAME
Datenstationsanpassungsobjekt . *NONE Name, *SAME, *NONE, *PDF
Bibliothek . . . . . . . . . . Name, *LIBL, *CURLIB
Maximale Dateiwartezeit . . . . *IMMED Sekunden *SAME, *IMMED, *CLS
Off. Datenpfad gemeinsam ben. . *NO *SAME, *NO, *YES
Die Printerfile ist ganz normal in der F-Bestimmung definiert.
FPRTOMSXML O F 198 PRINTER USROPN
Das SQLRPGLE-Programm ermittelt Daten und bearbeitet mittels SQL-Funktionen einen String.
Der String wird von Sonderzeichen befreit und baut ein XML auf.
Für das XML nutzen wir keine System i-Funktionen sondern bauen das händig auf.
Wir setzen im Programm die Anfang und Endetags selbstständig.
Das Austauschen von den Sonderzeichen bzw. ungültigen Zeichen erfolgt mit folgender Funktionen:
C*----------------------------------------------------------------
C** C O N V E 2 SUCHE und ERSETZE ungewünschte Zeichen
C*----------------------------------------------------------------
C CONVE2 BEGSR
C**
C/EXEC SQL
C+ Set :$RESULT = Replace(Trim(:$RESULT), :$FIND, Trim(:$REPLACE))
C/END-EXEC
C**
C ENDSR
Und die Ausgabe in die Printerfile bzw. die Ausgabe der Spooldaten erfolgt normal über die O-Bestimmungen:
OPRTOMSXML E EXCXML 1
O XMLSTR 198
Eins noch.
Ich weiß das man sicherlich besser ein XML transportieren kann.
Hier habe ich leider den "Krieg" verloren und ich MUSS das XML über einen Spoolstream ausgeben.
Nun zu meinem Problem:
Es kommt immer wieder mal vor, dass das Drucken ewig dauert.
Was zur Folge hat, das weitere Jobs/Prozesse die folgen, entsprechend verzögert werden.
Ich finde leider nichts auffälliges, was uns da an der Stelle stören könnte.
Eventuelle Arbeitsspitzen auf dem System kann ich auch ausschließen, weil ich es auch Nachts versucht habe, wo ich alleine auf dem System war, alle Sicherungsjobs durch waren und das System am "schlafen" war.
Ich hoffe wir finden ein paar Ansätze =)
Danke euch allen =)
Ich schreibe mit einem SQLRPGLE-Programm Daten in eine Printerfile.
Die Printerfile hat folgende Informationen:
Druckerdatei ändern (CHGPRTF)
Auswahl eingeben und Eingabetaste drücken.
Datei . . . . . . . . . . . . . > PRTOMSXML Name, generisch*, *ALL
Bibliothek . . . . . . . . . . *LIBL Name, *LIBL, *ALL, *ALLUSR...
Einheit:
Drucker . . . . . . . . . . . *JOB Name, *SAME, *JOB, *SYSVAL
Druckereinheitentyp . . . . . . *SCS *SAME, *SCS, *IPDS, *LINE...
Seitengröße:
Länge--Zeilen pro Seite . . . 255 .001-255.000, *SAME
Breite--Stellen pro Zeile . . 378 .001-378.000, *SAME
Maßangabe . . . . . . . . . . *ROWCOL *SAME, *ROWCOL, *UOM
Zeilen pro Zoll . . . . . . . . 6 *SAME, 6, 3, 4, 7.5, 7,5...
Zeichen pro Zoll . . . . . . . . 10 *SAME, 10, 5, 12, 13.3, 13...
Überlaufzeile . . . . . . . . . 255 1-255, *SAME
Satzformat-Aktualitätsprüfung . *NO *SAME, *YES, *NO
Text 'Beschreibung' . . . . . .
Auswahl eingeben und Eingabetaste drücken.
Zusätzliche Parameter
Rand auf der Vorderseite:
Oberer Seitenrand . . . . . . *DEVD 0-57.790
Linker Seitenrand . . . . . . 0-57.790
Rand auf der Rückseite:
Oberer Seitenrand . . . . . . *FRONTMGN 0-57.790
Linker Seitenrand . . . . . . 0-57.790
Satzumbruch . . . . . . . . . . *NO *SAME, *NO, *YES
Maßnahme bei undruckb. Zeichen:
Zeichen ersetzen . . . . . . . *YES *SAME, *YES, *NO
Ersatzzeichen . . . . . . . . ' ' 40-FE, *SAME, *BLANK
Seite ausrichten . . . . . . . . *NO *SAME, *NO, *YES
Steuerzeichen . . . . . . . . . *NONE *SAME, *NONE, *FCFC, *MACHINE
Kanalwerte:
Kanal . . . . . . . . . . . . *NORMAL *SAME, *NORMAL, 1, 2, 3, 4...
Zeilennummer für Kanal:
Leitung . . . . . . . . . . . 1-255
+ für weitere Werte
Genauigkeit . . . . . . . . . . *CONTENT *SAME, *CONTENT, *ABSOLUTE
Druckqualität . . . . . . . . . *STD *SAME, *STD, *DEVD, *DRAFT...
Papierzufuhr . . . . . . . . . . *DEVD *SAME, *DEVD, *AUTOCUT...
Papierfach . . . . . . . . . . . 00001 1-255, *SAME, *E1, *FORMDF
Ausgabefach . . . . . . . . . . *DEVD 1-65535, *SAME, *DEVD
Schriftart:
Kennung . . . . . . . . . . . *CPI Zeichenwert, *SAME, *CPI...
Punktgröße . . . . . . . . . . 000.1-999.9, *NONE
Zeichen-ID:
Grafikzeichensatz . . . . . . *DEVD Zahl
Codepage . . . . . . . . . . . Zahl
Dezimalformat . . . . . . . . . *JOB *SAME, *FILE, *JOB
Schriftartzeichensatz:
Zeichensatz . . . . . . . . . *FONT Name, *SAME, *FONT
Bibliothek . . . . . . . . . Name, *LIBL, *CURLIB
Codepage . . . . . . . . . . . Name
Bibliothek . . . . . . . . . Name, *LIBL, *CURLIB
Punktgröße . . . . . . . . . . 000.1-999.9, *NONE
Codierte Schriftart:
Codierte Schriftart . . . . . *FNTCHRSET Name, *SAME, *FNTCHRSET
Bibliothek . . . . . . . . . Name, *LIBL, *CURLIB
Punktgröße . . . . . . . . . . 000.1-999.9, *NONE
Tabellenverweiszeichen . . . . . *NO *SAME, *YES, *NO
Seitendefinition . . . . . . . . *NONE Name, *SAME, *NONE
Bibliothek . . . . . . . . . . Name, *LIBL, *CURLIB
Formulardefinition . . . . . . . *NONE Name, *SAME, *NONE, *DEVD
Bibliothek . . . . . . . . . . Name, *LIBL, *CURLIB
AFP-Zeichen . . . . . . . . . . *NONE Zeichenwert, *SAME, *NONE
+ für weitere Werte
Grad der Seitendrehung . . . . . *AUTO *SAME, *AUTO, *DEVD, *COR...
Log. Seiten pro phy. Seite . . . 1 1-4, *SAME
Ausgabe verkleinern . . . . . . *TEXT *SAME, *TEXT, *NONE
Drucktext . . . . . . . . . . . *JOB
Hardwareausrichtigung . . . . . 0 *SAME, 0, 50, 100
Beidseitig drucken . . . . . . . *NO *SAME, *NO, *YES, *TUMBLE...
Schreiben verzögern . . . . . . *YES *SAME, *YES, *NO
Maßeinheit . . . . . . . . . . . *INCH *SAME, *INCH, *CM
Schablone für Vorderseite:
Schablone . . . . . . . . . . *NONE Name, *NONE, *SAME
Bibliothek . . . . . . . . . Name, *LIBL, *CURLIB
Oberer Seitenrand . . . . . . 0-57.790, *SAME
Linker Seitenrand . . . . . . 0-57.790, *SAME
Schablone für Rückseite:
Schablone . . . . . . . . . . *FRONTOVL Name, *FRONTOVL, *NONE, *SAME
Bibliothek . . . . . . . . . Name, *LIBL, *CURLIB
Oberer Seitenrand . . . . . . 0-57.790, *SAME
Linker Seitenrand . . . . . . 0-57.790, *SAME
Konstante Rückseite . . . . . *NOCONSTANT, *CONSTANT, *SAME
Zeilendaten konvertieren . . . . *NO *NO, *YES, *SAME
IPDS-Durchgriff . . . . . . . . *DEVD *DEVD, *NO, *YES, *SAME
Liste d. Benutzerressourc.bib. *DEVD Name, *DEVD, *NONE...
+ für weitere Werte
Eckklammer . . . . . . . . . . . *NONE *NONE, *BOTRIGHT...
Randheftung:
Bezugskante . . . . . . . . . *NONE *NONE, *DEVD, *BOT, *RIGHT...
Abstand zur Bezugskante . . . 0-57.790, *DEVD, *SAME
Anzahl Klammern . . . . . . . 1-122, *DEVD, *SAME
Klammernabstand . . . . . . . 0-57.790, *DEVD, *SAME
+ für weitere Werte
Sattelheftung:
Bezugskante . . . . . . . . . *NONE *NONE, *TOP, *LEFT, *DEVD...
Anzahl Klammern . . . . . . . 1-122, *DEVD, *SAME
Klammernabstand . . . . . . . 0-57.790, *DEVD, *SAME
+ für weitere Werte
Schriftartauflösung f. Format. *DEVD *DEVD, *SEARCH, 240, 300...
Spool-Verarbeitung der Daten . . *YES *SAME, *YES, *NO
Spool-Ausgabewarteschlange . . . OMS Name, *SAME, *JOB, *DEV
Bibliothek . . . . . . . . . . *LIBL Name, *LIBL, *CURLIB
Formularart . . . . . . . . . . *STD Zeichenwert, *SAME, *STD
Kopien . . . . . . . . . . . . . 1 1-255, *SAME
Verfallsdatum für Datei . . . . *NONE Datum, *DAYS, *NONE, *SAME
Tage bis zum Verfall der Datei 1-366
Zu druckender Seitenbereich:
Anfangsseite . . . . . . . . . 1 Zahl, 1, *SAME, *ENDPAGE
Endseite . . . . . . . . . . . *END Zahl, *SAME, *END
Max. Anzahl Spool-Ausgabesätze 20000000 1-99999999, *SAME, *NOMAX
Dateitrennseiten . . . . . . . . 0 0-9, *SAME
Zeitplan für Spool-Ausgabe . . . *FILEEND *SAME, *FILEEND, *JOBEND...
Spool-Datei anhalten . . . . . . *NO *SAME, *NO, *YES
Spool-Datei sichern . . . . . . *NO *SAME, *NO, *YES
Ausgabepriorität (in OUTQ) . . . *JOB *SAME, *JOB, 1, 2, 3, 4, 5...
Benutzerdaten . . . . . . . . . *SOURCE Zeichenwert, *SAME...
Spool-Dateieigner . . . . . . . *CURUSRPRF *SAME, *CURUSRPRF, *JOB...
Benutzerdefinierte Auswahl . . . *NONE Zeichenwert, *SAME, *NONE
+ für weitere Werte
Benutzerdefinierte Daten . . . . *NONE
Benutzerdefiniertes Objekt:
Objekt . . . . . . . . . . . . *NONE Name, *SAME, *NONE
Bibliothek . . . . . . . . . Name, *LIBL, *CURLIB
Objektart . . . . . . . . . . *SAME, *DTAARA, *DTAQ...
Zieldatenstromdatei . . . . . . *SAME
Datenstationsanpassungsobjekt . *NONE Name, *SAME, *NONE, *PDF
Bibliothek . . . . . . . . . . Name, *LIBL, *CURLIB
Maximale Dateiwartezeit . . . . *IMMED Sekunden *SAME, *IMMED, *CLS
Off. Datenpfad gemeinsam ben. . *NO *SAME, *NO, *YES
Die Printerfile ist ganz normal in der F-Bestimmung definiert.
FPRTOMSXML O F 198 PRINTER USROPN
Das SQLRPGLE-Programm ermittelt Daten und bearbeitet mittels SQL-Funktionen einen String.
Der String wird von Sonderzeichen befreit und baut ein XML auf.
Für das XML nutzen wir keine System i-Funktionen sondern bauen das händig auf.
Wir setzen im Programm die Anfang und Endetags selbstständig.
Das Austauschen von den Sonderzeichen bzw. ungültigen Zeichen erfolgt mit folgender Funktionen:
C*----------------------------------------------------------------
C** C O N V E 2 SUCHE und ERSETZE ungewünschte Zeichen
C*----------------------------------------------------------------
C CONVE2 BEGSR
C**
C/EXEC SQL
C+ Set :$RESULT = Replace(Trim(:$RESULT), :$FIND, Trim(:$REPLACE))
C/END-EXEC
C**
C ENDSR
Und die Ausgabe in die Printerfile bzw. die Ausgabe der Spooldaten erfolgt normal über die O-Bestimmungen:
OPRTOMSXML E EXCXML 1
O XMLSTR 198
Eins noch.
Ich weiß das man sicherlich besser ein XML transportieren kann.
Hier habe ich leider den "Krieg" verloren und ich MUSS das XML über einen Spoolstream ausgeben.
Nun zu meinem Problem:
Es kommt immer wieder mal vor, dass das Drucken ewig dauert.
Was zur Folge hat, das weitere Jobs/Prozesse die folgen, entsprechend verzögert werden.
Ich finde leider nichts auffälliges, was uns da an der Stelle stören könnte.
Eventuelle Arbeitsspitzen auf dem System kann ich auch ausschließen, weil ich es auch Nachts versucht habe, wo ich alleine auf dem System war, alle Sicherungsjobs durch waren und das System am "schlafen" war.
Ich hoffe wir finden ein paar Ansätze =)
Danke euch allen =)