Die Sx22-Familie der Abneigungen zeigt an, dass einige systemdefinierte Parameter überschritten wurden. Ein S322 zeigt in der Regel an, dass Sie beispielsweise den Wert für die CPU-Zeit im Parameter TIME auf Ihrer Jobkarte oder in Ihrem Jobschritt überschritten haben.
Ein S722-Abbruch zeigt an, dass Sie mehr Spool-Output produziert haben, als von den JES-Parametern Ihres Shops erlaubt wird. Sie müssen die Quelle dieser Spool-Ausgabe ermitteln, um den Abbruch zu beheben.
Möglicherweise verfügen Sie über einen Kernspeicherauszug (CEEDUMP), Debugging-Ausgabe, die Sie codiert haben (SYSOUT oder SYSPRINT oder STDOUT oder STDERR), oder einen unkontrollierten Bericht DD, den Sie codiert haben. Die JESMSGLG-DD, die in der Spool-Datei entweder am oberen Rand Ihrer Ausgabe in SDSF angezeigt wird, oder indem Sie Ihren Job mit einem '?' kann Fehler vorher an die S722 melden.
Vielleicht haben Sie eine S322, die führt zu der S722. Dies ist durchaus möglich, da das Problem bei einer großen Datenmenge auftritt.
Die Einstellung des Zeitparameters auf NOLIMIT ist ein teures Debugging-Verfahren, da die meisten Mainframe-Shops einen Chargeback-Algorithmus haben, typischerweise CPU-Zeit = Geld in jemandes Budget. In Ihrem Shop ist möglicherweise ein JES-Exit vorhanden, der NOLIMIT durch einen anderen Wert ersetzt, um dessen Verwendung zu verhindern.
Wie von user6542823 angezeigt, könnten Sie eine JOBPARM LINES = eine große Zahl hinzufügen, um den S722 zu umgehen, aber Sie müssen immer noch das zugrunde liegende Problem lösen.
z/OS versucht, Ihnen so viele Informationen wie möglich zum Debuggen zu geben. Nutze, was es dir gibt.
Gegeben ...
- Sie haben gesagt, Ihr Programm mit lokalen Testdaten in Ordnung führt
- das Problem manifestiert, wenn gegen eine Sicherung der Produktion große Daten
... dann wenn läuft ... in der Sicherung und die Produktionsdaten
- die Definition der Tabelle PHONE_TAB in Ihren lokalen Testdaten übereinstimmt, dass
- Ihr Programm bindet erfolgreich
- Sie die Berechtigung haben die Backup-Daten
... das Problem ist wahrscheinlich nicht mit Ihrem SQL, sondern bezogen auf das Volumen der Daten zu lesen.
Schauen Sie sich die EXPLAIN-Ausgabe für Ihr Paket an und Sie werden wahrscheinlich sehen, dass Sie die gesamte PHONE_TAB-Tabelle scannen. Vielleicht gibt es in der Produktion einen Index, der in der Sicherung, gegen die Sie testen, fehlt.
Wie sieht dein 'FETCH' aus? Der Grund, warum ich frage, ist, dass der Fehler nicht auf der Deklaration steht, die nicht ausführbar ist, und S722 könnte ein Array-Größenproblem sein. – jmarkmurphy
Was ist die Definition der Spalten PHONE_NUM und PHONE_TYPE? – cschneid
Verwenden Sie JOBPARM LINES = 999999. Dadurch sollten Sie alle Zeilen in der Ausgabe schreiben können. Übrigens, wie viele Ausgangsdatensätze erwarten Sie? Und ich glaube, Phone_type sollte in Anführungszeichen als 'DU' stehen. – user6542823