Interface IJobManager
-
- All Known Implementing Classes:
JobManager
public interface IJobManager
This manager deals with jobs. Each job is associated with a repository connection, and has a number of scheduling options: starting every n hours/days/weeks/months, on specific dates, or "continuous" (which basically establishes a priority queue based on modification frequency). The job itself also specifies "seeds" (or starting points), which are the places that scanning begins. NOTE WELL: Every job is incremental. This means that the job will check for deletions among all the documents that it has scanned in the past, as part of the process of ingesting.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
_rcsid
static int
ACTION_REMOVE
static int
ACTION_RESCAN
static int
DOCSTATE_NEVERPROCESSED
static int
DOCSTATE_OUTOFSCOPE
static int
DOCSTATE_PREVIOUSLYPROCESSED
static int
DOCSTATUS_DELETING
static int
DOCSTATUS_EXPIRING
static int
DOCSTATUS_HOPCOUNTEXCEEDED
static int
DOCSTATUS_INACTIVE
static int
DOCSTATUS_PROCESSING
static int
DOCSTATUS_READYFOREXPIRATION
static int
DOCSTATUS_READYFORPROCESSING
static int
DOCSTATUS_WAITINGFOREVER
static int
DOCSTATUS_WAITINGFOREXPIRATION
static int
DOCSTATUS_WAITINGFORPROCESSING
static int
STOP_ERRORABORT
static int
STOP_MANUALABORT
static int
STOP_MANUALPAUSE
static int
STOP_RESTART
static int
STOP_SCHEDULEPAUSE
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addDocument(java.lang.String processID, java.lang.Long jobID, java.lang.String[] legalLinkTypes, java.lang.String docIDHash, java.lang.String docID, java.lang.String parentIdentifierHash, java.lang.String relationshipType, int hopcountMethod, java.lang.String[] dataNames, java.lang.Object[][] dataValues, IPriorityCalculator priority, java.lang.String[] prereqEventNames)
Add a document to the queue.void
addDocuments(java.lang.String processID, java.lang.Long jobID, java.lang.String[] legalLinkTypes, java.lang.String[] docIDHashes, java.lang.String[] docIDs, java.lang.String parentIdentifierHash, java.lang.String relationshipType, int hopcountMethod, java.lang.String[][] dataNames, java.lang.Object[][][] dataValues, IPriorityCalculator[] priorities, java.lang.String[][] prereqEventNames)
Add documents to the queue in bulk.void
addDocumentsInitial(java.lang.String processID, java.lang.Long jobID, java.lang.String[] legalLinkTypes, java.lang.String[] docIDHashes, java.lang.String[] docIDs, boolean overrideSchedule, int hopcountMethod, IPriorityCalculator[] documentPriorities, java.lang.String[][] prereqEventNames)
Add an initial set of documents to the queue.void
addRemainingDocumentsInitial(java.lang.String processID, java.lang.Long jobID, java.lang.String[] legalLinkTypes, java.lang.String[] docIDHashes, int hopcountMethod)
Add an initial set of remaining documents to the queue.void
assessMarkedJobs()
Assess jobs marked to be in need of assessment for connector status changes.boolean
beginEventSequence(java.lang.String processID, java.lang.String eventName)
Begin an event sequence.void
carrydownChangeDocument(DocumentDescription documentDescription, IPriorityCalculator docPriority)
Requeue a document because of carrydown changes.void
carrydownChangeDocumentMultiple(DocumentDescription[] documentDescriptions, IPriorityCalculator[] docPriorities)
Requeue a document set because of carrydown changes.boolean
checkIfNotificationReference(java.lang.String connectionName)
See if there's a reference to a notification connection name.boolean
checkIfOutputReference(java.lang.String connectionName)
See if there's a reference to an output connection name.boolean
checkIfReference(java.lang.String connectionName)
See if there's a reference to a connection name.boolean
checkIfTransformationReference(java.lang.String connectionName)
See if there's a reference to a transformation connection name.boolean
checkJobActive(java.lang.Long jobID)
Verify that a specific job is indeed still active.boolean
checkJobBusy(java.lang.Long jobID)
Verify if a job is still processing documents, or no longer has any outstanding active documentsvoid
cleanupProcessData()
Reset the job queue for all process IDs.void
cleanupProcessData(java.lang.String processID)
Reset the job queue for an individual process ID.void
clearAllDocumentPriorities()
Clear all document priorities, in preparation for reprioritization of all previously-prioritized documents.void
clearJobSeedingState(java.lang.Long jobID)
Clear job seeding state.void
completeEventSequence(java.lang.String eventName)
Complete an event sequence.IJobDescription
createJob()
Create a new job.void
deinstall()
Uninstall the job manager's tables.void
deleteIngestedDocumentIdentifiers(DocumentDescription[] identifiers)
Delete ingested document identifiers (as part of deleting the owning job).void
deleteJob(java.lang.Long id)
Delete a job.void
deleteJobsReadyForDelete()
Delete jobs in need of being deleted (which are marked "ready for delete").void
doneDocumentsInitial(java.lang.Long jobID, java.lang.String[] legalLinkTypes, boolean isPartial, int hopcountMethod)
Signal that a seeding pass has been done.boolean
errorAbort(java.lang.Long jobID, java.lang.String errorText)
Abort a running job due to a fatal error condition.void
exportConfiguration(java.io.OutputStream os)
Export configurationboolean[]
findHopCounts(java.lang.Long jobID, java.lang.String[] legalLinkTypes, java.lang.String[] docIDHashes, java.lang.String linkType, int limit, int hopcountMethod)
Get the specified hop counts, with the limit as described.IJobDescription[]
findJobsForConnection(java.lang.String connectionName)
Get the job IDs associated with a given connection name.DocumentDescription[]
finishDocuments(java.lang.Long jobID, java.lang.String[] legalLinkTypes, java.lang.String[] parentIdentifierHashes, int hopcountMethod)
Complete adding child documents to the queue, for a set of documents.void
finishJobResumes(long timestamp, java.util.List<IJobDescription> modifiedJobs)
Complete the sequence that resumes jobs, either from a pause or from a scheduling window wait.void
finishJobs()
Put all eligible jobs in the "shutting down" state.void
finishJobStops(long timestamp, java.util.List<IJobDescription> modifiedJobs, java.util.List<java.lang.Integer> stopNotificationTypes)
Complete the sequence that stops jobs, either for abort, pause, or because of a scheduling window.IResultSet
genDocumentStatus(java.lang.String connectionName, StatusFilterCriteria filterCriteria, SortOrder sortOrder, int startRow, int rowCount)
Run a 'document status' report.IResultSet
genQueueStatus(java.lang.String connectionName, StatusFilterCriteria filterCriteria, SortOrder sortOrder, BucketDescription idBucketDescription, int startRow, int rowCount)
Run a 'queue status' report.IJobDescription[]
getAllJobs()
Load a sorted list of job descriptions.java.lang.String[]
getAllSeeds(java.lang.Long jobID)
Get all the current seeds.JobStatus[]
getAllStatus()
Get a list of all jobs, and their status information.JobStatus[]
getAllStatus(boolean includeCounts)
Get a list of all jobs, and their status information.JobStatus[]
getAllStatus(boolean includeCounts, int maxCount)
Get a list of all jobs, and their status information.DocumentSetAndFlags
getExpiredDocuments(java.lang.String processID, int n, long currentTime)
Get up to the next n documents to be expired.JobStatus[]
getFinishedJobs()
Get a list of completed jobs, and their statistics.JobStatus[]
getFinishedJobs(boolean includeCounts)
Get a list of completed jobs, and their statistics.JobStatus[]
getFinishedJobs(boolean includeCounts, int maxCount)
Get a list of completed jobs, and their statistics.JobNotifyRecord[]
getJobsReadyForDelete(java.lang.String processID)
Find the list of jobs that need to have their connectors notified of job deletion.JobDeleteRecord[]
getJobsReadyForDeleteCleanup(java.lang.String processID)
Get the list of jobs that are ready for delete cleanup.JobNotifyRecord[]
getJobsReadyForInactivity(java.lang.String processID)
Find the list of jobs that need to have their connectors notified of job completion.JobSeedingRecord[]
getJobsReadyForSeeding(java.lang.String processID, long currentTime)
Get the list of jobs that are ready for seeding.JobStartRecord[]
getJobsReadyForStartup(java.lang.String processID)
Get the list of jobs that are ready for startup.DocumentSetAndFlags
getNextCleanableDocuments(java.lang.String processID, int n, long currentTime)
Get list of cleanable document descriptions.DocumentDescription[]
getNextDeletableDocuments(java.lang.String processID, int n, long currentTime)
Get list of deletable document descriptions.DocumentDescription[]
getNextDocuments(java.lang.String processID, int n, long currentTime, long interval, BlockingDocuments blockingDocuments, PerformanceStatistics statistics, DepthStatistics scanRecord)
Get up to the next n document(s) to be fetched and processed.DocumentDescription[]
getNextNotYetProcessedReprioritizationDocuments(java.lang.String processID, int n)
Get a list of not-yet-processed documents to reprioritize.JobStatus[]
getRunningJobs()
Get a list of running jobs.JobStatus[]
getRunningJobs(boolean includeCounts)
Get a list of running jobs.JobStatus[]
getRunningJobs(boolean includeCounts, int maxCount)
Get a list of running jobs.JobStatus
getStatus(java.lang.Long jobID)
Get the status of a job.JobStatus
getStatus(java.lang.Long jobID, boolean includeCounts)
Get the status of a job.JobStatus
getStatus(java.lang.Long jobID, boolean includeCounts, int maxCount)
Get the status of a job.void
importConfiguration(java.io.InputStream is)
Import configurationvoid
inactivateJob(java.lang.Long jobID)
Inactivate a job, from the notification state.void
install()
Install the job manager's tables.IJobDescription
load(java.lang.Long id)
Load a job for editing.IJobDescription
load(java.lang.Long id, boolean readOnly)
Load a job.void
manualAbort(java.lang.Long jobID)
Manually abort a running job.void
manualAbortRestart(java.lang.Long jobID)
Manually restart a running job.void
manualAbortRestart(java.lang.Long jobID, boolean requestMinimum)
Manually restart a running job.void
manualStart(java.lang.Long jobID)
Manually start a job.void
manualStart(java.lang.Long jobID, boolean requestMinimum)
Manually start a job.DocumentDescription[]
markDocumentCleanedUp(java.lang.Long jobID, java.lang.String[] legalLinkTypes, DocumentDescription documentDescription, int hopcountMethod)
Delete from queue as a result of cleaning up an unreachable document.DocumentDescription[]
markDocumentCleanedUpMultiple(java.lang.Long jobID, java.lang.String[] legalLinkTypes, DocumentDescription[] documentDescriptions, int hopcountMethod)
Delete from queue as a result of cleaning up an unreachable document.void
markDocumentCompleted(DocumentDescription documentDescription)
Note completion of document processing by a job thread of a document.void
markDocumentCompletedMultiple(DocumentDescription[] documentDescriptions)
Note completion of document processing by a job thread of a document.DocumentDescription[]
markDocumentDeleted(java.lang.Long jobID, java.lang.String[] legalLinkTypes, DocumentDescription documentDescription, int hopcountMethod)
Delete from queue as a result of processing of an active document.DocumentDescription[]
markDocumentDeletedMultiple(java.lang.Long jobID, java.lang.String[] legalLinkTypes, DocumentDescription[] documentDescriptions, int hopcountMethod)
Delete from queue as a result of processing of an active document.DocumentDescription[]
markDocumentExpired(java.lang.Long jobID, java.lang.String[] legalLinkTypes, DocumentDescription documentDescription, int hopcountMethod)
Delete from queue as a result of expiration of an active document.DocumentDescription[]
markDocumentExpiredMultiple(java.lang.Long jobID, java.lang.String[] legalLinkTypes, DocumentDescription[] documentDescriptions, int hopcountMethod)
Delete from queue as a result of expiration of an active document.DocumentDescription[]
markDocumentHopcountRemoval(java.lang.Long jobID, java.lang.String[] legalLinkTypes, DocumentDescription documentDescription, int hopcountMethod)
Mark hopcount removal from queue as a result of processing of an active document.DocumentDescription[]
markDocumentHopcountRemovalMultiple(java.lang.Long jobID, java.lang.String[] legalLinkTypes, DocumentDescription[] documentDescriptions, int hopcountMethod)
Mark hopcount removal from queue as a result of processing of an active document.void
noteConnectionChange(java.lang.String connectionName)
Note a change in connection configuration.void
noteConnectorDeregistration(java.lang.String[] connectionNames)
Note the deregistration of a connector used by the specified connections.void
noteConnectorRegistration(java.lang.String[] connectionNames)
Note the registration of a connector used by the specified connections.void
noteJobDeleteStarted(java.lang.Long jobID, long startTime)
Note job delete started.void
noteJobSeeded(java.lang.Long jobID, java.lang.String seedingVersion)
Note job seeded.void
noteJobStarted(java.lang.Long jobID, long startTime, java.lang.String seedingVersion)
Note job started.void
noteNotificationConnectionChange(java.lang.String connectionName)
Note a change in notification connection configuration.void
noteNotificationConnectorDeregistration(java.lang.String[] connectionNames)
Note the deregistration of a notification connector used by the specified connections.void
noteNotificationConnectorRegistration(java.lang.String[] connectionNames)
Note the registration of a notification connector used by the specified connections.void
noteOutputConnectionChange(java.lang.String connectionName)
Note a change in output connection configuration.void
noteOutputConnectorDeregistration(java.lang.String[] connectionNames)
Note the deregistration of an output connector used by the specified connections.void
noteOutputConnectorRegistration(java.lang.String[] connectionNames)
Note the registration of an output connector used by the specified connections.void
noteTransformationConnectionChange(java.lang.String connectionName)
Note a change in transformation connection configuration.void
noteTransformationConnectorDeregistration(java.lang.String[] connectionNames)
Note the deregistration of a transformation connector used by the specified connections.void
noteTransformationConnectorRegistration(java.lang.String[] connectionNames)
Note the registration of a transformation connector used by the specified connections.void
pauseJob(java.lang.Long jobID)
Pause a job.void
prepareDeleteScan(java.lang.Long jobID)
Prepare for a delete scan.void
prepareForClusterStart()
Prepare to start the entire cluster.void
prepareJobScan(java.lang.Long jobID, java.lang.String[] legalLinkTypes, int hopcountMethod, int connectorModel, boolean continuousJob, boolean fromBeginningOfTime, boolean requestMinimum)
Prepare a job to be run.void
removeJob(java.lang.Long jobID)
Remove a job, from the notification state.void
requeueDocument(DocumentDescription documentDescription, java.lang.Long executeTime, int action)
Requeue a document for further processing in the future.void
requeueDocumentMultiple(DocumentDescription[] documentDescriptions, java.lang.Long[] executeTimes, int[] actions)
Requeue a document for further processing in the future.void
resetCleaningDocument(DocumentDescription documentDescription, long checkTime)
Reset a cleaning document back to its former state.void
resetCleaningDocumentMultiple(DocumentDescription[] documentDescriptions, long checkTime)
Reset a set of cleaning documents for further processing in the future.void
resetDeleteNotifyJob(java.lang.Long jobID)
Reset a job that is delete notifying back to "ready for delete notify" state.void
resetDeleteStartupWorkerStatus(java.lang.String processID)
Reset as part of restoring delete startup threads.void
resetDeletingDocument(DocumentDescription documentDescription, long checkTime)
Reset a deleting document back to its former state.void
resetDeletingDocumentMultiple(DocumentDescription[] documentDescriptions, long checkTime)
Reset a set of deleting documents for further processing in the future.void
resetDocCleanupWorkerStatus(java.lang.String processID)
Reset as part of restoring doc cleanup threads.void
resetDocDeleteWorkerStatus(java.lang.String processID)
Reset as part of restoring doc delete threads.void
resetDocument(DocumentDescription documentDescription, long executeTime, int action, long failTime, int failCount)
Reset an active document back to its former state.void
resetDocumentMultiple(DocumentDescription[] documentDescriptions, long executeTime, int action, long failTime, int failCount)
Reset documents for further processing in the future.void
resetDocumentWorkerStatus(java.lang.String processID)
Reset as part of restoring document worker threads.void
resetJobs(long currentTime, java.util.List<IJobDescription> resetJobs)
Reset eligible jobs either back to the "inactive" state, or make them active again.void
resetJobSchedule(java.lang.Long jobID)
Reset job schedule.void
resetNotificationWorkerStatus(java.lang.String processID)
Reset as part of restoring notification threads.void
resetNotifyJob(java.lang.Long jobID)
Reset a job that is notifying back to "ready for notify" state.void
resetSeedingWorkerStatus(java.lang.String processID)
Reset as part of restoring seeding threads.void
resetSeedJob(java.lang.Long jobID)
Reset a seeding job back to "active" state.void
resetStartDeleteJob(java.lang.Long jobID)
Reset a job starting for delete back to "ready for delete" state.void
resetStartupJob(java.lang.Long jobID)
Reset a starting job back to "ready for startup" state.void
resetStartupWorkerStatus(java.lang.String processID)
Reset as part of restoring startup threads.void
restartJob(java.lang.Long jobID)
Restart a paused job.java.lang.String[]
retrieveParentData(java.lang.Long jobID, java.lang.String docIDHash, java.lang.String dataName)
Retrieve specific parent data for a given document.CharacterInput[]
retrieveParentDataAsFiles(java.lang.Long jobID, java.lang.String docIDHash, java.lang.String dataName)
Retrieve specific parent data for a given document.void
retryDeleteNotification(JobNotifyRecord jnr, long failTime, int failCount)
Retry delete notification.void
retryNotification(JobNotifyRecord jobNotifyRecord, long failTime, int failRetryCount)
Retry notification.void
retrySeeding(JobSeedingRecord jobSeedingRecord, long failTime, int failRetryCount)
Retry seeding.void
retryStartup(JobStartRecord jobStartRecord, long failTime, int failRetryCount)
Retry startup.void
revertDocuments(java.lang.Long jobID, java.lang.String[] legalLinkTypes, java.lang.String[] parentIdentifierHashes)
Undo the addition of child documents to the queue, for a set of documents.void
save(IJobDescription jobDescription)
Save a job.void
startJobs(long currentTime, java.util.List<java.lang.Long> unwaitList)
Start jobs based on schedule.void
waitJobs(long currentTime, java.util.List<java.lang.Long> waitList)
Put active or paused jobs in wait state, if they've exceeded their window.void
writeDocumentPriorities(DocumentDescription[] descriptions, IPriorityCalculator[] priorities)
Save a set of document priorities.
-
-
-
Field Detail
-
_rcsid
static final java.lang.String _rcsid
- See Also:
- Constant Field Values
-
ACTION_RESCAN
static final int ACTION_RESCAN
- See Also:
- Constant Field Values
-
ACTION_REMOVE
static final int ACTION_REMOVE
- See Also:
- Constant Field Values
-
DOCSTATE_NEVERPROCESSED
static final int DOCSTATE_NEVERPROCESSED
- See Also:
- Constant Field Values
-
DOCSTATE_PREVIOUSLYPROCESSED
static final int DOCSTATE_PREVIOUSLYPROCESSED
- See Also:
- Constant Field Values
-
DOCSTATE_OUTOFSCOPE
static final int DOCSTATE_OUTOFSCOPE
- See Also:
- Constant Field Values
-
DOCSTATUS_INACTIVE
static final int DOCSTATUS_INACTIVE
- See Also:
- Constant Field Values
-
DOCSTATUS_PROCESSING
static final int DOCSTATUS_PROCESSING
- See Also:
- Constant Field Values
-
DOCSTATUS_EXPIRING
static final int DOCSTATUS_EXPIRING
- See Also:
- Constant Field Values
-
DOCSTATUS_DELETING
static final int DOCSTATUS_DELETING
- See Also:
- Constant Field Values
-
DOCSTATUS_READYFORPROCESSING
static final int DOCSTATUS_READYFORPROCESSING
- See Also:
- Constant Field Values
-
DOCSTATUS_READYFOREXPIRATION
static final int DOCSTATUS_READYFOREXPIRATION
- See Also:
- Constant Field Values
-
DOCSTATUS_WAITINGFORPROCESSING
static final int DOCSTATUS_WAITINGFORPROCESSING
- See Also:
- Constant Field Values
-
DOCSTATUS_WAITINGFOREXPIRATION
static final int DOCSTATUS_WAITINGFOREXPIRATION
- See Also:
- Constant Field Values
-
DOCSTATUS_WAITINGFOREVER
static final int DOCSTATUS_WAITINGFOREVER
- See Also:
- Constant Field Values
-
DOCSTATUS_HOPCOUNTEXCEEDED
static final int DOCSTATUS_HOPCOUNTEXCEEDED
- See Also:
- Constant Field Values
-
STOP_ERRORABORT
static final int STOP_ERRORABORT
- See Also:
- Constant Field Values
-
STOP_MANUALABORT
static final int STOP_MANUALABORT
- See Also:
- Constant Field Values
-
STOP_MANUALPAUSE
static final int STOP_MANUALPAUSE
- See Also:
- Constant Field Values
-
STOP_SCHEDULEPAUSE
static final int STOP_SCHEDULEPAUSE
- See Also:
- Constant Field Values
-
STOP_RESTART
static final int STOP_RESTART
- See Also:
- Constant Field Values
-
-
Method Detail
-
install
void install() throws ManifoldCFException
Install the job manager's tables.- Throws:
ManifoldCFException
-
deinstall
void deinstall() throws ManifoldCFException
Uninstall the job manager's tables.- Throws:
ManifoldCFException
-
exportConfiguration
void exportConfiguration(java.io.OutputStream os) throws java.io.IOException, ManifoldCFException
Export configuration- Throws:
java.io.IOException
ManifoldCFException
-
importConfiguration
void importConfiguration(java.io.InputStream is) throws java.io.IOException, ManifoldCFException
Import configuration- Throws:
java.io.IOException
ManifoldCFException
-
getAllJobs
IJobDescription[] getAllJobs() throws ManifoldCFException
Load a sorted list of job descriptions.- Returns:
- the list, sorted by description.
- Throws:
ManifoldCFException
-
createJob
IJobDescription createJob() throws ManifoldCFException
Create a new job.- Returns:
- the new job.
- Throws:
ManifoldCFException
-
deleteJob
void deleteJob(java.lang.Long id) throws ManifoldCFException
Delete a job.- Parameters:
id
- is the job's identifier. This method will purge all the records belonging to the job from the database, as well as remove all documents indexed by the job from the index.- Throws:
ManifoldCFException
-
load
IJobDescription load(java.lang.Long id) throws ManifoldCFException
Load a job for editing.- Parameters:
id
- is the job's identifier.- Returns:
- null if the job doesn't exist.
- Throws:
ManifoldCFException
-
load
IJobDescription load(java.lang.Long id, boolean readOnly) throws ManifoldCFException
Load a job.- Parameters:
id
- is the job's identifier.readOnly
- is true if a read-only object is desired.- Returns:
- null if the job doesn't exist.
- Throws:
ManifoldCFException
-
save
void save(IJobDescription jobDescription) throws ManifoldCFException
Save a job.- Parameters:
jobDescription
- is the job description.- Throws:
ManifoldCFException
-
checkIfReference
boolean checkIfReference(java.lang.String connectionName) throws ManifoldCFException
See if there's a reference to a connection name.- Parameters:
connectionName
- is the name of the connection.- Returns:
- true if there is a reference, false otherwise.
- Throws:
ManifoldCFException
-
checkIfNotificationReference
boolean checkIfNotificationReference(java.lang.String connectionName) throws ManifoldCFException
See if there's a reference to a notification connection name.- Parameters:
connectionName
- is the name of the connection.- Returns:
- true if there is a reference, false otherwise.
- Throws:
ManifoldCFException
-
checkIfOutputReference
boolean checkIfOutputReference(java.lang.String connectionName) throws ManifoldCFException
See if there's a reference to an output connection name.- Parameters:
connectionName
- is the name of the connection.- Returns:
- true if there is a reference, false otherwise.
- Throws:
ManifoldCFException
-
checkIfTransformationReference
boolean checkIfTransformationReference(java.lang.String connectionName) throws ManifoldCFException
See if there's a reference to a transformation connection name.- Parameters:
connectionName
- is the name of the connection.- Returns:
- true if there is a reference, false otherwise.
- Throws:
ManifoldCFException
-
findJobsForConnection
IJobDescription[] findJobsForConnection(java.lang.String connectionName) throws ManifoldCFException
Get the job IDs associated with a given connection name.- Parameters:
connectionName
- is the name of the connection.- Returns:
- the set of job id's associated with that connection.
- Throws:
ManifoldCFException
-
clearJobSeedingState
void clearJobSeedingState(java.lang.Long jobID) throws ManifoldCFException
Clear job seeding state.- Parameters:
jobID
- is the job ID.- Throws:
ManifoldCFException
-
cleanupProcessData
void cleanupProcessData(java.lang.String processID) throws ManifoldCFException
Reset the job queue for an individual process ID. If a node was shut down in the middle of doing something, sufficient information should be around in the database to allow the node's activities to be cleaned up.- Parameters:
processID
- is the process ID of the node we want to clean up after.- Throws:
ManifoldCFException
-
cleanupProcessData
void cleanupProcessData() throws ManifoldCFException
Reset the job queue for all process IDs. If a node was shut down in the middle of doing something, sufficient information should be around in the database to allow the node's activities to be cleaned up.- Throws:
ManifoldCFException
-
prepareForClusterStart
void prepareForClusterStart() throws ManifoldCFException
Prepare to start the entire cluster. If there are no other nodes alive, then at the time the first node comes up, we need to reset the job queue for ALL processes that had been running before. This method must be called in addition to cleanupProcessData().- Throws:
ManifoldCFException
-
resetDocumentWorkerStatus
void resetDocumentWorkerStatus(java.lang.String processID) throws ManifoldCFException
Reset as part of restoring document worker threads.- Parameters:
processID
- is the current process ID.- Throws:
ManifoldCFException
-
resetSeedingWorkerStatus
void resetSeedingWorkerStatus(java.lang.String processID) throws ManifoldCFException
Reset as part of restoring seeding threads.- Throws:
ManifoldCFException
-
resetDocDeleteWorkerStatus
void resetDocDeleteWorkerStatus(java.lang.String processID) throws ManifoldCFException
Reset as part of restoring doc delete threads.- Parameters:
processID
- is the current process ID.- Throws:
ManifoldCFException
-
resetDocCleanupWorkerStatus
void resetDocCleanupWorkerStatus(java.lang.String processID) throws ManifoldCFException
Reset as part of restoring doc cleanup threads.- Parameters:
processID
- is the current process ID.- Throws:
ManifoldCFException
-
resetDeleteStartupWorkerStatus
void resetDeleteStartupWorkerStatus(java.lang.String processID) throws ManifoldCFException
Reset as part of restoring delete startup threads.- Parameters:
processID
- is the current process ID.- Throws:
ManifoldCFException
-
resetNotificationWorkerStatus
void resetNotificationWorkerStatus(java.lang.String processID) throws ManifoldCFException
Reset as part of restoring notification threads.- Parameters:
processID
- is the current process ID.- Throws:
ManifoldCFException
-
resetStartupWorkerStatus
void resetStartupWorkerStatus(java.lang.String processID) throws ManifoldCFException
Reset as part of restoring startup threads.- Parameters:
processID
- is the current process ID.- Throws:
ManifoldCFException
-
clearAllDocumentPriorities
void clearAllDocumentPriorities() throws ManifoldCFException
Clear all document priorities, in preparation for reprioritization of all previously-prioritized documents. This method is called to start the dynamic reprioritization cycle, which follows this method with explicit prioritization of all documents, piece-meal, using getNextNotYetProcessedReprioritizationDocuments(), and writeDocumentPriorities().- Throws:
ManifoldCFException
-
getNextNotYetProcessedReprioritizationDocuments
DocumentDescription[] getNextNotYetProcessedReprioritizationDocuments(java.lang.String processID, int n) throws ManifoldCFException
Get a list of not-yet-processed documents to reprioritize. Documents in all jobs will be returned by this method. Up to n document descriptions will be returned.- Parameters:
processID
- is the process that requests the reprioritization documents.n
- is the maximum number of document descriptions desired.- Returns:
- the document descriptions.
- Throws:
ManifoldCFException
-
writeDocumentPriorities
void writeDocumentPriorities(DocumentDescription[] descriptions, IPriorityCalculator[] priorities) throws ManifoldCFException
Save a set of document priorities. In the case where a document was eligible to have its priority set, but it no longer is eligible, then the provided priority will not be written.- Parameters:
descriptions
- are the document descriptions.priorities
- are the desired priorities.- Throws:
ManifoldCFException
-
getExpiredDocuments
DocumentSetAndFlags getExpiredDocuments(java.lang.String processID, int n, long currentTime) throws ManifoldCFException
Get up to the next n documents to be expired. This method marks the documents whose descriptions have been returned as "being processed", or active. The same marking is used as is used for documents that have been queued for worker threads. The model is thus identical.- Parameters:
processID
- is the current process ID.n
- is the maximum number of records desired.currentTime
- is the current time.- Returns:
- the array of document descriptions to expire.
- Throws:
ManifoldCFException
-
getNextDocuments
DocumentDescription[] getNextDocuments(java.lang.String processID, int n, long currentTime, long interval, BlockingDocuments blockingDocuments, PerformanceStatistics statistics, DepthStatistics scanRecord) throws ManifoldCFException
Get up to the next n document(s) to be fetched and processed. This fetch returns records that contain the document identifier, plus all instructions pertaining to the document's handling (e.g. whether it should be refetched if the version has not changed). This method also marks the documents whose descriptions have be returned as "being processed".- Parameters:
processID
- is the current process ID.n
- is the number of documents desired.currentTime
- is the current time; some fetches do not occur until a specific time.interval
- is the number of milliseconds that this set of documents should represent (for throttling).blockingDocuments
- is the place to record documents that were encountered, are eligible for reprioritization, but could not be queued due to throttling considerations.statistics
- are the current performance statistics per connection, which are used to balance the queue stuffing so that individual connections are not overwhelmed.scanRecord
- retains the bins from all documents encountered from the query, even those that were skipped due to being overcommitted.- Returns:
- the array of document descriptions to fetch and process.
- Throws:
ManifoldCFException
-
checkJobActive
boolean checkJobActive(java.lang.Long jobID) throws ManifoldCFException
Verify that a specific job is indeed still active. This is used to permit abort or pause to be relatively speedy. The query done within MUST be cached in order to not cause undue performance degradation.- Parameters:
jobID
- is the job identifier.- Returns:
- true if the job is in one of the "active" states.
- Throws:
ManifoldCFException
-
checkJobBusy
boolean checkJobBusy(java.lang.Long jobID) throws ManifoldCFException
Verify if a job is still processing documents, or no longer has any outstanding active documents- Throws:
ManifoldCFException
-
markDocumentCompletedMultiple
void markDocumentCompletedMultiple(DocumentDescription[] documentDescriptions) throws ManifoldCFException
Note completion of document processing by a job thread of a document. This method causes the state of the document to be marked as "completed".- Parameters:
documentDescriptions
- are the description objects for the documents that were processed.- Throws:
ManifoldCFException
-
markDocumentCompleted
void markDocumentCompleted(DocumentDescription documentDescription) throws ManifoldCFException
Note completion of document processing by a job thread of a document. This method causes the state of the document to be marked as "completed".- Parameters:
documentDescription
- is the description object for the document that was processed.- Throws:
ManifoldCFException
-
markDocumentDeletedMultiple
DocumentDescription[] markDocumentDeletedMultiple(java.lang.Long jobID, java.lang.String[] legalLinkTypes, DocumentDescription[] documentDescriptions, int hopcountMethod) throws ManifoldCFException
Delete from queue as a result of processing of an active document. The document is expected to be in one of the active states: ACTIVE, ACTIVESEEDING, ACTIVENEEDSRESCAN, ACTIVESEEDINGNEEDSRESCAN. The RESCAN variants are interpreted as meaning that the document should not be deleted, but should instead be popped back on the queue for a repeat processing attempt.- Parameters:
documentDescriptions
- are the set of description objects for the documents that were processed.hopcountMethod
- describes how to handle deletions for hopcount purposes.- Returns:
- the set of documents for which carrydown data was changed by this operation. These documents are likely to be requeued as a result of the change.
- Throws:
ManifoldCFException
-
markDocumentDeleted
DocumentDescription[] markDocumentDeleted(java.lang.Long jobID, java.lang.String[] legalLinkTypes, DocumentDescription documentDescription, int hopcountMethod) throws ManifoldCFException
Delete from queue as a result of processing of an active document. The document is expected to be in one of the active states: ACTIVE, ACTIVESEEDING, ACTIVENEEDSRESCAN, ACTIVESEEDINGNEEDSRESCAN. The RESCAN variants are interpreted as meaning that the document should not be deleted, but should instead be popped back on the queue for a repeat processing attempt.- Parameters:
documentDescription
- is the description object for the document that was processed.hopcountMethod
- describes how to handle deletions for hopcount purposes.- Returns:
- the set of documents for which carrydown data was changed by this operation. These documents are likely to be requeued as a result of the change.
- Throws:
ManifoldCFException
-
markDocumentHopcountRemovalMultiple
DocumentDescription[] markDocumentHopcountRemovalMultiple(java.lang.Long jobID, java.lang.String[] legalLinkTypes, DocumentDescription[] documentDescriptions, int hopcountMethod) throws ManifoldCFException
Mark hopcount removal from queue as a result of processing of an active document. The document is expected to be in one of the active states: ACTIVE, ACTIVESEEDING, ACTIVENEEDSRESCAN, ACTIVESEEDINGNEEDSRESCAN. The RESCAN variants are interpreted as meaning that the document should not be marked as removed, but should instead be popped back on the queue for a repeat processing attempt.- Parameters:
documentDescriptions
- are the set of description objects for the documents that were processed.hopcountMethod
- describes how to handle deletions for hopcount purposes.- Returns:
- the set of documents for which carrydown data was changed by this operation. These documents are likely to be requeued as a result of the change.
- Throws:
ManifoldCFException
-
markDocumentHopcountRemoval
DocumentDescription[] markDocumentHopcountRemoval(java.lang.Long jobID, java.lang.String[] legalLinkTypes, DocumentDescription documentDescription, int hopcountMethod) throws ManifoldCFException
Mark hopcount removal from queue as a result of processing of an active document. The document is expected to be in one of the active states: ACTIVE, ACTIVESEEDING, ACTIVENEEDSRESCAN, ACTIVESEEDINGNEEDSRESCAN. The RESCAN variants are interpreted as meaning that the document should not be marked as removed, but should instead be popped back on the queue for a repeat processing attempt.- Parameters:
documentDescription
- is the description object for the document that was processed.hopcountMethod
- describes how to handle deletions for hopcount purposes.- Returns:
- the set of documents for which carrydown data was changed by this operation. These documents are likely to be requeued as a result of the change.
- Throws:
ManifoldCFException
-
markDocumentExpiredMultiple
DocumentDescription[] markDocumentExpiredMultiple(java.lang.Long jobID, java.lang.String[] legalLinkTypes, DocumentDescription[] documentDescriptions, int hopcountMethod) throws ManifoldCFException
Delete from queue as a result of expiration of an active document. The document is expected to be in one of the active states: ACTIVE, ACTIVESEEDING, ACTIVENEEDSRESCAN, ACTIVESEEDINGNEEDSRESCAN. Since the document expired, no special activity takes place as a result of the document being in a RESCAN state.- Parameters:
documentDescriptions
- are the set of description objects for the documents that were processed.hopcountMethod
- describes how to handle deletions for hopcount purposes.- Returns:
- the set of documents for which carrydown data was changed by this operation. These documents are likely to be requeued as a result of the change.
- Throws:
ManifoldCFException
-
markDocumentExpired
DocumentDescription[] markDocumentExpired(java.lang.Long jobID, java.lang.String[] legalLinkTypes, DocumentDescription documentDescription, int hopcountMethod) throws ManifoldCFException
Delete from queue as a result of expiration of an active document. The document is expected to be in one of the active states: ACTIVE, ACTIVESEEDING, ACTIVENEEDSRESCAN, ACTIVESEEDINGNEEDSRESCAN. Since the document expired, no special activity takes place as a result of the document being in a RESCAN state.- Parameters:
documentDescription
- is the description object for the document that was processed.hopcountMethod
- describes how to handle deletions for hopcount purposes.- Returns:
- the set of documents for which carrydown data was changed by this operation. These documents are likely to be requeued as a result of the change.
- Throws:
ManifoldCFException
-
markDocumentCleanedUpMultiple
DocumentDescription[] markDocumentCleanedUpMultiple(java.lang.Long jobID, java.lang.String[] legalLinkTypes, DocumentDescription[] documentDescriptions, int hopcountMethod) throws ManifoldCFException
Delete from queue as a result of cleaning up an unreachable document. The document is expected to be in the PURGATORY state. There is never any need to reprocess the document.- Parameters:
documentDescriptions
- are the set of description objects for the documents that were processed.hopcountMethod
- describes how to handle deletions for hopcount purposes.- Returns:
- the set of documents for which carrydown data was changed by this operation. These documents are likely to be requeued as a result of the change.
- Throws:
ManifoldCFException
-
markDocumentCleanedUp
DocumentDescription[] markDocumentCleanedUp(java.lang.Long jobID, java.lang.String[] legalLinkTypes, DocumentDescription documentDescription, int hopcountMethod) throws ManifoldCFException
Delete from queue as a result of cleaning up an unreachable document. The document is expected to be in the PURGATORY state. There is never any need to reprocess the document.- Parameters:
documentDescription
- is the description object for the document that was processed.hopcountMethod
- describes how to handle deletions for hopcount purposes.- Returns:
- the set of documents for which carrydown data was changed by this operation. These documents are likely to be requeued as a result of the change.
- Throws:
ManifoldCFException
-
carrydownChangeDocumentMultiple
void carrydownChangeDocumentMultiple(DocumentDescription[] documentDescriptions, IPriorityCalculator[] docPriorities) throws ManifoldCFException
Requeue a document set because of carrydown changes. This method is called when carrydown data is modified for a set of documents. The documents must be requeued for immediate reprocessing, even to the extent that if one is *already* being processed, it will need to be done over again.- Parameters:
documentDescriptions
- is the set of description objects for the documents that have had their parent carrydown information changed.docPriorities
- are the document priorities to assign to the documents, if needed.- Throws:
ManifoldCFException
-
carrydownChangeDocument
void carrydownChangeDocument(DocumentDescription documentDescription, IPriorityCalculator docPriority) throws ManifoldCFException
Requeue a document because of carrydown changes. This method is called when carrydown data is modified for a document. The document must be requeued for immediate reprocessing, even to the extent that if it is *already* being processed, it will need to be done over again.- Parameters:
documentDescription
- is the description object for the document that has had its parent carrydown information changed.docPriority
- is the document priority to assign to the document, if needed.- Throws:
ManifoldCFException
-
requeueDocumentMultiple
void requeueDocumentMultiple(DocumentDescription[] documentDescriptions, java.lang.Long[] executeTimes, int[] actions) throws ManifoldCFException
Requeue a document for further processing in the future. This method is called after a document is processed, when the job is a "continuous" one. It is essentially equivalent to noting that the document processing is complete, except the document remains on the queue.- Parameters:
documentDescriptions
- is the set of description objects for the document that was processed.executeTimes
- are the times that the documents should be rescanned. Null indicates "never".actions
- are what should be done when the time arrives. Choices are ACTION_RESCAN or ACTION_REMOVE.- Throws:
ManifoldCFException
-
requeueDocument
void requeueDocument(DocumentDescription documentDescription, java.lang.Long executeTime, int action) throws ManifoldCFException
Requeue a document for further processing in the future. This method is called after a document is processed, when the job is a "continuous" one. It is essentially equivalent to noting that the document processing is complete, except the document remains on the queue.- Parameters:
documentDescription
- is the description object for the document that was processed.executeTime
- is the time that the document should be rescanned. Null indicates "never".action
- is what should be done when the time arrives. Choices include ACTION_RESCAN or ACTION_REMOVE.- Throws:
ManifoldCFException
-
resetDocumentMultiple
void resetDocumentMultiple(DocumentDescription[] documentDescriptions, long executeTime, int action, long failTime, int failCount) throws ManifoldCFException
Reset documents for further processing in the future. This method is called after a service interruption is thrown. It is essentially equivalent to resetting the time for documents to be reprocessed.- Parameters:
documentDescriptions
- is the set of description objects for the document that was processed.executeTime
- is the time that the documents should be rescanned.failTime
- is the time beyond which hard failure should occur.failCount
- is the number of permitted failures before a hard error is signalled.- Throws:
ManifoldCFException
-
resetDocument
void resetDocument(DocumentDescription documentDescription, long executeTime, int action, long failTime, int failCount) throws ManifoldCFException
Reset an active document back to its former state. This gets done when there's a service interruption and the document cannot be processed yet.- Parameters:
documentDescription
- is the description object for the document that was processed.executeTime
- is the time that the document should be rescanned.failTime
- is the time that the document should be considered to have failed, if it has not been successfully read until then.failCount
- is the number of permitted failures before a hard error is signalled.- Throws:
ManifoldCFException
-
resetDeletingDocumentMultiple
void resetDeletingDocumentMultiple(DocumentDescription[] documentDescriptions, long checkTime) throws ManifoldCFException
Reset a set of deleting documents for further processing in the future. This method is called after some unknown number of the documents were deleted, but then an ingestion service interruption occurred. Note well: The logic here basically presumes that we cannot know whether the documents were indeed processed or not. If we knew for a fact that none of the documents had been handled, it would be possible to look at the document's current status and decide what the new status ought to be, based on a true rollback scenario. Such cases, however, are rare enough so that special logic is probably not worth it.- Parameters:
documentDescriptions
- is the set of description objects for the document that was processed.checkTime
- is the minimum time for the next cleaning attempt.- Throws:
ManifoldCFException
-
resetDeletingDocument
void resetDeletingDocument(DocumentDescription documentDescription, long checkTime) throws ManifoldCFException
Reset a deleting document back to its former state. This gets done when a deleting thread sees a service interruption, etc., from the ingestion system.- Parameters:
documentDescription
- is the description object for the document that was cleaned.checkTime
- is the minimum time for the next cleaning attempt.- Throws:
ManifoldCFException
-
resetCleaningDocument
void resetCleaningDocument(DocumentDescription documentDescription, long checkTime) throws ManifoldCFException
Reset a cleaning document back to its former state. This gets done when a cleaning thread sees a service interruption, etc., from the ingestion system.- Parameters:
documentDescription
- is the description object for the document that was cleaned.checkTime
- is the minimum time for the next cleaning attempt.- Throws:
ManifoldCFException
-
resetCleaningDocumentMultiple
void resetCleaningDocumentMultiple(DocumentDescription[] documentDescriptions, long checkTime) throws ManifoldCFException
Reset a set of cleaning documents for further processing in the future. This method is called after some unknown number of the documents were cleaned, but then an ingestion service interruption occurred. Note well: The logic here basically presumes that we cannot know whether the documents were indeed cleaned or not. If we knew for a fact that none of the documents had been handled, it would be possible to look at the document's current status and decide what the new status ought to be, based on a true rollback scenario. Such cases, however, are rare enough so that special logic is probably not worth it.- Parameters:
documentDescriptions
- is the set of description objects for the document that was cleaned.checkTime
- is the minimum time for the next cleaning attempt.- Throws:
ManifoldCFException
-
retryStartup
void retryStartup(JobStartRecord jobStartRecord, long failTime, int failRetryCount) throws ManifoldCFException
Retry startup.- Parameters:
jobStartRecord
- is the current job startup record.failTime
- is the new fail time (-1L if none).failRetryCount
- is the new fail retry count (-1 if none).- Throws:
ManifoldCFException
-
retrySeeding
void retrySeeding(JobSeedingRecord jobSeedingRecord, long failTime, int failRetryCount) throws ManifoldCFException
Retry seeding.- Parameters:
jobSeedingRecord
- is the current job seeding record.failTime
- is the new fail time (-1L if none).failRetryCount
- is the new fail retry count (-1 if none).- Throws:
ManifoldCFException
-
retryNotification
void retryNotification(JobNotifyRecord jobNotifyRecord, long failTime, int failRetryCount) throws ManifoldCFException
Retry notification.- Parameters:
jobNotifyRecord
- is the current job notification record.failTime
- is the new fail time (-1L if none).failRetryCount
- is the new fail retry count (-1 if none).- Throws:
ManifoldCFException
-
retryDeleteNotification
void retryDeleteNotification(JobNotifyRecord jnr, long failTime, int failCount) throws ManifoldCFException
Retry delete notification.- Parameters:
jnr
- is the current job notification record.failTime
- is the new fail time (-1L if none).failCount
- is the new fail retry count (-1 if none).- Throws:
ManifoldCFException
-
addDocumentsInitial
void addDocumentsInitial(java.lang.String processID, java.lang.Long jobID, java.lang.String[] legalLinkTypes, java.lang.String[] docIDHashes, java.lang.String[] docIDs, boolean overrideSchedule, int hopcountMethod, IPriorityCalculator[] documentPriorities, java.lang.String[][] prereqEventNames) throws ManifoldCFException
Add an initial set of documents to the queue. This method is called during job startup, when the queue is being loaded. A set of document references is passed to this method, which updates the status of the document in the specified job's queue, according to specific state rules.- Parameters:
processID
- is the current process ID.jobID
- is the job identifier.legalLinkTypes
- is the set of legal link types that this connector generates.docIDHashes
- are the hashes of the local document identifiers (primary key).docIDs
- are the local document identifiers.overrideSchedule
- is true if any existing document schedule should be overridden.hopcountMethod
- is either accurate, nodelete, or neverdelete.documentPriorities
- are the document priorities corresponding to the document identifiers.prereqEventNames
- are the events that must be completed before each document can be processed.- Throws:
ManifoldCFException
-
addRemainingDocumentsInitial
void addRemainingDocumentsInitial(java.lang.String processID, java.lang.Long jobID, java.lang.String[] legalLinkTypes, java.lang.String[] docIDHashes, int hopcountMethod) throws ManifoldCFException
Add an initial set of remaining documents to the queue. This method is called during job startup, when the queue is being loaded, to list documents that were NOT included by calling addDocumentsInitial(). Documents listed here are simply designed to enable the framework to get rid of old, invalid seeds. They are not queued for processing.- Parameters:
processID
- is the current process ID.jobID
- is the job identifier.legalLinkTypes
- is the set of legal link types that this connector generates.docIDHashes
- are the hash values of the local document identifiers.hopcountMethod
- is either accurate, nodelete, or neverdelete.- Throws:
ManifoldCFException
-
doneDocumentsInitial
void doneDocumentsInitial(java.lang.Long jobID, java.lang.String[] legalLinkTypes, boolean isPartial, int hopcountMethod) throws ManifoldCFException
Signal that a seeding pass has been done. Call this method at the end of a seeding pass. It is used to perform the bookkeeping necessary to maintain the hopcount table.- Parameters:
jobID
- is the job identifier.legalLinkTypes
- is the set of legal link types that this connector generates.isPartial
- is set if the seeds provided are only a partial list. Some connectors cannot supply a full list of seeds on every seeding iteration; this acknowledges that limitation.hopcountMethod
- describes how to handle deletions for hopcount purposes.- Throws:
ManifoldCFException
-
beginEventSequence
boolean beginEventSequence(java.lang.String processID, java.lang.String eventName) throws ManifoldCFException
Begin an event sequence.- Parameters:
processID
- is the current process ID.eventName
- is the name of the event.- Returns:
- true if the event could be created, or false if it's already there.
- Throws:
ManifoldCFException
-
completeEventSequence
void completeEventSequence(java.lang.String eventName) throws ManifoldCFException
Complete an event sequence.- Parameters:
eventName
- is the name of the event.- Throws:
ManifoldCFException
-
findHopCounts
boolean[] findHopCounts(java.lang.Long jobID, java.lang.String[] legalLinkTypes, java.lang.String[] docIDHashes, java.lang.String linkType, int limit, int hopcountMethod) throws ManifoldCFException
Get the specified hop counts, with the limit as described.- Parameters:
jobID
- is the job identifier.legalLinkTypes
- is the set of legal link types that this connector generates.docIDHashes
- is the set of document hashes to find the hopcount for.linkType
- is the kind of link to find the hopcount for.limit
- is the limit, beyond which a negative distance may be returned.hopcountMethod
- describes how to handle deletions for hopcount purposes.- Returns:
- a vector of booleans corresponding to the documents requested. A true value is returned if the document is within the specified limit, false otherwise.
- Throws:
ManifoldCFException
-
getAllSeeds
java.lang.String[] getAllSeeds(java.lang.Long jobID) throws ManifoldCFException
Get all the current seeds. Returns the seed document identifiers for a job.- Parameters:
jobID
- is the job identifier.- Returns:
- the document identifier hashes that are currently considered to be seeds.
- Throws:
ManifoldCFException
-
addDocument
void addDocument(java.lang.String processID, java.lang.Long jobID, java.lang.String[] legalLinkTypes, java.lang.String docIDHash, java.lang.String docID, java.lang.String parentIdentifierHash, java.lang.String relationshipType, int hopcountMethod, java.lang.String[] dataNames, java.lang.Object[][] dataValues, IPriorityCalculator priority, java.lang.String[] prereqEventNames) throws ManifoldCFException
Add a document to the queue. This method is called during document processing, when a document reference is discovered. The document reference is passed to this method, which updates the status of the document in the specified job's queue, according to specific state rules.- Parameters:
processID
- is the current process ID.jobID
- is the job identifier.legalLinkTypes
- is the set of legal link types that this connector generates.docIDHash
- is the local document identifier hash value.parentIdentifierHash
- is the optional parent identifier hash value for this document. Pass null if none. MUST be present in the case of carrydown information.relationshipType
- is the optional link type between this document and its parent. Pass null if there is no relationship with a parent.hopcountMethod
- is either accurate, nodelete, or neverdelete.dataNames
- are the names of the data to carry down to the child from this parent.dataValues
- are the values to carry down to the child from this parent, corresponding to dataNames above. If CharacterInput objects are passed in here, it is the caller's responsibility to clean these up.priority
- is the desired document priority for the document.prereqEventNames
- are the events that must be completed before the document can be processed.- Throws:
ManifoldCFException
-
addDocuments
void addDocuments(java.lang.String processID, java.lang.Long jobID, java.lang.String[] legalLinkTypes, java.lang.String[] docIDHashes, java.lang.String[] docIDs, java.lang.String parentIdentifierHash, java.lang.String relationshipType, int hopcountMethod, java.lang.String[][] dataNames, java.lang.Object[][][] dataValues, IPriorityCalculator[] priorities, java.lang.String[][] prereqEventNames) throws ManifoldCFException
Add documents to the queue in bulk. This method is called during document processing, when a set of document references are discovered. The document references are passed to this method, which updates the status of the document(s) in the specified job's queue, according to specific state rules.- Parameters:
processID
- is the current process ID.jobID
- is the job identifier.legalLinkTypes
- is the set of legal link types that this connector generates.docIDHashes
- are the hashes of the local document identifiers.docIDs
- are the local document identifiers.parentIdentifierHash
- is the optional parent identifier hash of these documents. Pass null if none. MUST be present in the case of carrydown information.relationshipType
- is the optional link type between this document and its parent. Pass null if there is no relationship with a parent.hopcountMethod
- is either accurate, nodelete, or neverdelete.dataNames
- are the names of the data to carry down to the child from this parent.dataValues
- are the values to carry down to the child from this parent, corresponding to dataNames above. If CharacterInput objects are passed in here, it is the caller's responsibility to clean these up.priorities
- are the desired document priorities for the documents.prereqEventNames
- are the events that must be completed before each document can be processed.- Throws:
ManifoldCFException
-
finishDocuments
DocumentDescription[] finishDocuments(java.lang.Long jobID, java.lang.String[] legalLinkTypes, java.lang.String[] parentIdentifierHashes, int hopcountMethod) throws ManifoldCFException
Complete adding child documents to the queue, for a set of documents. This method is called at the end of document processing, to help the hopcount tracking engine do its bookkeeping.- Parameters:
jobID
- is the job identifier.legalLinkTypes
- is the set of legal link types that this connector generates.parentIdentifierHashes
- are the hashes of the document identifiers for whom child link extraction just took place.hopcountMethod
- describes how to handle deletions for hopcount purposes.- Returns:
- the set of documents for which carrydown data was changed by this operation. These documents are likely to be requeued as a result of the change.
- Throws:
ManifoldCFException
-
revertDocuments
void revertDocuments(java.lang.Long jobID, java.lang.String[] legalLinkTypes, java.lang.String[] parentIdentifierHashes) throws ManifoldCFException
Undo the addition of child documents to the queue, for a set of documents. This method is called at the end of document processing, to back out any incomplete additions to the queue, and restore the status quo ante prior to the incomplete additions. Call this method instead of finishDocuments() if the addition of documents was not completed.- Parameters:
jobID
- is the job identifier.legalLinkTypes
- is the set of legal link types that this connector generates.parentIdentifierHashes
- are the hashes of the document identifiers for whom child link extraction just took place.- Throws:
ManifoldCFException
-
retrieveParentData
java.lang.String[] retrieveParentData(java.lang.Long jobID, java.lang.String docIDHash, java.lang.String dataName) throws ManifoldCFException
Retrieve specific parent data for a given document.- Parameters:
jobID
- is the job identifier.docIDHash
- is the hash of the document identifier.dataName
- is the kind of data to retrieve.- Returns:
- the unique data values.
- Throws:
ManifoldCFException
-
retrieveParentDataAsFiles
CharacterInput[] retrieveParentDataAsFiles(java.lang.Long jobID, java.lang.String docIDHash, java.lang.String dataName) throws ManifoldCFException
Retrieve specific parent data for a given document.- Parameters:
jobID
- is the job identifier.docIDHash
- is the document identifier hash value.dataName
- is the kind of data to retrieve.- Returns:
- the unique data values.
- Throws:
ManifoldCFException
-
manualStart
void manualStart(java.lang.Long jobID, boolean requestMinimum) throws ManifoldCFException
Manually start a job. The specified job will be run REGARDLESS of the timed windows, and will not cease until complete. If the job is already running, this operation will assure that the job does not pause when its window ends. The job can be manually paused, or manually aborted.- Parameters:
jobID
- is the ID of the job to start.requestMinimum
- is true if a minimal job run is requested.- Throws:
ManifoldCFException
-
manualStart
void manualStart(java.lang.Long jobID) throws ManifoldCFException
Manually start a job. The specified job will be run REGARDLESS of the timed windows, and will not cease until complete. If the job is already running, this operation will assure that the job does not pause when its window ends. The job can be manually paused, or manually aborted.- Parameters:
jobID
- is the ID of the job to start.- Throws:
ManifoldCFException
-
manualAbort
void manualAbort(java.lang.Long jobID) throws ManifoldCFException
Manually abort a running job. The job will be permanently stopped, and will not run again until automatically started based on schedule, or manually started.- Parameters:
jobID
- is the job to abort.- Throws:
ManifoldCFException
-
manualAbortRestart
void manualAbortRestart(java.lang.Long jobID, boolean requestMinimum) throws ManifoldCFException
Manually restart a running job. The job will be stopped and restarted. Any schedule affinity will be lost, until the job finishes on its own.- Parameters:
jobID
- is the job to abort.requestMinimum
- is true if a minimal job run is requested.- Throws:
ManifoldCFException
-
manualAbortRestart
void manualAbortRestart(java.lang.Long jobID) throws ManifoldCFException
Manually restart a running job. The job will be stopped and restarted. Any schedule affinity will be lost, until the job finishes on its own.- Parameters:
jobID
- is the job to abort.- Throws:
ManifoldCFException
-
pauseJob
void pauseJob(java.lang.Long jobID) throws ManifoldCFException
Pause a job.- Parameters:
jobID
- is the job identifier to pause.- Throws:
ManifoldCFException
-
restartJob
void restartJob(java.lang.Long jobID) throws ManifoldCFException
Restart a paused job.- Parameters:
jobID
- is the job identifier to restart.- Throws:
ManifoldCFException
-
resetJobSchedule
void resetJobSchedule(java.lang.Long jobID) throws ManifoldCFException
Reset job schedule. This re-evaluates whether the job should be started now. This method would typically be called after a job's scheduling window has been changed.- Parameters:
jobID
- is the job identifier.- Throws:
ManifoldCFException
-
startJobs
void startJobs(long currentTime, java.util.List<java.lang.Long> unwaitList) throws ManifoldCFException
Start jobs based on schedule. This method marks all the appropriate jobs as "in progress", which is all that should be needed to start them.- Parameters:
currentTime
- is the current time in milliseconds since epoch.unwaitList
- is filled in with the set of job id's that were resumed (Long's).- Throws:
ManifoldCFException
-
waitJobs
void waitJobs(long currentTime, java.util.List<java.lang.Long> waitList) throws ManifoldCFException
Put active or paused jobs in wait state, if they've exceeded their window.- Parameters:
currentTime
- is the current time in milliseconds since epoch.waitList
- is filled in with the set of job id's that were put into a wait state (Long's).- Throws:
ManifoldCFException
-
getJobsReadyForSeeding
JobSeedingRecord[] getJobsReadyForSeeding(java.lang.String processID, long currentTime) throws ManifoldCFException
Get the list of jobs that are ready for seeding.- Parameters:
processID
- is the current process ID.currentTime
- is the current time in milliseconds since epoch.- Returns:
- jobs that are active and are running in adaptive mode. These will be seeded based on what the connector says should be added to the queue.
- Throws:
ManifoldCFException
-
resetSeedJob
void resetSeedJob(java.lang.Long jobID) throws ManifoldCFException
Reset a seeding job back to "active" state.- Parameters:
jobID
- is the job id.- Throws:
ManifoldCFException
-
getJobsReadyForDeleteCleanup
JobDeleteRecord[] getJobsReadyForDeleteCleanup(java.lang.String processID) throws ManifoldCFException
Get the list of jobs that are ready for delete cleanup.- Parameters:
processID
- is the current process ID.- Returns:
- jobs that were in the "readyfordelete" state.
- Throws:
ManifoldCFException
-
getJobsReadyForStartup
JobStartRecord[] getJobsReadyForStartup(java.lang.String processID) throws ManifoldCFException
Get the list of jobs that are ready for startup.- Parameters:
processID
- is the current process ID.- Returns:
- jobs that were in the "readyforstartup" state. These will be marked as being in the "starting up" state.
- Throws:
ManifoldCFException
-
getJobsReadyForInactivity
JobNotifyRecord[] getJobsReadyForInactivity(java.lang.String processID) throws ManifoldCFException
Find the list of jobs that need to have their connectors notified of job completion.- Parameters:
processID
- is the current process ID.- Returns:
- the ID's of jobs that need their output connectors notified in order to become inactive.
- Throws:
ManifoldCFException
-
getJobsReadyForDelete
JobNotifyRecord[] getJobsReadyForDelete(java.lang.String processID) throws ManifoldCFException
Find the list of jobs that need to have their connectors notified of job deletion.- Parameters:
processID
- is the process ID.- Returns:
- the ID's of jobs that need their output connectors notified in order to be removed.
- Throws:
ManifoldCFException
-
inactivateJob
void inactivateJob(java.lang.Long jobID) throws ManifoldCFException
Inactivate a job, from the notification state.- Parameters:
jobID
- is the ID of the job to inactivate.- Throws:
ManifoldCFException
-
removeJob
void removeJob(java.lang.Long jobID) throws ManifoldCFException
Remove a job, from the notification state.- Parameters:
jobID
- is the ID of the job to remove.- Throws:
ManifoldCFException
-
resetStartDeleteJob
void resetStartDeleteJob(java.lang.Long jobID) throws ManifoldCFException
Reset a job starting for delete back to "ready for delete" state.- Parameters:
jobID
- is the job id.- Throws:
ManifoldCFException
-
resetNotifyJob
void resetNotifyJob(java.lang.Long jobID) throws ManifoldCFException
Reset a job that is notifying back to "ready for notify" state.- Parameters:
jobID
- is the job id.- Throws:
ManifoldCFException
-
resetDeleteNotifyJob
void resetDeleteNotifyJob(java.lang.Long jobID) throws ManifoldCFException
Reset a job that is delete notifying back to "ready for delete notify" state.- Parameters:
jobID
- is the job id.- Throws:
ManifoldCFException
-
resetStartupJob
void resetStartupJob(java.lang.Long jobID) throws ManifoldCFException
Reset a starting job back to "ready for startup" state.- Parameters:
jobID
- is the job id.- Throws:
ManifoldCFException
-
prepareDeleteScan
void prepareDeleteScan(java.lang.Long jobID) throws ManifoldCFException
Prepare for a delete scan.- Parameters:
jobID
- is the job id.- Throws:
ManifoldCFException
-
prepareJobScan
void prepareJobScan(java.lang.Long jobID, java.lang.String[] legalLinkTypes, int hopcountMethod, int connectorModel, boolean continuousJob, boolean fromBeginningOfTime, boolean requestMinimum) throws ManifoldCFException
Prepare a job to be run. This method is called regardless of the details of the job; what differs is only the flags that are passed in. The code inside will determine the appropriate procedures. (This method replaces prepareFullScan() and prepareIncrementalScan(). )- Parameters:
jobID
- is the job id.legalLinkTypes
- are the link types allowed for the job.hopcountMethod
- describes how to handle deletions for hopcount purposes.connectorModel
- is the model used by the connector for the job.continuousJob
- is true if the job is a continuous one.fromBeginningOfTime
- is true if the job is running starting from time 0.requestMinimum
- is true if the minimal amount of work is requested for the job run.- Throws:
ManifoldCFException
-
noteJobDeleteStarted
void noteJobDeleteStarted(java.lang.Long jobID, long startTime) throws ManifoldCFException
Note job delete started.- Parameters:
jobID
- is the job id.startTime
- is the job start time.- Throws:
ManifoldCFException
-
noteJobStarted
void noteJobStarted(java.lang.Long jobID, long startTime, java.lang.String seedingVersion) throws ManifoldCFException
Note job started.- Parameters:
jobID
- is the job id.startTime
- is the job start time.seedingVersion
- is the seeding version to record with the job start.- Throws:
ManifoldCFException
-
noteJobSeeded
void noteJobSeeded(java.lang.Long jobID, java.lang.String seedingVersion) throws ManifoldCFException
Note job seeded.- Parameters:
jobID
- is the job id.seedingVersion
- is the seeding version string to record.- Throws:
ManifoldCFException
-
noteConnectorDeregistration
void noteConnectorDeregistration(java.lang.String[] connectionNames) throws ManifoldCFException
Note the deregistration of a connector used by the specified connections. This method will be called when the connector is deregistered. Jobs that use these connections must therefore enter appropriate states.- Parameters:
connectionNames
- is the set of connection names.- Throws:
ManifoldCFException
-
noteConnectorRegistration
void noteConnectorRegistration(java.lang.String[] connectionNames) throws ManifoldCFException
Note the registration of a connector used by the specified connections. This method will be called when a connector is registered, on which the specified connections depend.- Parameters:
connectionNames
- is the set of connection names.- Throws:
ManifoldCFException
-
noteNotificationConnectorDeregistration
void noteNotificationConnectorDeregistration(java.lang.String[] connectionNames) throws ManifoldCFException
Note the deregistration of a notification connector used by the specified connections. This method will be called when the connector is deregistered. Jobs that use these connections must therefore enter appropriate states.- Parameters:
connectionNames
- is the set of connection names.- Throws:
ManifoldCFException
-
noteNotificationConnectorRegistration
void noteNotificationConnectorRegistration(java.lang.String[] connectionNames) throws ManifoldCFException
Note the registration of a notification connector used by the specified connections. This method will be called when a connector is registered, on which the specified connections depend.- Parameters:
connectionNames
- is the set of connection names.- Throws:
ManifoldCFException
-
noteConnectionChange
void noteConnectionChange(java.lang.String connectionName) throws ManifoldCFException
Note a change in connection configuration. This method will be called whenever a connection's configuration is modified, or when an external repository change is signalled.- Throws:
ManifoldCFException
-
noteNotificationConnectionChange
void noteNotificationConnectionChange(java.lang.String connectionName) throws ManifoldCFException
Note a change in notification connection configuration. This method will be called whenever a connection's configuration is modified, or when an external repository change is signalled.- Throws:
ManifoldCFException
-
noteOutputConnectorDeregistration
void noteOutputConnectorDeregistration(java.lang.String[] connectionNames) throws ManifoldCFException
Note the deregistration of an output connector used by the specified connections. This method will be called when the connector is deregistered. Jobs that use these connections must therefore enter appropriate states.- Parameters:
connectionNames
- is the set of connection names.- Throws:
ManifoldCFException
-
noteOutputConnectorRegistration
void noteOutputConnectorRegistration(java.lang.String[] connectionNames) throws ManifoldCFException
Note the registration of an output connector used by the specified connections. This method will be called when a connector is registered, on which the specified connections depend.- Parameters:
connectionNames
- is the set of connection names.- Throws:
ManifoldCFException
-
noteOutputConnectionChange
void noteOutputConnectionChange(java.lang.String connectionName) throws ManifoldCFException
Note a change in output connection configuration. This method will be called whenever a connection's configuration is modified, or when an external output target change is signalled.- Throws:
ManifoldCFException
-
noteTransformationConnectorDeregistration
void noteTransformationConnectorDeregistration(java.lang.String[] connectionNames) throws ManifoldCFException
Note the deregistration of a transformation connector used by the specified connections. This method will be called when the connector is deregistered. Jobs that use these connections must therefore enter appropriate states.- Parameters:
connectionNames
- is the set of connection names.- Throws:
ManifoldCFException
-
noteTransformationConnectorRegistration
void noteTransformationConnectorRegistration(java.lang.String[] connectionNames) throws ManifoldCFException
Note the registration of a transformation connector used by the specified connections. This method will be called when a connector is registered, on which the specified connections depend.- Parameters:
connectionNames
- is the set of connection names.- Throws:
ManifoldCFException
-
noteTransformationConnectionChange
void noteTransformationConnectionChange(java.lang.String connectionName) throws ManifoldCFException
Note a change in transformation connection configuration. This method will be called whenever a connection's configuration is modified.- Throws:
ManifoldCFException
-
assessMarkedJobs
void assessMarkedJobs() throws ManifoldCFException
Assess jobs marked to be in need of assessment for connector status changes.- Throws:
ManifoldCFException
-
deleteJobsReadyForDelete
void deleteJobsReadyForDelete() throws ManifoldCFException
Delete jobs in need of being deleted (which are marked "ready for delete"). This method is meant to be called periodically to perform delete processing on jobs.- Throws:
ManifoldCFException
-
getNextDeletableDocuments
DocumentDescription[] getNextDeletableDocuments(java.lang.String processID, int n, long currentTime) throws ManifoldCFException
Get list of deletable document descriptions. This list will take into account multiple jobs that may own the same document.- Parameters:
processID
- is the current process ID.n
- is the maximum number of documents to return.currentTime
- is the current time; some fetches do not occur until a specific time.- Returns:
- the document descriptions for these documents.
- Throws:
ManifoldCFException
-
getNextCleanableDocuments
DocumentSetAndFlags getNextCleanableDocuments(java.lang.String processID, int n, long currentTime) throws ManifoldCFException
Get list of cleanable document descriptions. This list will take into account multiple jobs that may own the same document.- Parameters:
processID
- is the current process ID.n
- is the maximum number of documents to return.currentTime
- is the current time; some fetches do not occur until a specific time.- Returns:
- the document descriptions for these documents.
- Throws:
ManifoldCFException
-
deleteIngestedDocumentIdentifiers
void deleteIngestedDocumentIdentifiers(DocumentDescription[] identifiers) throws ManifoldCFException
Delete ingested document identifiers (as part of deleting the owning job). The number of identifiers specified is guaranteed to be less than the maxInClauseCount for the database.- Parameters:
identifiers
- is the set of document identifiers.- Throws:
ManifoldCFException
-
errorAbort
boolean errorAbort(java.lang.Long jobID, java.lang.String errorText) throws ManifoldCFException
Abort a running job due to a fatal error condition.- Parameters:
jobID
- is the job to abort.errorText
- is the error text.- Returns:
- true if this is the first abort for the job.
- Throws:
ManifoldCFException
-
finishJobStops
void finishJobStops(long timestamp, java.util.List<IJobDescription> modifiedJobs, java.util.List<java.lang.Integer> stopNotificationTypes) throws ManifoldCFException
Complete the sequence that stops jobs, either for abort, pause, or because of a scheduling window. The logic will move the job to its next state (INACTIVE, PAUSED, ACTIVEWAIT), and will record the jobs that have been so modified.- Parameters:
timestamp
- is the current time in milliseconds since epoch.modifiedJobs
- is filled in with the set of IJobDescription objects that were stopped.stopNotificationTypes
- is filled in with the type of stop notification.- Throws:
ManifoldCFException
-
finishJobResumes
void finishJobResumes(long timestamp, java.util.List<IJobDescription> modifiedJobs) throws ManifoldCFException
Complete the sequence that resumes jobs, either from a pause or from a scheduling window wait. The logic will restore the job to an active state (many possibilities depending on connector status), and will record the jobs that have been so modified.- Parameters:
timestamp
- is the current time in milliseconds since epoch.modifiedJobs
- is filled in with the set of IJobDescription objects that were resumed.- Throws:
ManifoldCFException
-
finishJobs
void finishJobs() throws ManifoldCFException
Put all eligible jobs in the "shutting down" state.- Throws:
ManifoldCFException
-
resetJobs
void resetJobs(long currentTime, java.util.List<IJobDescription> resetJobs) throws ManifoldCFException
Reset eligible jobs either back to the "inactive" state, or make them active again. The latter will occur if the cleanup phase of the job generated more pending documents. This method is used to pick up all jobs in the shutting down state whose purgatory or being-cleaned records have been all processed.- Parameters:
currentTime
- is the current time in milliseconds since epoch.resetJobs
- is filled in with the set of IJobDescription objects that were reset.- Throws:
ManifoldCFException
-
getStatus
JobStatus getStatus(java.lang.Long jobID) throws ManifoldCFException
Get the status of a job.- Parameters:
jobID
- is the job ID.- Returns:
- the status object for the specified job.
- Throws:
ManifoldCFException
-
getAllStatus
JobStatus[] getAllStatus() throws ManifoldCFException
Get a list of all jobs, and their status information.- Returns:
- an ordered array of job status objects.
- Throws:
ManifoldCFException
-
getRunningJobs
JobStatus[] getRunningJobs() throws ManifoldCFException
Get a list of running jobs. This is for status reporting.- Returns:
- an array of the job status objects.
- Throws:
ManifoldCFException
-
getFinishedJobs
JobStatus[] getFinishedJobs() throws ManifoldCFException
Get a list of completed jobs, and their statistics.- Returns:
- an array of the job status objects.
- Throws:
ManifoldCFException
-
getStatus
JobStatus getStatus(java.lang.Long jobID, boolean includeCounts) throws ManifoldCFException
Get the status of a job.- Parameters:
jobID
- is the job ID.includeCounts
- is true if document counts should be included.- Returns:
- the status object for the specified job.
- Throws:
ManifoldCFException
-
getAllStatus
JobStatus[] getAllStatus(boolean includeCounts) throws ManifoldCFException
Get a list of all jobs, and their status information.- Parameters:
includeCounts
- is true if document counts should be included.- Returns:
- an ordered array of job status objects.
- Throws:
ManifoldCFException
-
getRunningJobs
JobStatus[] getRunningJobs(boolean includeCounts) throws ManifoldCFException
Get a list of running jobs. This is for status reporting.- Parameters:
includeCounts
- is true if document counts should be included.- Returns:
- an array of the job status objects.
- Throws:
ManifoldCFException
-
getFinishedJobs
JobStatus[] getFinishedJobs(boolean includeCounts) throws ManifoldCFException
Get a list of completed jobs, and their statistics.- Parameters:
includeCounts
- is true if document counts should be included.- Returns:
- an array of the job status objects.
- Throws:
ManifoldCFException
-
getStatus
JobStatus getStatus(java.lang.Long jobID, boolean includeCounts, int maxCount) throws ManifoldCFException
Get the status of a job.- Parameters:
jobID
- is the job ID.includeCounts
- is true if document counts should be included.maxCount
- is the maximum number of documents we want to count for each status.- Returns:
- the status object for the specified job.
- Throws:
ManifoldCFException
-
getAllStatus
JobStatus[] getAllStatus(boolean includeCounts, int maxCount) throws ManifoldCFException
Get a list of all jobs, and their status information.- Parameters:
includeCounts
- is true if document counts should be included.maxCount
- is the maximum number of documents we want to count for each status.- Returns:
- an ordered array of job status objects.
- Throws:
ManifoldCFException
-
getRunningJobs
JobStatus[] getRunningJobs(boolean includeCounts, int maxCount) throws ManifoldCFException
Get a list of running jobs. This is for status reporting.- Parameters:
includeCounts
- is true if document counts should be included.maxCount
- is the maximum number of documents we want to count for each status.- Returns:
- an array of the job status objects.
- Throws:
ManifoldCFException
-
getFinishedJobs
JobStatus[] getFinishedJobs(boolean includeCounts, int maxCount) throws ManifoldCFException
Get a list of completed jobs, and their statistics.- Parameters:
includeCounts
- is true if document counts should be included.maxCount
- is the maximum number of documents we want to count for each status.- Returns:
- an array of the job status objects.
- Throws:
ManifoldCFException
-
genDocumentStatus
IResultSet genDocumentStatus(java.lang.String connectionName, StatusFilterCriteria filterCriteria, SortOrder sortOrder, int startRow, int rowCount) throws ManifoldCFException
Run a 'document status' report.- Parameters:
connectionName
- is the name of the connection.filterCriteria
- are the criteria used to limit the records considered for the report.sortOrder
- is the specified sort order of the final report.startRow
- is the first row to include.rowCount
- is the number of rows to include.- Returns:
- the results, with the following columns: identifier, job, state, status, scheduled, action, retrycount, retrylimit. The "scheduled" column and the "retrylimit" column are long values representing a time; all other values will be user-friendly strings.
- Throws:
ManifoldCFException
-
genQueueStatus
IResultSet genQueueStatus(java.lang.String connectionName, StatusFilterCriteria filterCriteria, SortOrder sortOrder, BucketDescription idBucketDescription, int startRow, int rowCount) throws ManifoldCFException
Run a 'queue status' report.- Parameters:
connectionName
- is the name of the connection.filterCriteria
- are the criteria used to limit the records considered for the report.sortOrder
- is the specified sort order of the final report.idBucketDescription
- is the bucket description for generating the identifier class.startRow
- is the first row to include.rowCount
- is the number of rows to include.- Returns:
- the results, with the following columns: idbucket, inactive, processing, expiring, deleting, processready, expireready, processwaiting, expirewaiting
- Throws:
ManifoldCFException
-
-