Class JDBCPersistenceManagerImpl
- java.lang.Object
-
- com.ibm.jbatch.container.services.impl.JDBCPersistenceManagerImpl
-
- All Implemented Interfaces:
IPersistenceManagerService,IBatchServiceBase
public class JDBCPersistenceManagerImpl extends Object implements IPersistenceManagerService
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.ibm.jbatch.container.services.IPersistenceManagerService
IPersistenceManagerService.TimestampType
-
-
Field Summary
-
Constructor Summary
Constructors Constructor Description JDBCPersistenceManagerImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcreateCheckpointData(CheckpointDataKey key, CheckpointData value)RuntimeFlowInSplitExecutioncreateFlowInSplitExecution(jakarta.batch.runtime.JobInstance jobInstance, jakarta.batch.runtime.BatchStatus batchStatus)RuntimeJobExecutioncreateJobExecution(jakarta.batch.runtime.JobInstance jobInstance, Properties jobParameters, jakarta.batch.runtime.BatchStatus batchStatus)Create a JobExecutionjakarta.batch.runtime.JobInstancecreateJobInstance(String name, String apptag, String jobXml)Creates a JobIntanceJobStatuscreateJobStatus(long jobInstanceId)Create a JobStatusStepExecutionImplcreateStepExecution(long rootJobExecId, StepContextImpl stepContext)Create a StepExecutionStepStatuscreateStepStatus(long stepExecId)Create a StepStatusjakarta.batch.runtime.JobInstancecreateSubJobInstance(String name, String apptag)CheckpointDatagetCheckpointData(CheckpointDataKey key)protected ConnectiongetConnection()protected ConnectiongetConnectionToDefaultSchema()StringgetJobCurrentTag(long jobInstanceId)longgetJobInstanceIdByExecutionId(long executionId)JobStatusgetJobStatus(long instanceId)Get a JobStatusJobStatusgetJobStatusFromExecution(long executionId)longgetMostRecentExecutionId(long jobInstanceId)Map<String,jakarta.batch.runtime.StepExecution>getMostRecentStepExecutionsForJobInstance(long instanceId)PropertiesgetParameters(long executionId)jakarta.batch.runtime.StepExecutiongetStepExecutionByStepExecutionId(long stepExecId)List<jakarta.batch.runtime.StepExecution>getStepExecutionsForJobExecution(long execid)StepStatusgetStepStatus(long instanceId, String stepName)Get a StepStatus The parent job instance id and this step name from the job xml are used to determine if the current step execution have previously run.StringgetTagName(long jobExecutionId)Get the application name from an execution id.voidinit(IBatchConfig batchConfig)Map<Long,String>jobOperatorGetExternalJobInstanceData()IJobExecutionjobOperatorGetJobExecution(long jobExecutionId)List<IJobExecution>jobOperatorGetJobExecutions(long jobInstanceId)intjobOperatorGetJobInstanceCount(String jobName)JOB OPERATOR ONLY METHODSintjobOperatorGetJobInstanceCount(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, IPersistenceManagerService.TimestampType timestampType)voidmarkJobStarted(long key, Timestamp startTS)voidpurge(String apptag)voidshutdown()voidupdateBatchStatusOnly(long key, jakarta.batch.runtime.BatchStatus batchStatus, Timestamp updatets)voidupdateCheckpointData(CheckpointDataKey key, CheckpointData value)voidupdateJobStatus(long instanceId, JobStatus jobStatus)Update a JobStatusvoidupdateStepExecution(StepContextImpl stepContext)Update a StepExecutionvoidupdateStepStatus(long stepExecutionId, StepStatus stepStatus)Update a StepStatusvoidupdateWithFinalExecutionStatusesAndTimestamps(long key, jakarta.batch.runtime.BatchStatus batchStatus, String exitStatus, Timestamp updatets)voidupdateWithFinalPartitionAggregateStepExecution(long rootJobExecutionId, StepContextImpl stepContext)Update a StepExecution for the "top-level" StepExecution of a partitioned step.
-
-
-
Field Detail
-
dataSource
protected DataSource dataSource
-
jndiName
protected String jndiName
-
driver
protected String driver
-
schema
protected String schema
-
url
protected String url
-
userId
protected String userId
-
pwd
protected String pwd
-
JOBSTATUS_TABLE
public static final String JOBSTATUS_TABLE
- See Also:
- Constant Field Values
-
STEPSTATUS_TABLE
public static final String STEPSTATUS_TABLE
- See Also:
- Constant Field Values
-
CHECKPOINTDATA_TABLE
public static final String CHECKPOINTDATA_TABLE
- See Also:
- Constant Field Values
-
JOBINSTANCEDATA_TABLE
public static final String JOBINSTANCEDATA_TABLE
- See Also:
- Constant Field Values
-
EXECUTIONINSTANCEDATA_TABLE
public static final String EXECUTIONINSTANCEDATA_TABLE
- See Also:
- Constant Field Values
-
STEPEXECUTIONINSTANCEDATA_TABLE
public static final String STEPEXECUTIONINSTANCEDATA_TABLE
- See Also:
- Constant Field Values
-
CREATE_TAB_JOBSTATUS
public static final String CREATE_TAB_JOBSTATUS
- See Also:
- Constant Field Values
-
CREATE_TAB_STEPSTATUS
public static final String CREATE_TAB_STEPSTATUS
- See Also:
- Constant Field Values
-
CREATE_TAB_CHECKPOINTDATA
public static final String CREATE_TAB_CHECKPOINTDATA
- See Also:
- Constant Field Values
-
CREATE_TAB_JOBINSTANCEDATA
public static final String CREATE_TAB_JOBINSTANCEDATA
- See Also:
- Constant Field Values
-
CREATE_TAB_EXECUTIONINSTANCEDATA
public static final String CREATE_TAB_EXECUTIONINSTANCEDATA
- See Also:
- Constant Field Values
-
CREATE_TAB_STEPEXECUTIONINSTANCEDATA
public static final String CREATE_TAB_STEPEXECUTIONINSTANCEDATA
- See Also:
- Constant Field Values
-
INSERT_JOBSTATUS
public static final String INSERT_JOBSTATUS
- See Also:
- Constant Field Values
-
UPDATE_JOBSTATUS
public static final String UPDATE_JOBSTATUS
- See Also:
- Constant Field Values
-
SELECT_JOBSTATUS
public static final String SELECT_JOBSTATUS
- See Also:
- Constant Field Values
-
DELETE_JOBSTATUS
public static final String DELETE_JOBSTATUS
- See Also:
- Constant Field Values
-
INSERT_STEPSTATUS
public static final String INSERT_STEPSTATUS
- See Also:
- Constant Field Values
-
UPDATE_STEPSTATUS
public static final String UPDATE_STEPSTATUS
- See Also:
- Constant Field Values
-
SELECT_STEPSTATUS
public static final String SELECT_STEPSTATUS
- See Also:
- Constant Field Values
-
DELETE_STEPSTATUS
public static final String DELETE_STEPSTATUS
- See Also:
- Constant Field Values
-
INSERT_CHECKPOINTDATA
public static final String INSERT_CHECKPOINTDATA
- See Also:
- Constant Field Values
-
UPDATE_CHECKPOINTDATA
public static final String UPDATE_CHECKPOINTDATA
- See Also:
- Constant Field Values
-
SELECT_CHECKPOINTDATA
public static final String SELECT_CHECKPOINTDATA
- See Also:
- Constant Field Values
-
CREATE_CHECKPOINTDATA_INDEX
public static final String CREATE_CHECKPOINTDATA_INDEX
- See Also:
- Constant Field Values
-
DELETE_CHECKPOINTDATA
public static final String DELETE_CHECKPOINTDATA
- See Also:
- Constant Field Values
-
INSERT_JOBINSTANCEDATA
public static final String INSERT_JOBINSTANCEDATA
- See Also:
- Constant Field Values
-
INSERT_EXECUTIONDATA
public static final String INSERT_EXECUTIONDATA
- See Also:
- Constant Field Values
-
SELECT_JOBINSTANCEDATA_COUNT
public static final String SELECT_JOBINSTANCEDATA_COUNT
- See Also:
- Constant Field Values
-
SELECT_JOBINSTANCEDATA_IDS
public static final String SELECT_JOBINSTANCEDATA_IDS
- See Also:
- Constant Field Values
-
SELECT_JOBINSTANCEDATA_NAMES
public static final String SELECT_JOBINSTANCEDATA_NAMES
- See Also:
- Constant Field Values
-
SELECT_JOBINSTANCEDATA_APPTAG
public static final String SELECT_JOBINSTANCEDATA_APPTAG
- See Also:
- Constant Field Values
-
START_TIME
public static final String START_TIME
- See Also:
- Constant Field Values
-
CREATE_TIME
public static final String CREATE_TIME
- See Also:
- Constant Field Values
-
END_TIME
public static final String END_TIME
- See Also:
- Constant Field Values
-
UPDATE_TIME
public static final String UPDATE_TIME
- See Also:
- Constant Field Values
-
BATCH_STATUS
public static final String BATCH_STATUS
- See Also:
- Constant Field Values
-
EXIT_STATUS
public static final String EXIT_STATUS
- See Also:
- Constant Field Values
-
INSTANCE_ID
public static final String INSTANCE_ID
- See Also:
- Constant Field Values
-
JOBEXEC_ID
public static final String JOBEXEC_ID
- See Also:
- Constant Field Values
-
STEPEXEC_ID
public static final String STEPEXEC_ID
- See Also:
- Constant Field Values
-
STEPCONTEXT
public static final String STEPCONTEXT
- See Also:
- Constant Field Values
-
APPTAG
public static final String APPTAG
- See Also:
- Constant Field Values
-
-
Method Detail
-
init
public void init(IBatchConfig batchConfig) throws BatchContainerServiceException
- Specified by:
initin interfaceIBatchServiceBase- Throws:
BatchContainerServiceException
-
createCheckpointData
public void createCheckpointData(CheckpointDataKey key, CheckpointData value)
- Specified by:
createCheckpointDatain interfaceIPersistenceManagerService
-
getCheckpointData
public CheckpointData getCheckpointData(CheckpointDataKey key)
- Specified by:
getCheckpointDatain interfaceIPersistenceManagerService
-
updateCheckpointData
public void updateCheckpointData(CheckpointDataKey key, CheckpointData value)
- Specified by:
updateCheckpointDatain interfaceIPersistenceManagerService
-
getConnection
protected Connection getConnection() throws SQLException
- Returns:
- the database connection and sets it to the default schema JBATCH or the schema defined in batch-config.
- Throws:
SQLException
-
getConnectionToDefaultSchema
protected Connection getConnectionToDefaultSchema() throws SQLException
- Returns:
- the database connection. The schema is set to whatever default its used by the underlying database.
- Throws:
SQLException
-
jobOperatorGetJobInstanceCount
public int jobOperatorGetJobInstanceCount(String jobName, String appTag)
- Specified by:
jobOperatorGetJobInstanceCountin interfaceIPersistenceManagerService
-
jobOperatorGetJobInstanceCount
public int jobOperatorGetJobInstanceCount(String jobName)
Description copied from interface:IPersistenceManagerServiceJOB OPERATOR ONLY METHODS- Specified by:
jobOperatorGetJobInstanceCountin interfaceIPersistenceManagerService
-
jobOperatorGetJobInstanceIds
public List<Long> jobOperatorGetJobInstanceIds(String jobName, String appTag, int start, int count)
- Specified by:
jobOperatorGetJobInstanceIdsin interfaceIPersistenceManagerService
-
jobOperatorGetJobInstanceIds
public List<Long> jobOperatorGetJobInstanceIds(String jobName, int start, int count)
- Specified by:
jobOperatorGetJobInstanceIdsin interfaceIPersistenceManagerService
-
jobOperatorGetExternalJobInstanceData
public Map<Long,String> jobOperatorGetExternalJobInstanceData()
- Specified by:
jobOperatorGetExternalJobInstanceDatain interfaceIPersistenceManagerService
-
jobOperatorQueryJobExecutionTimestamp
public Timestamp jobOperatorQueryJobExecutionTimestamp(long key, IPersistenceManagerService.TimestampType timestampType)
- Specified by:
jobOperatorQueryJobExecutionTimestampin interfaceIPersistenceManagerService
-
jobOperatorQueryJobExecutionBatchStatus
public String jobOperatorQueryJobExecutionBatchStatus(long key)
- Specified by:
jobOperatorQueryJobExecutionBatchStatusin interfaceIPersistenceManagerService
-
jobOperatorQueryJobExecutionExitStatus
public String jobOperatorQueryJobExecutionExitStatus(long key)
- Specified by:
jobOperatorQueryJobExecutionExitStatusin interfaceIPersistenceManagerService
-
jobOperatorQueryJobExecutionJobInstanceId
public long jobOperatorQueryJobExecutionJobInstanceId(long executionID) throws jakarta.batch.operations.NoSuchJobExecutionException- Specified by:
jobOperatorQueryJobExecutionJobInstanceIdin interfaceIPersistenceManagerService- Throws:
jakarta.batch.operations.NoSuchJobExecutionException
-
getParameters
public Properties getParameters(long executionId) throws jakarta.batch.operations.NoSuchJobExecutionException
- Specified by:
getParametersin interfaceIPersistenceManagerService- Throws:
jakarta.batch.operations.NoSuchJobExecutionException
-
getMostRecentStepExecutionsForJobInstance
public Map<String,jakarta.batch.runtime.StepExecution> getMostRecentStepExecutionsForJobInstance(long instanceId)
- Specified by:
getMostRecentStepExecutionsForJobInstancein interfaceIPersistenceManagerService
-
getStepExecutionsForJobExecution
public List<jakarta.batch.runtime.StepExecution> getStepExecutionsForJobExecution(long execid)
- Specified by:
getStepExecutionsForJobExecutionin interfaceIPersistenceManagerService
-
getStepExecutionByStepExecutionId
public jakarta.batch.runtime.StepExecution getStepExecutionByStepExecutionId(long stepExecId)
- Specified by:
getStepExecutionByStepExecutionIdin interfaceIPersistenceManagerService
-
updateBatchStatusOnly
public void updateBatchStatusOnly(long key, jakarta.batch.runtime.BatchStatus batchStatus, Timestamp updatets)- Specified by:
updateBatchStatusOnlyin interfaceIPersistenceManagerService
-
updateWithFinalExecutionStatusesAndTimestamps
public void updateWithFinalExecutionStatusesAndTimestamps(long key, jakarta.batch.runtime.BatchStatus batchStatus, String exitStatus, Timestamp updatets)- Specified by:
updateWithFinalExecutionStatusesAndTimestampsin interfaceIPersistenceManagerService
-
markJobStarted
public void markJobStarted(long key, Timestamp startTS)- Specified by:
markJobStartedin interfaceIPersistenceManagerService
-
jobOperatorGetJobExecution
public IJobExecution jobOperatorGetJobExecution(long jobExecutionId)
- Specified by:
jobOperatorGetJobExecutionin interfaceIPersistenceManagerService
-
jobOperatorGetJobExecutions
public List<IJobExecution> jobOperatorGetJobExecutions(long jobInstanceId)
- Specified by:
jobOperatorGetJobExecutionsin interfaceIPersistenceManagerService
-
jobOperatorGetRunningExecutions
public Set<Long> jobOperatorGetRunningExecutions(String jobName)
- Specified by:
jobOperatorGetRunningExecutionsin interfaceIPersistenceManagerService
-
getJobCurrentTag
public String getJobCurrentTag(long jobInstanceId)
- Specified by:
getJobCurrentTagin interfaceIPersistenceManagerService
-
purge
public void purge(String apptag)
- Specified by:
purgein interfaceIPersistenceManagerService
-
getJobStatusFromExecution
public JobStatus getJobStatusFromExecution(long executionId)
- Specified by:
getJobStatusFromExecutionin interfaceIPersistenceManagerService
-
getJobInstanceIdByExecutionId
public long getJobInstanceIdByExecutionId(long executionId) throws jakarta.batch.operations.NoSuchJobExecutionException- Specified by:
getJobInstanceIdByExecutionIdin interfaceIPersistenceManagerService- Throws:
jakarta.batch.operations.NoSuchJobExecutionException
-
createSubJobInstance
public jakarta.batch.runtime.JobInstance createSubJobInstance(String name, String apptag)
- Specified by:
createSubJobInstancein interfaceIPersistenceManagerService
-
createJobInstance
public jakarta.batch.runtime.JobInstance createJobInstance(String name, String apptag, String jobXml)
Description copied from interface:IPersistenceManagerServiceCreates a JobIntance- Specified by:
createJobInstancein interfaceIPersistenceManagerService- Parameters:
name- the job id from job.xmlapptag- the application tag that owns this jobjobXml- the resolved job xml- Returns:
- the job instance
-
createJobExecution
public RuntimeJobExecution createJobExecution(jakarta.batch.runtime.JobInstance jobInstance, Properties jobParameters, jakarta.batch.runtime.BatchStatus batchStatus)
Description copied from interface:IPersistenceManagerServiceCreate a JobExecution- Specified by:
createJobExecutionin interfaceIPersistenceManagerService- Parameters:
jobInstance- the parent job instancejobParameters- the parent job instance parametersbatchStatus- the current BatchStatus- Returns:
- the RuntimeJobExecution class for this JobExecution
-
createFlowInSplitExecution
public RuntimeFlowInSplitExecution createFlowInSplitExecution(jakarta.batch.runtime.JobInstance jobInstance, jakarta.batch.runtime.BatchStatus batchStatus)
- Specified by:
createFlowInSplitExecutionin interfaceIPersistenceManagerService
-
createStepExecution
public StepExecutionImpl createStepExecution(long rootJobExecId, StepContextImpl stepContext)
Description copied from interface:IPersistenceManagerServiceCreate a StepExecution- Specified by:
createStepExecutionin interfaceIPersistenceManagerService- Parameters:
rootJobExecId- the parent JobExecution idstepContext- the step context for this step execution- Returns:
- the StepExecution
-
updateStepExecution
public void updateStepExecution(StepContextImpl stepContext)
Description copied from interface:IPersistenceManagerServiceUpdate a StepExecution- Specified by:
updateStepExecutionin interfaceIPersistenceManagerService- Parameters:
stepContext- the step context for this step execution
-
updateWithFinalPartitionAggregateStepExecution
public void updateWithFinalPartitionAggregateStepExecution(long rootJobExecutionId, StepContextImpl stepContext)Description copied from interface:IPersistenceManagerServiceUpdate a StepExecution for the "top-level" StepExecution of a partitioned step. This will aggregate the metrics from the "partition-level" StepExecution(s), (which by the way are not spec-defined and not accessible through standard, public APIs.)- Specified by:
updateWithFinalPartitionAggregateStepExecutionin interfaceIPersistenceManagerService- Parameters:
rootJobExecutionId- the root job execution idstepContext- the step context for this step execution
-
createJobStatus
public JobStatus createJobStatus(long jobInstanceId)
Description copied from interface:IPersistenceManagerServiceCreate a JobStatus- Specified by:
createJobStatusin interfaceIPersistenceManagerService- Parameters:
jobInstanceId- the parent job instance id- Returns:
- the JobStatus
-
getJobStatus
public JobStatus getJobStatus(long instanceId)
Description copied from interface:IPersistenceManagerServiceGet a JobStatus- Specified by:
getJobStatusin interfaceIPersistenceManagerService- Parameters:
instanceId- the parent job instance id- Returns:
- the JobStatus
-
updateJobStatus
public void updateJobStatus(long instanceId, JobStatus jobStatus)Description copied from interface:IPersistenceManagerServiceUpdate a JobStatus- Specified by:
updateJobStatusin interfaceIPersistenceManagerService- Parameters:
instanceId- the parent job instance idjobStatus- the job status to be updated
-
createStepStatus
public StepStatus createStepStatus(long stepExecId)
Description copied from interface:IPersistenceManagerServiceCreate a StepStatus- Specified by:
createStepStatusin interfaceIPersistenceManagerService- Parameters:
stepExecId- the parent step execution id- Returns:
- the StepStatus
-
getStepStatus
public StepStatus getStepStatus(long instanceId, String stepName)
Description copied from interface:IPersistenceManagerServiceGet a StepStatus The parent job instance id and this step name from the job xml are used to determine if the current step execution have previously run.- Specified by:
getStepStatusin interfaceIPersistenceManagerService- Parameters:
instanceId- the parent job instance idstepName- the step name- Returns:
- the StepStatus
-
updateStepStatus
public void updateStepStatus(long stepExecutionId, StepStatus stepStatus)Description copied from interface:IPersistenceManagerServiceUpdate a StepStatus- Specified by:
updateStepStatusin interfaceIPersistenceManagerService- Parameters:
stepExecutionId- the parent step execution idstepStatus- the step status to be updated
-
getTagName
public String getTagName(long jobExecutionId)
Description copied from interface:IPersistenceManagerServiceGet the application name from an execution id.- Specified by:
getTagNamein interfaceIPersistenceManagerService- Parameters:
jobExecutionId- the job execution id- Returns:
- the application name
-
getMostRecentExecutionId
public long getMostRecentExecutionId(long jobInstanceId)
- Specified by:
getMostRecentExecutionIdin interfaceIPersistenceManagerService
-
shutdown
public void shutdown() throws BatchContainerServiceException- Specified by:
shutdownin interfaceIBatchServiceBase- Throws:
BatchContainerServiceException
-
-