ByteWriterPattern
El patrón ByteWriterPattern se usa para escribir bytes de datos en un archivo.
Clases de soporte
La clase FileByteWriter proporciona la lógica para abrir y escribir bytes en el archivo determinado. Puede anexar o sobrescribir contenido existente, dependiendo de las propiedades especificadas. Durante un reinicio, el archivo se abre siempre en modalidad append.
Propiedades obligatorias
Las propiedades siguientes son necesarias para el patrón.
Nombre de propiedad | Value |
---|---|
PATTERN_IMPL_CLASS | Clase que implementa la interfaz ByteWriterPattern |
FILENAME | Vía de acceso completa al archivo de entrada |
Propiedades opcionales
Para el patrón las propiedades siguientes son opcionales.
Nombre de propiedad | Value | Descripción |
---|---|---|
debug | true o false (el valor predeterminado es false) | Habilita el rastreo detallado en esta secuencia de datos por lotes. |
EnablePerformanceMeasurement | true o false (el valor predeterminado es false) | Calcula el tiempo total invertido en las secuencias de datos por lotes y el método processRecord, si se utiliza GenericXDBatchStep. |
EnableDetailedPerformanceMeasurement | true o false (el valor predeterminado es false) | Proporciona un desglose más detallado del tiempo invertido en cada método de las secuencias de datos por lotes. |
file.encoding | Codificación del archivo | Por ejemplo, 8859_1 |
AppendJobldToFileName | true o false (el valor predeterminado es false) | Añade el JobID al nombre de archivo antes de cargar el archivo. |
append | true o false (el valor predeterminado es true) | Determina si se abre el archivo en modalidad append. Importante: Durante un reinicio, el archivo se abre siempre en modalidad append.
|
Definición de interfaz
public interface ByteWriterPattern {
/**
* Se invoca durante la fase de configuración de paso
* @parámetro props
*/
public void initialize(Properties props);
/**
* Graba el objeto dado en la secuencia de salida dada. Cualquier proceso
* que es necesario efectuar antes de la grabación se puede añadir aquí
* @parámetro out
* @parámetro record
* @emite una excepción IOException
*/
public void writeRecord(BufferedOutputStream out, Object record) throws IOException;
/**
* Grabar información de cabecera, si hay alguna
* @parámetro out
* @emite una excepción IOException
*/
public void writeHeader(BufferedOutputStream out) throws IOException;
/**
* Este método se puede invocar opcionalmente durante el paso de proceso para
* inicializar y grabar de forma explícita la cabecera.
* @parámetro header
*/
public void writeHeader(BufferedOutputStream out, Object header) throws IOException;
}
Ejemplo xJCL
<batch-data-streams>
<bds>
<logical-name>outputStream</logical-name>
<props>
<prop name="PATTERN_IMPL_CLASS" value="com.ibm.websphere.batch.samples.tests.bds.EchoWriter"/>
<prop name="file.encoding" value="8859_1"/>
<prop name="FILENAME" value="/opt/txlist.txt" />
<prop name="debug" value="true"/>
</props>
<impl-class>com.ibm.websphere.batch.devframework.datastreams.patterns.FileByteWriter</impl-class>
</bds>
</batch-data-streams>