Mit dem SPOOL-Exit 097 kann in einer Client-Server-Umgebung bei Einsatz des Produkts „Distributed Print Services“ die Anzahl der Dprint-Aufträge für den File Transfer gesteuert werden. Mit dem Einsatz des Exits ist es möglich für jeden Client eine maximale Anzahl von Aufträgen für den File Transfer festzulegen. Das führt dazu die Dprint-Systemtasks zu reduzieren, die diejenigen Dprint-Aufträge steuern, für die eine File-Transfer-Bearbeitung angestoßen wurde. Außerdem kann mit dem Exit vermieden werden, dass durch Dprint die File-Transfer-Ressourcen auf dem Client- und Server-Rechner allein beansprucht werden. Das Problem, dass Druckaufträge zu lange in einem Zwischen-Status (WFT oder FT) bleiben kann dadurch gelöst werden.
SPOOL-Hintergrund
Wurde ein von einem Client abgegebener Dprint-Auftrag von einem fernen Server angenommen, befindet er sich in der SPOOL-Auftragswarteschlange des Servers im Status WFT (wait file transfer). Auf die Anforderung der Dprint-File-Transfer-Einheit wählt SPOOL einen Auftrag aus der Warteschlange aus und übergibt ihn an Dprint. Dabei wird der Auftrag gewählt, der die höchste Priorität hat und dessen Original-Host (d.h. der Client Host, der den Auftrag abgegeben hat) verfügbar ist und freie Betriebsmittel besitzt. Hat die Dprint-File-Transfer-Einheit den Auftrag erhalten, informiert sie den Client-Host. Dann initiiert dieser den File Transfer der zu druckenden Datei und evtl. der Datei, die die für den Ausdruck benötigten Ressourcen enthält. Da die Dprint-File-Transfer-Einheit Aufträge ohne Unterbrechung anfordert, werden alle Aufträge, die vom Server angenommen wurden und File Transfer benötigen, sofort an File Transfer geleitet. Ist die Anzahl von Aufträgen sehr hoch und ist der Server nicht leistungsfähig genug, führt dies zu Performance-Problemen auf der Server-Seite und zu einer alleinigen Inanspruchnahme der File-Transfer-Ressourcen auf der Client-Seite. Der Exit 097 ist im SPOOL auf der Server-Seite lokalisiert und greift dort ein, wo ein Auftrag für die Dprint-File-Transfer-Einheit ausgewählt wird.
Folgende Informationen werden an die Exit-Routine übergeben:R1 = A (EX096-Parameterbereich)
Im Parameterbereich sind folgende Felder versorgt:
E97HSTl@ | Adresse einer Host-Tabelle, die die Namen der verfügbaren und nicht gesättigten Hosts enthält |
E97HST# | Anzahl der Einträge in der Host-Tabelle |
E97HSTL | Länge eines Eintrags in der Host-Tabelle |
E97SVT@ | Adresse der SPOOL-Vector-Tabelle |
Der Returncode wird im Standardheader des Parameterbereichs abgelegt.
E97EXNOK | X'00000001' während der Bearbeitung ist ein Fehler aufgetreten. |
E97EXOK | X'00000000' der Exit wurde ohne Fehler ausgeführt. |
Die folgenden Felder können von der Exit-Routine versorgt werden:
E97HOK# | Anzahl in der Eingabe-Host-Liste* gebliebener Hosts |
E97WFT# | Anzahl der Aufträge im Zustand WFT für die Hosts, die in der Eingabe-Host-Liste geblieben sind |
E97FT# | Anzahl der Aufträge im Zustand FT für die Hosts, die in der Eingabe-Host-Liste geblieben sind |
* Eingabe-Host-Liste = Eingabeliste, aus der einige Einträge entfernt wurden, d.h. die mit binären Nullen aufgefüllt wurden.
DSECT
Eine DSECT/CSECT für den Parameterbereich kann mit dem Makro EX097 erzeugt werden, wobei „prefix“ max. 3 Zeichen lang sein darf.
EX097 D CLREXPL DSECT , File transfer balancing exit p/l E97EXBEG DS 0H FHDR MF=(C,E97),EQUATES=NO DS 0A E97FHE DS 0XL8 0 GENERAL PARAMETER AREA HEADER * E97IFID DS 0A 0 INTERFACE IDENTIFIER E97FCTU DS AL2 0 FUNCTION UNIT NUMBER * BIT 15 HEADER FLAG BIT, * MUST BE RESET UNTIL FURTHER NOTICE * BIT 14-12 UNUSED, MUST BE RESET * BIT 11-0 REAL FUNCTION UNIT NUMBER E97FCT DS AL1 2 FUNCTION NUMBER E97FCTV DS AL1 3 FUNCTION INTERFACE VERSION NUMBER * E97RET DS 0A 4 GENERAL RETURN CODE E97SRET DS 0AL2 4 SUB RETURN CODE E97SR2 DS AL1 4 SUB RETURN CODE 2 E97SR1 DS AL1 5 SUB RETURN CODE 1 E97MRET DS 0AL2 6 MAIN RETURN CODE E97MR2 DS AL1 6 MAIN RETURN CODE 2 E97MR1 DS AL1 7 MAIN RETURN CODE 1 E97FHL EQU 8 8 GENERAL OPERAND LIST HEADER LENGTH * * * EQUATES FOR EXIT RETURN INFORMATION IN &P.RET * E97EXNOK EQU 1 EXIT NOK E97EXOK EQU 0 EXIT OK E97UNUS DC XL4'00' **** UNUSED **** * E97HSTL@ DS A ACCESSIBLE HOST LIST E97SVT@ DS A SVT ADDRESS E97HST# DS H NBR OF ENTRIES IN THE LIST E97HSTL DS H LENGTH OF AN ENTRY IN THE LIST * E97HOK# DS H OUTPUT AREA = NBR OF CORRECT HST E97WFT# DS H TOTAL NBR OF JOB IN WFT E97FT# DS H TOTAL NBR OF JOB IN FT DS CL20 RESERVED FOR EXTENSION E97PLLEN EQU *-E97EXBEG LENGTH OF THE PARAMETER LIST