Framework für Stapeldatenströme verwenden

Dieser Artikel enthält ein Beispiel für die Verwendung des Framework für Stapeldatenströme (BDS)

Vorbereitende Schritte

Geben Sie das richtige zu verwendende Muster an. Wählen Sie je nach benötigtem Datenstromtyp ein Muster aus. Wenn Sie z. B. Text aus einer Datei lesen möchten, wählen Sie FileReaderPattern aus. Eine Auswahl von Mustern finden Sie im Artikel Framework und Muster für Stapeldatenströme.

Vorgehensweise

  1. Implementieren Sie die Schnittstelle des Musters:
    <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;
    
    // FileReaderPattern implementieren
    public class TransactionListStream implements FileReaderPattern {
    		private Properties properties;
    		private BDSFWLogger logger;
    
    /**
       In der xJCL angegebene Eigenschaften speichern
    */
    
    		public void initialize(Properties props) {
    // Protokollfunktion erstellen
    				logger = new BDSFWLogger(props);
    		
    				if (logger.isDebugEnabled())
    						logger.debug("entering TransactionListInputStream.initialize()");
    				properties = props;
    
    	}
    
    
    // In dieser Methode müssen Sie die Geschäftslogik zur Verarbeitung
    // der Lesezeichenfolge hinzufügen
    		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-Methode, die die Lesezeichenfolge syntaktisch analysiert und ein
     // internes Objekt erstellt, das von anderen Codeabschnitten verwendet werden kann
    		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 {
    				// Verhinderung der Aktivierung für dieses Beispiel
    
    	}
    
    }
    </codeblock>
  2. Referenzieren Sie die Klasse, die Sie im vorherigen Schritt erstellt haben, zusammen mit der Unterstützungsklasse in der xJCL.

xJCL-Beispiel

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

Nächste Schritte

Installieren Sie die Anwendung.

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tgrid_btchpttrnex
Dateiname:tgrid_btchpttrnex.html