WebSphere Extended Deployment Compute Grid, Version 6.1.1
             Sistemas operativos: AIX, HP-UX, Linux, Solaris, Windows,


Utilización de la infraestructura de secuencia de datos por lotes (BDS)

Este tema le muestra un ejemplo de cómo utilizar la infraestructura de secuencia de datos por lotes (BDS).

Antes de comenzar

Identifique el patrón correcto que se va a utilizar. Seleccione un patrón basándose en el tipo de secuencia de datos que necesita. Por ejemplo, si desea leer texto de un archivo, seleccione FileReaderPattern. Consulte Patrones e infraestructura de secuencia de datos por lotes para obtener una selección de patrones.

Procedimiento

  1. Implemente la interfaz de patrón:
    <codeblock>package com.ibm.websphere.samples;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.util.Properties;
    
    import com.ibm.websphere.batch.devframework.configuration.BDSFWLogger;
    import com.ibm.websphere.batch.devframework.datastreams.patternadapter.FileReaderPattern;
    
    // Implementar FileReaderPattern
    public class TransactionListStream implements FileReaderPattern {
    	private Properties properties;
    	private BDSFWLogger logger;
    
    /**
       Guardar las propiedades especificadas en xJCL
    */
    
    	public void initialize(Properties props) {
    // crear registrador
    		logger = new BDSFWLogger(props);
    		
    		if (logger.isDebugEnabled())
    			logger.debug("entering TransactionListInputStream.initialize()");
    		properties = props;
    
    	}
    
    
    // Este método es donde puede añadir la lógica empresarial de procesar la lectura //string
    	public Object fetchRecord(BufferedReader reader) throws IOException {
    		String str = null;
    		Posting posting = null;
    		if (logger.isDebugEnabled())
    logger.debug("Entering TransactionListInputStream.fetchRecord");
    		if(reader.ready()) {
    			str = reader.readLine();
    		}
    		if(str != null) {
    			
    			posting = _generateRecord(str);
    			
    		}
    				
    		if (logger.isDebugEnabled())
    			logger.debug("Exiting TransactionListInputStream.fetchRecord with " + posting);
    		return posting;
    		
    	}
    	// Método helper (de ayuda) que analiza la serie de lectura y crea un objeto interno para que ///lo utilicen otras partes del código
    	private Posting _generateRecord(String str) {
    		Posting post = null;
    		String [] tokens = str.split(",", 3);
    	
    		if(tokens.length == 3) {
    			
    			String txTypeStr = tokens[0];
    			String actNoStr = tokens[1];
    			String amtStr = tokens[2];
    			
    			int txType = Integer.parseInt(txTypeStr);
    			double amt = Double.parseDouble(amtStr);
    			post = new Posting(txType,actNoStr,amt);
    			
    			
    		} else {
    			logger.error("Invalid csv string" + str);
    		}
    		if(logger.isDebugEnabled())
    			logger.debug("Loaded posting record " + post);
    		return post;
    	}
    	public void processHeader(BufferedReader reader) throws IOException {
    		// NO OP para este ejemplo
    
    	}
    
    	
    
    }
    </codeblock>
  2. Haga referencia a la clase que acaba de crear en el paso anterior, junto con la clase de soporte en el xJCL.

Ejemplo

<codeblock><batch-data-streams>		
	 <bds>
          <logical-name>txlististream</logical-name>
          <props>
<prop name="IMPLCLASS" value= "com.ibm.websphere.samples.TransactionListStream"/>
            	<prop name="FILENAME" value="/opt/inputfile.txt"/>
            	<prop name="debug" value="true"/>                       
          </props>
<impl-class> com.ibm.websphere.batch.devframework.datastreams.patterns.TextFileReader </impl-class>
	</bds>
</batch-data-streams>

</codeblock>



Conceptos relacionados
Patrones e infraestructura de secuencia de datos por lotes
Información relacionada
JDBCReaderPattern
JDBCWriterPattern
ByteWriterPattern
FileReaderPattern
FileWriterPattern
RecordOrientedDatasetReaderPattern
Tema de tarea    

Condiciones de uso | Comentarios

Última actualización: 22-sep-2009 09H47' EDT
http://publib.boulder.ibm.com/infocenter/wxdinfo/v6r1m1/index.jsp?topic=/com.ibm.websphere.gridmgr.doc/info/scheduler/tbtchpttrnex.html