JDBCCallableStatementReaderPattern
Ce masque est utilisé pour implémenter la logique métier du traitement des données d'une connexion JDBC (Java™ Database Connectivity) à l'aide d'une procédure mémorisée. Les tâches administratives d'ouverture et de fermeture de la connexion sont effectuées par l'infrastructure par lots.
Classes prises en charge
- JDBCCallableStatementReader
Cette classe est référencée lorsque le masque d'utilisation de votre flux en entrée JDBC extrait un seul résultat d'une requête. La requête et les résultats sont ignorés après chaque itération de l'étape. La seule différence entre cette classe et JDBCReader est la suivante : elle utilise une instruction pouvant être appelée à la place d'une instruction préparée.
- LocalJDBCCallableStatementReader
Cette classe est référencée lorsque des données sont lues à partir d'une base de données locale.
Propriétés requises
Les propriétés suivantes sont
requises pour le masque.
Propriété | valeur | JDBCCallableStatementReader | LocalJDBCCallableStatementReader |
---|---|---|---|
PATTERN_IMPL_CLASS | Classe implémentant l'interface JDBCCallableStatementReaderPattern. | Applicable | Applicable |
ds_jndi_name | Nom JDNI de la source de données. | Applicable | Applicable |
jdbc_url | Adresse URL JDBC. Par exemple, jdbc:derby:C:\\mysample\\CREDITREPORT. | Non applicable | Applicable |
jdbc_driver | Pilote JDBC. Par exemple, org.apache.derby.jdbc.EmbeddedDriver | Non applicable | Applicable |
userid | ID utilisateur de la base de données. | Non applicable | Applicable |
pswd | Le mot de passe de l'utilisateur. | Non applicable | Applicable |
Propriétés facultatives
Les propriétés suivantes sont
optionnelles pour le masque.
Nom de la propriété | valeur | Description | JDBCCallableStatementReader | LocalJDBCCallableStatementReader |
---|---|---|---|---|
CursorHoldabilityEnabled | true ou false (la valeur par défaut est false) | Active la mise en suspens du curseur pour ce lecteur BDS | Applicable | Applicable |
debug | true ou false. La valeur par défaut est false. | Active le traçage détaillé sur ce flux de données par lots. | Applicable | Applicable |
EnablePerformanceMeasurement | true ou false. La valeur par défaut est false. | Calcule le temps écoulé dans les flux de données par lots et la méthode processRecord, si vous utilisez GenericXDBatchStep. | Applicable | Applicable |
EnableDetailedPerformanceMeasurement | true ou false. La valeur par défaut est false. | Fournit un arrêt plus détaillé du temps écoulé dans chaque méthode des flux de données par lots. | Applicable | Applicable |
Définition de l'interface
public interface JDBCCallableStatementReaderPattern {
/**
* This method is invoked during the job setup phase.
*
* @param props properties provided in the xJCL
*/
public void initialize(Properties props);
/**
* This method should retrieve values for the various columns for the current row from
* the given resultset object. Typically this data would be used to populate an
* intermediate object which would be returned
* @param resultSet
* @return
*/
public Object fetchRecord(ResultSet resultSet);
/**
* This method should return a ResultSet used by the stream to retrieve all relevant
* data that would be processed part of the job steps.
*/
public ResultSet getResultSet(CallableStatement cstmt) throws SQLException ;
/**
* This method should return a Callable statement that will be used during setup of the
* stream to retrieve all relevant data that would be processed as part of the job steps.
* @return object to be used during process step.
*/
public CallableStatement getInitialCallableStatement(Connection con);
/**
* This method gets called during Job Restart. The restart token should be used to create
* a Callable Statement that will retrieve previously unprocessed records.
* Typically the restart token would be the primary key in the table and the query would
* get all rows with primary key value > restarttoken
* @param restartToken
* @return The restart query
*/
public CallableStatement getRestartCallableStatement(Connection con,String restartToken);
/**
* This method gets called just before a checkpoint is taken.
* @return The method should return a string value identifying the last record read by the stream.
*/
public String getRestartTokens();
}
Exemple JDBCCallableStatementReader xJCL
<batch-data-streams>
<bds>
<logical-name>inputStream</logical-name>
<props>
<prop name="IMPLCLASS" value="com.ibm.websphere.batch.samples.tests.bds.EchoReader"/>
<prop name="ds_jndi_name" value="jdbc/echojndi"/>
<prop name="debug" value="false"/>
<prop name="EnablePerformanceMeasurement" value="true"/>
</props>
<impl-class>com.ibm.websphere.batch.devframework.datastreams.patterns.JDBCCallableStatementReader</impl-class>
</bds>
</batch-data-streams>