Class JBatchJDBCPersistenceManager
- java.lang.Object
-
- fish.payara.jbatch.persistence.rdbms.JBatchJDBCPersistenceManager
-
- All Implemented Interfaces:
com.ibm.jbatch.container.services.IPersistenceManagerService,com.ibm.jbatch.spi.services.IBatchServiceBase,JDBCQueryConstants,OracleJDBCConstants
- Direct Known Subclasses:
DB2PersistenceManager,MySqlPersistenceManager,OraclePersistenceManager,PostgresPersistenceManager,SQLServerPersistenceManager
public class JBatchJDBCPersistenceManager extends Object implements com.ibm.jbatch.container.services.IPersistenceManagerService, JDBCQueryConstants, OracleJDBCConstants
Base Persistence Manager Class. All Persistence Managers extend this base persistence manager class
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,String>createH2Stringsprotected DataSourcedataSourceprotected StringjndiNameprotected Stringprefixprotected Map<String,String>queryStringsprotected RequestTracingServicerequestTracingprotected Stringschemaprotected Stringsuffixprotected Map<String,String>tableNames-
Fields inherited from interface fish.payara.jbatch.persistence.rdbms.JDBCQueryConstants
APPTAG, CHECKPOINT_TABLE_KEY, CREATE_JOB_EXECUTION_ENTRY, CREATE_JOB_INSTANCE, CREATE_JOBSTATUS, CREATE_STEP_EXECUTION, CREATE_STEP_STATUS, CREATE_SUB_JOB_INSTANCE, DELETE_JOB_EXECUTIONS, DELETE_JOBS, DELETE_STEP_EXECUTIONS, EXECUTION_INSTANCE_TABLE_KEY, GET_JOB_STATUS, GET_JOB_STATUS_FROM_EXECUTIONS, GET_MOST_RECENT_EXECUTION_ID, GET_PARAMETERS, GET_STEP_STATUS, GET_TAGNAME, H2_CREATE_TABLE_CHECKPOINTDATA, H2_CREATE_TABLE_EXECUTIONINSTANCEDATA, H2_CREATE_TABLE_JOBINSTANCEDATA, H2_CREATE_TABLE_JOBSTATUS, H2_CREATE_TABLE_STEPINSTANCEDATA, H2_CREATE_TABLE_STEPSTATUS, INSERT_CHECKPOINTDATA, JOB_INSTANCE_ID_BY_EXECUTION_ID, JOB_INSTANCE_TABLE_KEY, JOB_OPERATOR_GET_EXTERNAL_JOB_INSTANCE_DATA, JOB_OPERATOR_GET_JOB_EXECUTION, JOB_OPERATOR_GET_JOB_EXECUTIONS, JOB_OPERATOR_GET_RUNNING_EXECUTIONS, JOB_OPERATOR_QUERY_JOB_EXECUTION_BATCH_STATUS, JOB_OPERATOR_QUERY_JOB_EXECUTION_EXIT_STATUS, JOB_OPERATOR_QUERY_JOB_EXECUTION_JOB_ID, JOB_OPERATOR_QUERY_JOB_EXECUTION_TIMESTAMP, JOB_STATUS_TABLE_KEY, JOBOPERATOR_GET_JOB_INSTANCE_COUNT, JOBOPERATOR_GET_JOB_INSTANCE_IDS, LOCK_CHECKPOINTDATA, MARK_JOB_STARTED, MOST_RECENT_STEPS_FOR_JOB, Q_SET_SCHEMA, SELECT_CHECKPOINTDATA, SELECT_JOBINSTANCEDATA_APPTAG, SELECT_JOBINSTANCEDATA_COUNT, SELECT_JOBINSTANCEDATA_IDS, STEP_EXECUTION_INSTANCE_TABLE_KEY, STEP_EXECUTIONS_BY_STEP_ID, STEP_EXECUTIONS_FOR_JOB_EXECUTION, STEP_STATUS_TABLE_KEY, UPDATE_BATCH_STATUS_ONLY, UPDATE_CHECKPOINTDATA, UPDATE_FINAL_STATUS_AND_TIMESTAMP, UPDATE_JOBSTATUS, UPDATE_STEP_EXECUTION_WITH_METRICS, UPDATE_STEP_STATUS, UPDATE_WITH_FINAL_PARTITION_STEP_EXECUTION
-
Fields inherited from interface fish.payara.jbatch.persistence.rdbms.OracleJDBCConstants
CREATE_CHECKPOINTDATA_INDEX, CREATE_CHECKPOINTDATA_INDEX_KEY, CREATE_EXECUTIONINSTANCEDATA_SEQ, CREATE_EXECUTIONINSTANCEDATA_TRG, CREATE_JOBINSTANCEDATA_SEQ, CREATE_JOBINSTANCEDATA_TRG, CREATE_STEPINSTANCEDATA_SEQ, CREATE_STEPINSTANCEDATA_TRG, CREATE_TABLE_CHECKPOINTDATA, CREATE_TABLE_EXECUTIONINSTANCEDATA, CREATE_TABLE_JOBINSTANCEDATA, CREATE_TABLE_JOBSTATUS, CREATE_TABLE_STEPINSTANCEDATA, CREATE_TABLE_STEPSTATUS, DEFAULT_EXECUTIONINSTANCEDATA_TRG_KEY, DEFAULT_JOBINSTANCEDATA_TRG_KEY, DEFAULT_STEPINSTANCEDATA_TRG_KEY, EXECUTIONINSTANCEDATA_SEQ_KEY, EXECUTIONINSTANCEDATA_TRG_KEY, JOBINSTANCEDATA_SEQ_KEY, JOBINSTANCEDATA_TRG_KEY, STEPINSTANCEDATA_SEQ_KEY, STEPINSTANCEDATA_TRG_KEY
-
-
Constructor Summary
Constructors Constructor Description JBatchJDBCPersistenceManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancheckIfTableExists(DataSource dSource, String tableName, String schemaName)Note: H2 has a configuration setting DATABASE_TO_UPPER which is set to true per default.protected voidcheckTables()Check if the h2 jbatch tables exist, if not create themprotected voidcleanupConnection(Connection conn, PreparedStatement statement)closes connection and statementprotected voidcleanupConnection(Connection conn, ResultSet rs, PreparedStatement statement)closes connection, result set and statementvoidcreateCheckpointData(com.ibm.jbatch.container.persistence.CheckpointDataKey key, com.ibm.jbatch.container.persistence.CheckpointData value)com.ibm.jbatch.container.jobinstance.RuntimeFlowInSplitExecutioncreateFlowInSplitExecution(jakarta.batch.runtime.JobInstance jobInstance, jakarta.batch.runtime.BatchStatus batchStatus)com.ibm.jbatch.container.jobinstance.RuntimeJobExecutioncreateJobExecution(jakarta.batch.runtime.JobInstance jobInstance, Properties jobParameters, jakarta.batch.runtime.BatchStatus batchStatus)jakarta.batch.runtime.JobInstancecreateJobInstance(String name, String apptag, String jobXml)com.ibm.jbatch.container.status.JobStatuscreateJobStatus(long jobInstanceId)protected longcreateRuntimeJobExecutionEntry(jakarta.batch.runtime.JobInstance jobInstance, Properties jobParameters, jakarta.batch.runtime.BatchStatus batchStatus, Timestamp timestamp)com.ibm.jbatch.container.jobinstance.StepExecutionImplcreateStepExecution(long rootJobExecId, com.ibm.jbatch.container.context.impl.StepContextImpl stepContext)protected com.ibm.jbatch.container.jobinstance.StepExecutionImplcreateStepExecution(long rootJobExecId, String batchStatus, String exitStatus, String stepName, long readCount, long writeCount, long commitCount, long rollbackCount, long readSkipCount, long processSkipCount, long filterCount, long writeSkipCount, Timestamp startTime, Timestamp endTime, Serializable persistentData)com.ibm.jbatch.container.status.StepStatuscreateStepStatus(long stepExecId)jakarta.batch.runtime.JobInstancecreateSubJobInstance(String name, String apptag)protected voidcreateTableIfNotExists(String tableName, String createTableStatement)Create the jbatch tables if they do not existvoidcreateTables(DataSource dataSource, BatchRuntimeConfiguration batchRuntimeConfiguration)protected SerializabledeserializeObject(byte[] buffer)This method is used to de-serialized a table BLOB field to its original object form.protected voidexecuteStatement(String statement)Executes the provided SQL statementcom.ibm.jbatch.container.persistence.CheckpointDatagetCheckpointData(com.ibm.jbatch.container.persistence.CheckpointDataKey key)protected ConnectiongetConnection()Get a connection from the datasourceprotected ConnectiongetConnectionToDefaultSchema()StringgetJobCurrentTag(long jobInstanceId)longgetJobInstanceIdByExecutionId(long executionId)com.ibm.jbatch.container.status.JobStatusgetJobStatus(long instanceId)com.ibm.jbatch.container.status.JobStatusgetJobStatusFromExecution(long executionId)longgetMostRecentExecutionId(long jobInstanceId)Map<String,jakarta.batch.runtime.StepExecution>getMostRecentStepExecutionsForJobInstance(long instanceId)PropertiesgetParameters(long executionId)protected StringgetPartitionLevelJobInstanceWildCard(long rootJobExecutionId, String stepName)Obviously would be nice if the code writing this special format were in the same place as this code reading it.protected Map<String,String>getSharedQueryMap(com.ibm.jbatch.spi.services.IBatchConfig batchConfig)Method invoked to insert the query strings used by all database types into a hashmapprotected Map<String,String>getSharedTableMap()Method invoked to insert the table key strings into a hashmap and to add the prefix and suffix to the table namesjakarta.batch.runtime.StepExecutiongetStepExecutionByStepExecutionId(long stepExecId)List<jakarta.batch.runtime.StepExecution>getStepExecutionsForJobExecution(long execid)com.ibm.jbatch.container.status.StepStatusgetStepStatus(long instanceId, String stepName)intgetTableRowCount(ResultSet resultSet)Retrieve the number of rows in the resultset.StringgetTagName(long jobExecutionId)voidinit(com.ibm.jbatch.spi.services.IBatchConfig batchConfig)protected <T> voidinsertCheckpointData(Object key, T value)Insert data to DB tableprotected booleanisSchemaValid()Checks if the schema exists in the database.Map<Long,String>jobOperatorGetExternalJobInstanceData()com.ibm.jbatch.container.services.IJobExecutionjobOperatorGetJobExecution(long jobExecutionId)List<com.ibm.jbatch.container.services.IJobExecution>jobOperatorGetJobExecutions(long jobInstanceId)intjobOperatorGetJobInstanceCount(String jobName)intjobOperatorGetJobInstanceCount(String jobName, String appTag)List<Long>jobOperatorGetJobInstanceIds(String jobName, int start, int count)List<Long>jobOperatorGetJobInstanceIds(String jobName, String appTag, int start, int count)Set<Long>jobOperatorGetRunningExecutions(String jobName)StringjobOperatorQueryJobExecutionBatchStatus(long key)StringjobOperatorQueryJobExecutionExitStatus(long key)longjobOperatorQueryJobExecutionJobInstanceId(long executionID)TimestampjobOperatorQueryJobExecutionTimestamp(long key, com.ibm.jbatch.container.services.IPersistenceManagerService.TimestampType timestampType)protected voidlogException(String msg, Exception e)voidmarkJobStarted(long key, Timestamp startTS)voidpurge(String apptag)protected com.ibm.jbatch.container.persistence.CheckpointDataqueryCheckpointData(Object key)select data from DB tableprotected com.ibm.jbatch.container.services.IJobExecutionreadJobExecutionRecord(ResultSet rs)protected byte[]serializeObject(Serializable theObject)This method is used to serialized an object saved into a table BLOB field.StringsetDefaultSchema()Set the default schema to the username obtained from the connection based on the datasourceprotected voidsetSchemaOnConnection(Connection connection)Set the schema to the default schema or the schema defined at batch configuration timevoidshutdown()voidupdateBatchStatusOnly(long key, jakarta.batch.runtime.BatchStatus batchStatus, Timestamp updates)voidupdateCheckpointData(com.ibm.jbatch.container.persistence.CheckpointDataKey key, com.ibm.jbatch.container.persistence.CheckpointData value)protected voidupdateCheckpointData(Object key, com.ibm.jbatch.container.persistence.CheckpointData value)update data in DB tablevoidupdateJobStatus(long instanceId, com.ibm.jbatch.container.status.JobStatus jobStatus)voidupdateStepExecution(com.ibm.jbatch.container.context.impl.StepContextImpl stepContext)protected voidupdateStepExecutionWithMetrics(com.ibm.jbatch.container.context.impl.StepContextImpl stepContext, long readCount, long writeCount, long commitCount, long rollbackCount, long readSkipCount, long processSkipCount, long filterCount, long writeSkipCount)voidupdateStepStatus(long stepExecutionId, com.ibm.jbatch.container.status.StepStatus stepStatus)voidupdateWithFinalExecutionStatusesAndTimestamps(long key, jakarta.batch.runtime.BatchStatus batchStatus, String exitStatus, Timestamp updates)voidupdateWithFinalPartitionAggregateStepExecution(long rootJobExecutionId, com.ibm.jbatch.container.context.impl.StepContextImpl stepContext)
-
-
-
Field Detail
-
dataSource
protected DataSource dataSource
-
jndiName
protected String jndiName
-
prefix
protected String prefix
-
suffix
protected String suffix
-
schema
protected String schema
-
requestTracing
protected RequestTracingService requestTracing
-
-
Method Detail
-
init
public void init(com.ibm.jbatch.spi.services.IBatchConfig batchConfig) throws com.ibm.jbatch.container.exception.BatchContainerServiceException- Specified by:
initin interfacecom.ibm.jbatch.spi.services.IBatchServiceBase- Throws:
com.ibm.jbatch.container.exception.BatchContainerServiceException
-
getCheckpointData
public com.ibm.jbatch.container.persistence.CheckpointData getCheckpointData(com.ibm.jbatch.container.persistence.CheckpointDataKey key)
- Specified by:
getCheckpointDatain interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
updateCheckpointData
public void updateCheckpointData(com.ibm.jbatch.container.persistence.CheckpointDataKey key, com.ibm.jbatch.container.persistence.CheckpointData value)- Specified by:
updateCheckpointDatain interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
createCheckpointData
public void createCheckpointData(com.ibm.jbatch.container.persistence.CheckpointDataKey key, com.ibm.jbatch.container.persistence.CheckpointData value)- Specified by:
createCheckpointDatain interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
setDefaultSchema
public String setDefaultSchema() throws SQLException
Set the default schema to the username obtained from the connection based on the datasource- Returns:
- the name of the default database schema
- Throws:
SQLException
-
isSchemaValid
protected boolean isSchemaValid() throws SQLExceptionChecks if the schema exists in the database. If not connect to the default schema- Returns:
- true if the schema exists, false otherwise.
- Throws:
SQLException
-
checkTables
protected void checkTables() throws SQLExceptionCheck if the h2 jbatch tables exist, if not create them- Throws:
SQLException
-
createTables
public void createTables(DataSource dataSource, BatchRuntimeConfiguration batchRuntimeConfiguration)
-
createTableIfNotExists
protected void createTableIfNotExists(String tableName, String createTableStatement) throws SQLException
Create the jbatch tables if they do not exist- Parameters:
tableName-createTableStatement-- Throws:
SQLException
-
checkIfTableExists
public boolean checkIfTableExists(DataSource dSource, String tableName, String schemaName)
Note: H2 has a configuration setting DATABASE_TO_UPPER which is set to true per default. So any table name is converted to upper case which is why you need to query for the table in upper case (or set DATABASE_TO_UPPER to false).- Parameters:
dSource-tableName-schemaName-
-
getTableRowCount
public int getTableRowCount(ResultSet resultSet) throws SQLException
Retrieve the number of rows in the resultset. This method is used to check if a table exists in a given schema- Throws:
SQLException
-
executeStatement
protected void executeStatement(String statement) throws SQLException
Executes the provided SQL statement- Parameters:
statement-- Throws:
SQLException
-
getConnection
protected Connection getConnection() throws SQLException
Get a connection from the datasource- Returns:
- the database connection and sets the schema
- Throws:
SQLException
-
getConnectionToDefaultSchema
protected Connection getConnectionToDefaultSchema() throws SQLException
- Returns:
- the database connection. The schema is set to whatever default is used by the datasource.
- Throws:
SQLException
-
setSchemaOnConnection
protected void setSchemaOnConnection(Connection connection) throws SQLException
Set the schema to the default schema or the schema defined at batch configuration time- Parameters:
connection-- Throws:
SQLException
-
queryCheckpointData
protected com.ibm.jbatch.container.persistence.CheckpointData queryCheckpointData(Object key)
select data from DB table- Parameters:
key- - the IPersistenceDataKey object- Returns:
- List of serializable objects store in the DB table Ex. select id, obj from tablename where id = ?
-
insertCheckpointData
protected <T> void insertCheckpointData(Object key, T value)
Insert data to DB table- Parameters:
key- - the IPersistenceDataKey objectvalue- - serializable object to store Ex. insert into tablename values(?, ?)
-
updateCheckpointData
protected void updateCheckpointData(Object key, com.ibm.jbatch.container.persistence.CheckpointData value)
update data in DB table- Parameters:
value- - serializable object to storekey- - the IPersistenceDataKey objectquery- - SQL statement to execute. Ex. update tablename set obj = ? where id = ?
-
cleanupConnection
protected void cleanupConnection(Connection conn, ResultSet rs, PreparedStatement statement)
closes connection, result set and statement- Parameters:
conn- - connection object to closers- - result set object to closestatement- - statement object to close
-
cleanupConnection
protected void cleanupConnection(Connection conn, PreparedStatement statement)
closes connection and statement- Parameters:
conn- - connection object to closestatement- - statement object to close
-
jobOperatorGetJobInstanceCount
public int jobOperatorGetJobInstanceCount(String jobName, String appTag)
- Specified by:
jobOperatorGetJobInstanceCountin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
jobOperatorGetJobInstanceCount
public int jobOperatorGetJobInstanceCount(String jobName)
- Specified by:
jobOperatorGetJobInstanceCountin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
jobOperatorGetJobInstanceIds
public List<Long> jobOperatorGetJobInstanceIds(String jobName, String appTag, int start, int count)
- Specified by:
jobOperatorGetJobInstanceIdsin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
jobOperatorGetJobInstanceIds
public List<Long> jobOperatorGetJobInstanceIds(String jobName, int start, int count)
- Specified by:
jobOperatorGetJobInstanceIdsin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
jobOperatorGetExternalJobInstanceData
public Map<Long,String> jobOperatorGetExternalJobInstanceData()
- Specified by:
jobOperatorGetExternalJobInstanceDatain interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
jobOperatorQueryJobExecutionTimestamp
public Timestamp jobOperatorQueryJobExecutionTimestamp(long key, com.ibm.jbatch.container.services.IPersistenceManagerService.TimestampType timestampType)
- Specified by:
jobOperatorQueryJobExecutionTimestampin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
jobOperatorQueryJobExecutionBatchStatus
public String jobOperatorQueryJobExecutionBatchStatus(long key)
- Specified by:
jobOperatorQueryJobExecutionBatchStatusin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
jobOperatorQueryJobExecutionExitStatus
public String jobOperatorQueryJobExecutionExitStatus(long key)
- Specified by:
jobOperatorQueryJobExecutionExitStatusin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
jobOperatorQueryJobExecutionJobInstanceId
public long jobOperatorQueryJobExecutionJobInstanceId(long executionID) throws jakarta.batch.operations.NoSuchJobExecutionException- Specified by:
jobOperatorQueryJobExecutionJobInstanceIdin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService- Throws:
jakarta.batch.operations.NoSuchJobExecutionException
-
getParameters
public Properties getParameters(long executionId) throws jakarta.batch.operations.NoSuchJobExecutionException
- Specified by:
getParametersin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService- Throws:
jakarta.batch.operations.NoSuchJobExecutionException
-
getMostRecentStepExecutionsForJobInstance
public Map<String,jakarta.batch.runtime.StepExecution> getMostRecentStepExecutionsForJobInstance(long instanceId)
- Specified by:
getMostRecentStepExecutionsForJobInstancein interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
getStepExecutionsForJobExecution
public List<jakarta.batch.runtime.StepExecution> getStepExecutionsForJobExecution(long execid)
- Specified by:
getStepExecutionsForJobExecutionin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
getStepExecutionByStepExecutionId
public jakarta.batch.runtime.StepExecution getStepExecutionByStepExecutionId(long stepExecId)
- Specified by:
getStepExecutionByStepExecutionIdin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
updateBatchStatusOnly
public void updateBatchStatusOnly(long key, jakarta.batch.runtime.BatchStatus batchStatus, Timestamp updates)- Specified by:
updateBatchStatusOnlyin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
updateWithFinalExecutionStatusesAndTimestamps
public void updateWithFinalExecutionStatusesAndTimestamps(long key, jakarta.batch.runtime.BatchStatus batchStatus, String exitStatus, Timestamp updates)- Specified by:
updateWithFinalExecutionStatusesAndTimestampsin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
markJobStarted
public void markJobStarted(long key, Timestamp startTS)- Specified by:
markJobStartedin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
jobOperatorGetJobExecution
public com.ibm.jbatch.container.services.IJobExecution jobOperatorGetJobExecution(long jobExecutionId)
- Specified by:
jobOperatorGetJobExecutionin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
jobOperatorGetJobExecutions
public List<com.ibm.jbatch.container.services.IJobExecution> jobOperatorGetJobExecutions(long jobInstanceId)
- Specified by:
jobOperatorGetJobExecutionsin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
readJobExecutionRecord
protected com.ibm.jbatch.container.services.IJobExecution readJobExecutionRecord(ResultSet rs) throws SQLException, IOException, ClassNotFoundException
-
jobOperatorGetRunningExecutions
public Set<Long> jobOperatorGetRunningExecutions(String jobName)
- Specified by:
jobOperatorGetRunningExecutionsin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
getJobCurrentTag
public String getJobCurrentTag(long jobInstanceId)
- Specified by:
getJobCurrentTagin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
purge
public void purge(String apptag)
- Specified by:
purgein interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
getJobStatusFromExecution
public com.ibm.jbatch.container.status.JobStatus getJobStatusFromExecution(long executionId)
- Specified by:
getJobStatusFromExecutionin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
getJobInstanceIdByExecutionId
public long getJobInstanceIdByExecutionId(long executionId) throws jakarta.batch.operations.NoSuchJobExecutionException- Specified by:
getJobInstanceIdByExecutionIdin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService- Throws:
jakarta.batch.operations.NoSuchJobExecutionException
-
serializeObject
protected byte[] serializeObject(Serializable theObject) throws IOException
This method is used to serialized an object saved into a table BLOB field.- Parameters:
theObject- the object to be serialized- Returns:
- a object byte array
- Throws:
IOException
-
deserializeObject
protected Serializable deserializeObject(byte[] buffer) throws IOException, ClassNotFoundException
This method is used to de-serialized a table BLOB field to its original object form.- Parameters:
buffer- the byte array save a BLOB- Returns:
- the object saved as byte array
- Throws:
IOExceptionClassNotFoundException
-
createSubJobInstance
public jakarta.batch.runtime.JobInstance createSubJobInstance(String name, String apptag)
- Specified by:
createSubJobInstancein interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
createJobInstance
public jakarta.batch.runtime.JobInstance createJobInstance(String name, String apptag, String jobXml)
- Specified by:
createJobInstancein interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
createJobExecution
public com.ibm.jbatch.container.jobinstance.RuntimeJobExecution createJobExecution(jakarta.batch.runtime.JobInstance jobInstance, Properties jobParameters, jakarta.batch.runtime.BatchStatus batchStatus)- Specified by:
createJobExecutionin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
createRuntimeJobExecutionEntry
protected long createRuntimeJobExecutionEntry(jakarta.batch.runtime.JobInstance jobInstance, Properties jobParameters, jakarta.batch.runtime.BatchStatus batchStatus, Timestamp timestamp)
-
createFlowInSplitExecution
public com.ibm.jbatch.container.jobinstance.RuntimeFlowInSplitExecution createFlowInSplitExecution(jakarta.batch.runtime.JobInstance jobInstance, jakarta.batch.runtime.BatchStatus batchStatus)- Specified by:
createFlowInSplitExecutionin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
createStepExecution
public com.ibm.jbatch.container.jobinstance.StepExecutionImpl createStepExecution(long rootJobExecId, com.ibm.jbatch.container.context.impl.StepContextImpl stepContext)- Specified by:
createStepExecutionin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
createStepExecution
protected com.ibm.jbatch.container.jobinstance.StepExecutionImpl createStepExecution(long rootJobExecId, String batchStatus, String exitStatus, String stepName, long readCount, long writeCount, long commitCount, long rollbackCount, long readSkipCount, long processSkipCount, long filterCount, long writeSkipCount, Timestamp startTime, Timestamp endTime, Serializable persistentData)
-
updateStepExecution
public void updateStepExecution(com.ibm.jbatch.container.context.impl.StepContextImpl stepContext)
- Specified by:
updateStepExecutionin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
getPartitionLevelJobInstanceWildCard
protected String getPartitionLevelJobInstanceWildCard(long rootJobExecutionId, String stepName)
Obviously would be nice if the code writing this special format were in the same place as this code reading it. Assumes format like: JOBINSTANCEDATA (jobinstanceid name, ...) 1197,"partitionMetrics","NOTSET" 1198,":1197:step1:0","NOTSET" 1199,":1197:step1:1","NOTSET" 1200,":1197:step2:0","NOTSET"- Parameters:
rootJobExecutionId- JobExecution id of the top-level jobstepName- Step name of the top-level stepName
-
updateWithFinalPartitionAggregateStepExecution
public void updateWithFinalPartitionAggregateStepExecution(long rootJobExecutionId, com.ibm.jbatch.container.context.impl.StepContextImpl stepContext)- Specified by:
updateWithFinalPartitionAggregateStepExecutionin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
updateStepExecutionWithMetrics
protected void updateStepExecutionWithMetrics(com.ibm.jbatch.container.context.impl.StepContextImpl stepContext, long readCount, long writeCount, long commitCount, long rollbackCount, long readSkipCount, long processSkipCount, long filterCount, long writeSkipCount)
-
createJobStatus
public com.ibm.jbatch.container.status.JobStatus createJobStatus(long jobInstanceId)
- Specified by:
createJobStatusin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
getJobStatus
public com.ibm.jbatch.container.status.JobStatus getJobStatus(long instanceId)
- Specified by:
getJobStatusin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
updateJobStatus
public void updateJobStatus(long instanceId, com.ibm.jbatch.container.status.JobStatus jobStatus)- Specified by:
updateJobStatusin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
createStepStatus
public com.ibm.jbatch.container.status.StepStatus createStepStatus(long stepExecId)
- Specified by:
createStepStatusin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
getStepStatus
public com.ibm.jbatch.container.status.StepStatus getStepStatus(long instanceId, String stepName)- Specified by:
getStepStatusin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
updateStepStatus
public void updateStepStatus(long stepExecutionId, com.ibm.jbatch.container.status.StepStatus stepStatus)- Specified by:
updateStepStatusin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
getTagName
public String getTagName(long jobExecutionId)
- Specified by:
getTagNamein interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
getMostRecentExecutionId
public long getMostRecentExecutionId(long jobInstanceId)
- Specified by:
getMostRecentExecutionIdin interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
shutdown
public void shutdown() throws com.ibm.jbatch.container.exception.BatchContainerServiceException- Specified by:
shutdownin interfacecom.ibm.jbatch.spi.services.IBatchServiceBase- Throws:
com.ibm.jbatch.container.exception.BatchContainerServiceException
-
getSharedTableMap
protected Map<String,String> getSharedTableMap()
Method invoked to insert the table key strings into a hashmap and to add the prefix and suffix to the table names
-
getSharedQueryMap
protected Map<String,String> getSharedQueryMap(com.ibm.jbatch.spi.services.IBatchConfig batchConfig) throws SQLException
Method invoked to insert the query strings used by all database types into a hashmap- Parameters:
batchConfig-- Returns:
- Throws:
SQLException
-
-