JDBCReaderPattern

Dieses Muster wird verwendet, um über eine JDBC-Verbindung (Java™ Database Connectivity) Daten aus einer Datenbank abzurufen.

Unterstützungsklassen

  1. CursorHoldableJDBCReader
    Diese Klasse wird referenziert, wenn das Verwendungsmuster Ihres JDBC-Eingabedatenstroms zu Beginn des Abschnitts eine Ergebnismenge abruft und dann während der gesamten Logik für Abschnittsverarbeitung iteriert wird. Der CursorHoldableJDBCReader verwendet eine Stateful-Session-Bean mit einer Nicht-XA-Datenquelle und einem Cursor mit Klausel WITH HOLD. Der CursorHoldableJDBCReader ist ein Muster, das so implementiert wird, dass der Cursor beim Festschreiben der Transaktion nicht verloren geht. Daher müssen Ergebnismengen nicht nach jedem Prüfpunkt erneut gefüllt werden, was die Leistung verbessert. Zur Verwendung von CursorHoldableJDBCReader müssen Sie CursorHoldableSessionBean in Ihre Anwendung packen. Fügen Sie zum Erstellen des Pakets die Eigenschaft nonxadsjndiname=JNDI-Name_einer_Nicht-XA-Datenquelle_für_Datenbank zu der Eigenschaftendatei hinzu, die vom BatchPackager verwendet wird. Beispiel: nonxadsjndiname=jdbc/nonxads. Wenn Sie mehrere Nicht-XA-Datenquellen hinzufügen möchten, geben Sie Folgendes ein: nonxadsjndiname=<JNDI-Name 1>;<JNDI-Name 2>...
    Einschränkung: Gegenwärtig ist der Name der Ressourcenreferenz der JDBC-Datenquelle mit dem JNDI-Namen (Java Naming and Directory Interface) identisch.
  2. JDBCReader

    Diese Klasse wird referenziert, wenn das Verwendungsmuster Ihres JDBC-Eingabedatenstroms eine einzelne Ergebnismenge aus einer Abfrage abruft, die nach jeder Iteration des Schritts verwendet und gelöscht wird.

  3. LocalJDBCReader

    Diese Klasse wird referenziert, wenn Daten aus einer lokalen Datenbank gelesen werden.

Erforderliche Eigenschaften

Die folgenden Eigenschaften sind für das Muster erforderlich.
Tabelle 1. Erforderliche Eigenschaften. In der Tabelle sind die erforderlichen Eigenschaften und deren Werte aufgelistet. Außerdem enthält die Tabelle Angaben dazu, ob die Klasse "LocalJDBCReader", die Klasse "CursorHoldableJDBCReader" oder die Klasse "JDBCReader" gültig ist.
Eigenschaft Wert LocalJDBCReader CursorHoldableJDBCReader JDBCReader
PATTERN_IMPL_CLASS Klasse, die die Schnittstelle JDBCReaderPattern implementiert Zutreffend Zutreffend Zutreffend
ds_jndi_name JNDI-Name der Datenquelle. Zutreffend Nicht zutreffend Zutreffend
jdbc_url Der JDBC-URL, z. B. jdbc:derby:C:\\mysample\\CREDITREPORT. Zutreffend Nicht zutreffend Nicht zutreffend
jdbc_driver Der JDBC-Treiber. Beispiel: org.apache.derby.jdbc.EmbeddedDriver Zutreffend Nicht zutreffend Nicht zutreffend
userid Die Benutzer-ID für die Datenbank. Beispiel: Myid. Zutreffend Nicht zutreffend Nicht zutreffend
pswd Benutzerkennwort, z. B. mypwd. Nur LocalJDBCReader. Zutreffend Nicht zutreffend Nicht zutreffend

Optionale Eigenschaften

Die folgenden Eigenschaften sind für das Muster optional.
Tabelle 2. Optionale Eigenschaften. In der Tabelle sind die optionalen Eigenschaften, deren Werte und Beschreibungen aufgelistet. Außerdem enthält die Tabelle Angaben dazu, ob die Klasse "LocalJDBCReader", die Klasse "CursorHoldableJDBCReader" oder die Klasse "JDBCReader" gültig ist.
Eigenschaftsname Wert Beschreibung LocalJDBCReader CursorHoldableJDCReader JDBCReader
CursorHoldabilityEnabled true oder false (der Standardwert ist false) Aktiviert die Cursoroffenhaltung für diesen BDS-Reader. Zutreffend Zutreffend Zutreffend
debug true oder false (der Standardwert ist false) Aktiviert detailliertes Tracing in diesem Stapeldatenstrom. Zutreffend Zutreffend Zutreffend
EnablePerformanceMeasurement true oder false (der Standardwert ist false) Berechnet die Gesamtzeit in den Stapeldatenströmen und in der Methode "processRecord" bei Verwendung des GenericXDBatchStep. Zutreffend Zutreffend Zutreffend
EnableDetailedPerformanceMeasurement true oder false (der Standardwert ist false) Bietet eine detailliertere Aufgliederung der Zeit pro Methode des Stapeldatenstroms. Zutreffend Zutreffend Zutreffend

Schnittstellendefinition

public interface JDBCReaderPattern {

	/**
	 	 * Diese Methode wird während der Konfiguration des Jobs aufgerufen.
	 * 
	 	 * @param props - Eigenschaften, die über xJCL übergeben werden
	 */
	
	public void initialize(Properties props);
	
	/**
	 * Diese Methode muss Werte für die verschiedenen Spalten der aktuellen Zeile aus dem
  * entsprechenden resultset-Objekt abrufen. Normalerweise werden diese Daten in ein
  * temporäres, zurückzugebendes Objekt gestellt.
	 	 * @param resultSet
	 * @return 
	 */
		public Object fetchRecord(ResultSet resultSet);
	
	/**
	 	 * Diese Methode sollte eine SQL-Abfrage zurückgeben, die bei der Konfiguration
  * des Datenstroms zum Abrufen aller relevanten, im Rahmen der Jobabschnitte
  * zu verarbeitenden Daten verwendet werden.
	 	 * @return - Objekt, das während des Verarbeitungsschritts verwendet werden soll.
	 */
		public String getInitialLookupQuery();
	
	/**
	 	 * Diese Methode wird beim Jobneustart aufgerufen. Das Neustarttoken (restartToken)
  * muss verwendet werden, um eine SQL-Abfrage zum Abrufen zuvor nicht verarbeiteter
  * Datensätze zu erstellen. 
	 * Normalerweise ist das restartToken der Primärschlüssel in der Tabelle, und
  * die Abfrage ruft alle Zeilen mit Primärschlüsselwert > restartToken ab.
	 	 * @param - restartToken
	 	 * @return - Abfrage bei Neustart
	 */
		public String getRestartQuery(String restartToken);
	
	/**
	 	 * Diese Methode wird aufgerufen, bevor ein Prüfpunkt abgerufen wird.
	 	 * @return - Die Methode muss einen Zeichenfolgewert zurückgeben, der
  * den letzten vom Datenstrom gelesenen Datensatz angibt.
	 */
	public  String getRestartTokens();
		
}

CursorHoldableJDBCReader-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="ds_jndi_name" value="jdbc/fvtdb"/>
<prop name="debug" value="true"/>
<prop name="DEFAULT_APPLICATION_NAME" value="XDCGIVT"/> 
</props>
<impl-class>com.ibm.websphere.batch.devframework.datastreams.patterns.CursorHoldableJDBCReader</impl-class>
</bds>
</batch-data-streams>

LocalJDBCReader-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="jdbc_url" value="jdbc:derby:C:\\mysample\\CREDITREPORT"/>
<prop name="jdbc_driver" value="org.apache.derby.jdbc.EmbeddedDriver"/>
<prop name="user_id" value="myuserid"/>
<prop name="pswd" value="mypswd"/>
<prop name="debug" value="true"/>
</props>
<impl-class>com.ibm.websphere.batch.devframework.datastreams.patterns.LocalJDBCReader</impl-class>
</bds>
</batch-data-streams>

Symbol, das den Typ des Artikels anzeigt. Referenzartikel



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