RecordOrientedDatasetReaderPattern
Das Muster "RecordOrientedDatasetReaderPattern" wird verwendet, um Daten aus einer z/OS-Datei zu lesen.
Unterstützungsklassen
- ZFileStreamOrientedTextReader: Liest Textdaten
- ZFileStreamOrientedByteReader: Liest Bytedaten
- ZFileRecordOrientedDataReader: Liest sequenzielle Daten
Erforderliche Eigenschaften
Die folgenden Eigenschaften sind für das Muster erforderlich.
Eigenschaftsname | Wert | Beschreibung |
---|---|---|
PATTERN_IMPL_CLASS | Name der Java™-Klasse | Klasse, die die Schnittstelle RecordOrientedDatasetReaderPattern implementiert |
DSNAME | Dateiname | Beispiel: USER216.BATCH.RECORD.OUTPUT |
Optionale Eigenschaften
Die folgenden Eigenschaften sind für das Muster optional.
Eigenschaftsname | Wert | Beschreibung |
---|---|---|
ds_parameters | Parameter zum Öffnen der Datei. | Der Standardwert für ZFileRecordOrientedDataReader ist rb,recfm=fb,type=record,lrecl=80, der Standardwert für ZFileStreamOrientedByteReader und ZFileStreamOrientedTextReader ist rt. |
debug | true oder false (der Standardwert ist false) | Aktiviert detailliertes Tracing in diesem Stapeldatenstrom. |
EnablePerformanceMeasurement | true oder false (der Standardwert ist false) | Berechnet die Gesamtzeit in den Stapeldatenströmen und in der Methode "processRecord" bei Verwendung des GenericXDBatchStep. |
EnableDetailedPerformanceMeasurement | true oder false (der Standardwert ist false) | Bietet eine detailliertere Aufgliederung der Zeit pro Methode des Stapeldatenstroms. |
file.encoding | Codierung der Datei. | Beispiel: 8859_1. |
Schnittstellendefinition
public interface RecordOrientedDatasetReaderPattern {
/**
* Diese Methode wird während der Konfiguration des Jobs aufgerufen.
* Die Eigenschaften sind die in der xJCL angegebenen Eigenschaften.
* @param props
*/
public void initialize(Properties props);
/**
* Diese Methode wird nur einmal, direkt nach dem Öffnen der Zfile, aufgerufen. Sie
* sollte zur Verarbeitung von Header-Informationen verwendet werden, falls vorhanden.
* @param reader
* @throws IOException
*/
public void processHeader(ZFile reader) throws IOException;
/**
* Diese Methode muss den nächsten Datensatz in der Zfile lesen und ihn in
* angemessener Form zurückgeben (als temporäres Objekt).
* @param reader
* @return
* @throws IOException
*/
public Object fetchRecord(ZFile reader) throws IOException;
}
xJCL-Beispiel
<batch-data-streams>
<bds>
<logical-name>inputStream</logical-name>
<props>
<prop name="PATTERN_IMPL_CLASS" value="com.ibm.websphere.batch.samples.tests.bds.EchoReader"/>
<prop name="DSNAME" value="USER216.BATCH.RECORD.INPUT"/>
<prop name="ds_parameters" value="rt"/>
<prop name="file.encoding" value="CP1047"/>
<prop name="debug" value="true"/>
</props>
<impl-class>com.ibm.websphere.batch.devframework.datastreams.patterns.ZFileStreamOrientedByteReader</impl-class>
</bds>
<bds>
<logical-name>outputStream</logical-name>
<props>
<prop name="PATTERN_IMPL_CLASS" value="com.ibm.websphere.batch.samples.tests.bds.EchoWriter"/>
<prop name="DSNAME" value="USER216.BATCH.RECORD.OUTPUT"/>
<prop name="ds_parameters" value="wt"/>
<prop name="file.encoding" value="CP1047"/>
<prop name="debug" value="${debug}"/>
</props>
<impl-class>com.ibm.websphere.batch.devframework.datastreams.patterns.ZFileStreamOrientedByteWriter</impl-class>
</bds>
</batch-data-streams>