+

Search Tips   |   Advanced Search

JDBCCallableStatementWriterPattern

This pattern is used to implement the business logic of outputting data to a JDBC connection using a stored procedure. The administrative tasks of opening and closing the connection are done by the batch framework.


Supporting classes

  1. JDBCCallableStatementWriter

    This class is referenced when the usage pattern of our JDBC input stream retrieves a single result from a query. The query and results are discarded after every iteration of the step. This class differs from JBDCWriter in that it uses a callable statement instead of a prepared statement.

  2. LocalJDBCCallableStatementWriter

    This class is referenced when data is read from a local database.


Required properties

The following properties are required for the pattern.

Property Value JDBCCallableStatementWriter LocalJDBCCallableStatementWriter
PATTERN_IMPL_CLASS The class implementing the JDBCCallableStatementReaderPattern interface Applicable Applicable
ds_jndi_name The data source JNDI name. Applicable Applicable
jdbc_url The JDBC URL. For example, jdbc:derby:C:\\mysample\\CREDITREPORT. Not applicable Applicable
jdbc_driver The JDBC driver. For example, org.apache.derby.jdbc.EmbeddedDriver Not applicable Applicable
userid The user ID for the database. Not applicable Applicable
pswd The user password. Not applicable Applicable


Optional properties

The following properties are optional for the pattern.

Property name Value Description JDBCCallableStatementWriter LocalJDBCCallableStatementWriter
debug true or false. The default is false. Enable detailed tracing on this batch data stream. Applicable Applicable
batch_interval Default value is 20. Make the value less than the checkpoint interval for record-based checkpointing. Denotes the number of SQL updates to batch before committing. Applicable Applicable
EnablePerformanceMeasurement true or false. The default is false. Calculates the total time spent in the batch data streams and the processRecord method, if we are using the GenericXDBatchStep. Applicable Applicable
EnableDetailedPerformanceMeasurement true or false. The default is false. Provides a more detailed breakdown of time spent in each method of the batch data streams. Applicable Applicable


Interface definition

public interface JDBCCallableStatementWriterPattern {

	/**
		  * This method is invoked during the job setup phase. 
		  * 
		  * @param props properties provided in the xJCL 
		  */
	public void initialize(Properties props);
	
	/**
	 * This is typically an Update query used to write data into the database
	 * @return
	 */
	public String getCallableStatementSQL();
	
	/**
	 * The parent class BDSCallableStatementJDBCWriter creates a new CallableStatement and 	 * passes it to this method. This method populates the CallableStatement
	 * with appropriate values and returns it to the parent class for execution
	 * @param pstmt
	 * @param record
	 * @return
	 */
	public CallableStatement writeRecord(CallableStatement pstmt, Object record);
}


JDBCCallableStatementWriter xJCL example

<batch-data-streams>
<bds>
<logical-name>outputStream</logical-name>
<props>
<prop name="IMPLCLASS" value="com.ibm.websphere.batch.samples.tests.bds.EchoWriter"/>
<prop name="ds_jndi_name" value="jdbc/IVTdbxa"/>
<prop name="batch_interval" value="2"/>
<prop name="EnablePerformanceMeasurement" value="true"/>
<prop name="debug" value="false"/> 
</props>
<impl-class>com.ibm.websphere.batch.devframework.datastreams.patterns.JDBCCallableStatementWriter</impl-class>
</bds>
</batch-data-streams>


Related:

  • Batch data stream framework and patterns
  • Use the batch data stream framework
  • JDBCWriterPattern
  • ByteReaderPattern
  • ByteWriterPattern
  • FileReaderPattern
  • FileWriterPattern
  • (ZOS) RecordOrientedDatasetReaderPattern
  • (ZOS) RecordOrientedDataSetWriterPattern
  • JPAReaderPattern
  • JPAWriterPattern