WebSphere Extended Deployment Compute Grid, Version 6.1
             Operating Systems: AIX, HP-UX, Linux, Solaris, Windows, z/OS


Using the batch data stream (BDS) framework

This topic shows you an example of how to use the batch data stream (BDS) framework.

Before you begin

Identify the correct pattern to use. Select a pattern based on what type of data stream you need. For example, if you want to read text from a file, then select the FileReaderPattern. See [Version 6.1.0.3 and later] Batch data stream framework and patterns for a selection of patterns.

Procedure

  1. Implement the pattern interface:
    <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;
    
    // Implement the FileReaderPattern
    public class TransactionListStream implements FileReaderPattern {
    	private Properties properties;
    	private BDSFWLogger logger;
    
    /**
       Save properties specified in the xJCL
    */
    
    	public void initialize(Properties props) {
    // create logger
    		logger = new BDSFWLogger(props);
    		
    		if (logger.isDebugEnabled())
    			logger.debug("entering TransactionListInputStream.initialize()");
    		properties = props;
    
    	}
    
    
    // This method is where you should add the business logic of processing the read //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;
    		
    	}
    	// Helper method that parses the read string and creates an internal object for use ///by other parts of the code
    	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 for this sample
    
    	}
    
    	
    
    }
    </codeblock>
  2. Reference the class that you just created in the previous step, along with the supporting class in the xJCL.

Example

<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>



Related concepts
[Version 6.1.0.3 and later] Batch data stream framework and patterns
Related reference
[Version 6.1.0.3 and later] RecordOrientedDataSetWriterPattern
Related information
[Version 6.1.0.3 and later] JDBCReaderPattern
[Version 6.1.0.3 and later] JDBCWriterPattern
[Version 6.1.0.3 and later] ByteReaderPattern
[Version 6.1.0.3 and later] ByteWriterPattern
[Version 6.1.0.3 and later] FileReaderPattern
[Version 6.1.0.3 and later] FileWriterPattern
[Version 6.1.0.3 and later] RecordOrientedDatasetReaderPattern
Task topic    

Terms of Use | Feedback

Last updated: Oct 30, 2009 6:22:31 PM EDT
http://publib.boulder.ibm.com/infocenter/wxdinfo/v6r1/index.jsp?topic=/com.ibm.websphere.gridmgr.doc/info/scheduler/tbtchpttrnex.html