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>
createH2Strings
protected DataSource
dataSource
protected String
jndiName
protected String
prefix
protected Map<String,String>
queryStrings
protected RequestTracingService
requestTracing
protected String
schema
protected String
suffix
protected 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 boolean
checkIfTableExists(DataSource dSource, String tableName, String schemaName)
Note: H2 has a configuration setting DATABASE_TO_UPPER which is set to true per default.protected void
checkTables()
Check if the h2 jbatch tables exist, if not create themprotected void
cleanupConnection(Connection conn, PreparedStatement statement)
closes connection and statementprotected void
cleanupConnection(Connection conn, ResultSet rs, PreparedStatement statement)
closes connection, result set and statementvoid
createCheckpointData(com.ibm.jbatch.container.persistence.CheckpointDataKey key, com.ibm.jbatch.container.persistence.CheckpointData value)
com.ibm.jbatch.container.jobinstance.RuntimeFlowInSplitExecution
createFlowInSplitExecution(jakarta.batch.runtime.JobInstance jobInstance, jakarta.batch.runtime.BatchStatus batchStatus)
com.ibm.jbatch.container.jobinstance.RuntimeJobExecution
createJobExecution(jakarta.batch.runtime.JobInstance jobInstance, Properties jobParameters, jakarta.batch.runtime.BatchStatus batchStatus)
jakarta.batch.runtime.JobInstance
createJobInstance(String name, String apptag, String jobXml)
com.ibm.jbatch.container.status.JobStatus
createJobStatus(long jobInstanceId)
protected long
createRuntimeJobExecutionEntry(jakarta.batch.runtime.JobInstance jobInstance, Properties jobParameters, jakarta.batch.runtime.BatchStatus batchStatus, Timestamp timestamp)
com.ibm.jbatch.container.jobinstance.StepExecutionImpl
createStepExecution(long rootJobExecId, com.ibm.jbatch.container.context.impl.StepContextImpl stepContext)
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)
com.ibm.jbatch.container.status.StepStatus
createStepStatus(long stepExecId)
jakarta.batch.runtime.JobInstance
createSubJobInstance(String name, String apptag)
protected void
createTableIfNotExists(String tableName, String createTableStatement)
Create the jbatch tables if they do not existvoid
createTables(DataSource dataSource, BatchRuntimeConfiguration batchRuntimeConfiguration)
protected Serializable
deserializeObject(byte[] buffer)
This method is used to de-serialized a table BLOB field to its original object form.protected void
executeStatement(String statement)
Executes the provided SQL statementcom.ibm.jbatch.container.persistence.CheckpointData
getCheckpointData(com.ibm.jbatch.container.persistence.CheckpointDataKey key)
protected Connection
getConnection()
Get a connection from the datasourceprotected Connection
getConnectionToDefaultSchema()
String
getJobCurrentTag(long jobInstanceId)
long
getJobInstanceIdByExecutionId(long executionId)
com.ibm.jbatch.container.status.JobStatus
getJobStatus(long instanceId)
com.ibm.jbatch.container.status.JobStatus
getJobStatusFromExecution(long executionId)
long
getMostRecentExecutionId(long jobInstanceId)
Map<String,jakarta.batch.runtime.StepExecution>
getMostRecentStepExecutionsForJobInstance(long instanceId)
Properties
getParameters(long executionId)
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.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.StepExecution
getStepExecutionByStepExecutionId(long stepExecId)
List<jakarta.batch.runtime.StepExecution>
getStepExecutionsForJobExecution(long execid)
com.ibm.jbatch.container.status.StepStatus
getStepStatus(long instanceId, String stepName)
int
getTableRowCount(ResultSet resultSet)
Retrieve the number of rows in the resultset.String
getTagName(long jobExecutionId)
void
init(com.ibm.jbatch.spi.services.IBatchConfig batchConfig)
protected <T> void
insertCheckpointData(Object key, T value)
Insert data to DB tableprotected boolean
isSchemaValid()
Checks if the schema exists in the database.Map<Long,String>
jobOperatorGetExternalJobInstanceData()
com.ibm.jbatch.container.services.IJobExecution
jobOperatorGetJobExecution(long jobExecutionId)
List<com.ibm.jbatch.container.services.IJobExecution>
jobOperatorGetJobExecutions(long jobInstanceId)
int
jobOperatorGetJobInstanceCount(String jobName)
int
jobOperatorGetJobInstanceCount(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)
String
jobOperatorQueryJobExecutionBatchStatus(long key)
String
jobOperatorQueryJobExecutionExitStatus(long key)
long
jobOperatorQueryJobExecutionJobInstanceId(long executionID)
Timestamp
jobOperatorQueryJobExecutionTimestamp(long key, com.ibm.jbatch.container.services.IPersistenceManagerService.TimestampType timestampType)
protected void
logException(String msg, Exception e)
void
markJobStarted(long key, Timestamp startTS)
void
purge(String apptag)
protected com.ibm.jbatch.container.persistence.CheckpointData
queryCheckpointData(Object key)
select data from DB tableprotected com.ibm.jbatch.container.services.IJobExecution
readJobExecutionRecord(ResultSet rs)
protected byte[]
serializeObject(Serializable theObject)
This method is used to serialized an object saved into a table BLOB field.String
setDefaultSchema()
Set the default schema to the username obtained from the connection based on the datasourceprotected void
setSchemaOnConnection(Connection connection)
Set the schema to the default schema or the schema defined at batch configuration timevoid
shutdown()
void
updateBatchStatusOnly(long key, jakarta.batch.runtime.BatchStatus batchStatus, Timestamp updates)
void
updateCheckpointData(com.ibm.jbatch.container.persistence.CheckpointDataKey key, com.ibm.jbatch.container.persistence.CheckpointData value)
protected void
updateCheckpointData(Object key, com.ibm.jbatch.container.persistence.CheckpointData value)
update data in DB tablevoid
updateJobStatus(long instanceId, com.ibm.jbatch.container.status.JobStatus jobStatus)
void
updateStepExecution(com.ibm.jbatch.container.context.impl.StepContextImpl stepContext)
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)
void
updateStepStatus(long stepExecutionId, com.ibm.jbatch.container.status.StepStatus stepStatus)
void
updateWithFinalExecutionStatusesAndTimestamps(long key, jakarta.batch.runtime.BatchStatus batchStatus, String exitStatus, Timestamp updates)
void
updateWithFinalPartitionAggregateStepExecution(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:
init
in 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:
getCheckpointData
in 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:
updateCheckpointData
in 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:
createCheckpointData
in 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 SQLException
Checks 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 SQLException
Check 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:
jobOperatorGetJobInstanceCount
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
jobOperatorGetJobInstanceCount
public int jobOperatorGetJobInstanceCount(String jobName)
- Specified by:
jobOperatorGetJobInstanceCount
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
jobOperatorGetJobInstanceIds
public List<Long> jobOperatorGetJobInstanceIds(String jobName, String appTag, int start, int count)
- Specified by:
jobOperatorGetJobInstanceIds
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
jobOperatorGetJobInstanceIds
public List<Long> jobOperatorGetJobInstanceIds(String jobName, int start, int count)
- Specified by:
jobOperatorGetJobInstanceIds
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
jobOperatorGetExternalJobInstanceData
public Map<Long,String> jobOperatorGetExternalJobInstanceData()
- Specified by:
jobOperatorGetExternalJobInstanceData
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
jobOperatorQueryJobExecutionTimestamp
public Timestamp jobOperatorQueryJobExecutionTimestamp(long key, com.ibm.jbatch.container.services.IPersistenceManagerService.TimestampType timestampType)
- Specified by:
jobOperatorQueryJobExecutionTimestamp
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
jobOperatorQueryJobExecutionBatchStatus
public String jobOperatorQueryJobExecutionBatchStatus(long key)
- Specified by:
jobOperatorQueryJobExecutionBatchStatus
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
jobOperatorQueryJobExecutionExitStatus
public String jobOperatorQueryJobExecutionExitStatus(long key)
- Specified by:
jobOperatorQueryJobExecutionExitStatus
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
jobOperatorQueryJobExecutionJobInstanceId
public long jobOperatorQueryJobExecutionJobInstanceId(long executionID) throws jakarta.batch.operations.NoSuchJobExecutionException
- Specified by:
jobOperatorQueryJobExecutionJobInstanceId
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
- Throws:
jakarta.batch.operations.NoSuchJobExecutionException
-
getParameters
public Properties getParameters(long executionId) throws jakarta.batch.operations.NoSuchJobExecutionException
- Specified by:
getParameters
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
- Throws:
jakarta.batch.operations.NoSuchJobExecutionException
-
getMostRecentStepExecutionsForJobInstance
public Map<String,jakarta.batch.runtime.StepExecution> getMostRecentStepExecutionsForJobInstance(long instanceId)
- Specified by:
getMostRecentStepExecutionsForJobInstance
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
getStepExecutionsForJobExecution
public List<jakarta.batch.runtime.StepExecution> getStepExecutionsForJobExecution(long execid)
- Specified by:
getStepExecutionsForJobExecution
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
getStepExecutionByStepExecutionId
public jakarta.batch.runtime.StepExecution getStepExecutionByStepExecutionId(long stepExecId)
- Specified by:
getStepExecutionByStepExecutionId
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
updateBatchStatusOnly
public void updateBatchStatusOnly(long key, jakarta.batch.runtime.BatchStatus batchStatus, Timestamp updates)
- Specified by:
updateBatchStatusOnly
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
updateWithFinalExecutionStatusesAndTimestamps
public void updateWithFinalExecutionStatusesAndTimestamps(long key, jakarta.batch.runtime.BatchStatus batchStatus, String exitStatus, Timestamp updates)
- Specified by:
updateWithFinalExecutionStatusesAndTimestamps
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
markJobStarted
public void markJobStarted(long key, Timestamp startTS)
- Specified by:
markJobStarted
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
jobOperatorGetJobExecution
public com.ibm.jbatch.container.services.IJobExecution jobOperatorGetJobExecution(long jobExecutionId)
- Specified by:
jobOperatorGetJobExecution
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
jobOperatorGetJobExecutions
public List<com.ibm.jbatch.container.services.IJobExecution> jobOperatorGetJobExecutions(long jobInstanceId)
- Specified by:
jobOperatorGetJobExecutions
in 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:
jobOperatorGetRunningExecutions
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
getJobCurrentTag
public String getJobCurrentTag(long jobInstanceId)
- Specified by:
getJobCurrentTag
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
purge
public void purge(String apptag)
- Specified by:
purge
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
getJobStatusFromExecution
public com.ibm.jbatch.container.status.JobStatus getJobStatusFromExecution(long executionId)
- Specified by:
getJobStatusFromExecution
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
getJobInstanceIdByExecutionId
public long getJobInstanceIdByExecutionId(long executionId) throws jakarta.batch.operations.NoSuchJobExecutionException
- Specified by:
getJobInstanceIdByExecutionId
in 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:
IOException
ClassNotFoundException
-
createSubJobInstance
public jakarta.batch.runtime.JobInstance createSubJobInstance(String name, String apptag)
- Specified by:
createSubJobInstance
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
createJobInstance
public jakarta.batch.runtime.JobInstance createJobInstance(String name, String apptag, String jobXml)
- Specified by:
createJobInstance
in 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:
createJobExecution
in 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:
createFlowInSplitExecution
in 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:
createStepExecution
in 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:
updateStepExecution
in 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:
updateWithFinalPartitionAggregateStepExecution
in 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:
createJobStatus
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
getJobStatus
public com.ibm.jbatch.container.status.JobStatus getJobStatus(long instanceId)
- Specified by:
getJobStatus
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
updateJobStatus
public void updateJobStatus(long instanceId, com.ibm.jbatch.container.status.JobStatus jobStatus)
- Specified by:
updateJobStatus
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
createStepStatus
public com.ibm.jbatch.container.status.StepStatus createStepStatus(long stepExecId)
- Specified by:
createStepStatus
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
getStepStatus
public com.ibm.jbatch.container.status.StepStatus getStepStatus(long instanceId, String stepName)
- Specified by:
getStepStatus
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
updateStepStatus
public void updateStepStatus(long stepExecutionId, com.ibm.jbatch.container.status.StepStatus stepStatus)
- Specified by:
updateStepStatus
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
getTagName
public String getTagName(long jobExecutionId)
- Specified by:
getTagName
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
getMostRecentExecutionId
public long getMostRecentExecutionId(long jobInstanceId)
- Specified by:
getMostRecentExecutionId
in interfacecom.ibm.jbatch.container.services.IPersistenceManagerService
-
shutdown
public void shutdown() throws com.ibm.jbatch.container.exception.BatchContainerServiceException
- Specified by:
shutdown
in 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
-
-