# US 10,372,465 B2 · System and method for controlling batch jobs with plugins

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,372,465 B2
- Document ID: US10372465B2
- Status: Granted
- Kind: B2
- Application number: 15/389,873
- Filed: 2016-12-23
- Published: 2018-06-28
- Granted: 2019-08-06
- Earliest claimed: 2016-12-23
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Colleen M. Balkan; Andre J. Marais; Brian P. Conlon; Robert D. O'Connell, Jr.; John Glenn H. Santos; William C. Hedges
- Web page: https://patentgrep.com/patent/US10372465B2

## CPC

- G06F 9/44526: {Plug-ins; Add-ons}
- G06F 3/048: Interaction techniques based on graphical user interfaces [GUI]
- G06F 9/45512: {Command shells}
- G06F 9/466: {Transaction processing}
- G06F 9/4843: {by program, e.g. task dispatcher, supervisor, operating system}
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 16/245: Query processing
- G06F 16/2453: Query optimisation
- G06F 16/2455: Query execution
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems, methods, and other embodiments associated with controlling batch jobs with plugins are described. In one embodiment, a method includes querying a batch definition database to retrieve a record identification plugin including a first declarative statement defining parameters of the record identification plugin and a database query statement used by the record identification plugin to select records within a database. The example method may also include querying the batch definition database to retrieve a process records plugin including a second declarative statement defining how the process records plugin is to process the selected records. The example method may also include interpreting the first declarative statement to control execution of a batch process to select the records within the database. The example method may also include interpreting the second declarative statement to control execution of the batch process to process the records to create a batch job result.

## Claims

### Claim 1

A non-transitory computer-readable medium storing computer-executable instructions that when executed by a processor of a computer causes the processor to:
control execution of a batch process for a batch job by:
querying a batch definition database to retrieve a record identification plugin comprising a first declarative definition and a database query statement used by the record identification plugin to select records within a database for processing by the batch job;
querying the batch definition database to retrieve a process records plugin comprising a second declarative definition defining how the process records plugin is to process the records selected by the record identification plugin;
interpreting the first declarative definition of the record identification plugin to control execution of the batch process to select the records within the database using the database query statement; and
interpreting the second declarative definition of the process records plugin to control execution of the batch process to process the records selected by the record identification plugin to create a batch job result.

### Claim 2 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the execution of the batch process is performed through non-compiling declarative definition interpretation that does not compile programming code.

### Claim 3 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the computer-executable instructions cause the processor to:
query the batch definition database to identify strategy instructions for the batch job, wherein the strategy instructions are either:
(i) a thread level select strategy specifying that the record identification plugin is to select, but not load into a memory, the records from the database and return an identifier of the records for processing by one or more threads of the process records plugin; or
(ii) a job level select strategy specifying that the record identification plugin is to load the records into the memory for assignment of the records from the memory to the one or more threads of the process records plugin; and
control execution of the batch process based upon the strategy instructions identified by the query.

### Claim 4 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the computer-executable instructions cause the processor to:
query the batch definition database to identify a job type of the batch job, wherein the job type is either:
(i) an ad-hoc job type used to implement logic, of the process records plugin, upon the records selected by the records identification plugin; or
(ii) an extract job type used to extract data from the records selected by the record identification plugin and store the data within an extract file; and
control execution of the batch process based upon job type.

### Claim 5 (depends on 4)

The non-transitory computer-readable medium of claim 4, wherein the computer-executable instructions cause the processor to:
responsive to the job type being the extract job type:
(i) extract the data from the database into a data area using the records identification plugin;
(ii) determine a file path, a file name, and a data format for the extract file based upon the job type; and
(iii) store the data into the extract file according to the data format, wherein the extract file is stored using the file path and the file name.

### Claim 6 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the computer-executable instructions cause the processor to:
query the batch definition database to identify a batch control record that references batch execution program code that is executed by the batch process; and
interpret the first declarative definition and the second declarative definition into a script that is executed by the batch execution program code.

### Claim 7 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the computer-executable instructions cause the processor to:
construct the batch job by:
displaying a batch job definition interface populated with:
(i) a first interface with functionality used to receive the first declarative definition for the record identification plugin and the database query statement; and
(ii) a second interface with functionality used to receive the second declarative definition for the process records plugin; and
responsive to receiving the first declarative definition, the database query statement, and the second declarative definition through the batch job definition interface:
(i) constructing the record identification plugin based upon the first declarative definition and the database query statement;
(ii) constructing the process records plugin based upon the second declarative definition;
(iii) storing the record identification plugin and the process records plugin within the batch definition database; and
(iv) constructing the batch job to reference the record identification plugin and the process records plugin.

### Claim 8 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the computer-executable instructions cause the processor to:
during execution of a thread of the batch process:
(i) responsive to a current work unit being a first work unit for the thread, set a first parameter to a first value indicative of the current work unit being the first work unit; and
(ii) responsive to the current work unit being a last work unit for the thread, set a second parameter to a second value indicative of the current work unit being the last work unit.

### Claim 9 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the computer-executable instructions cause the processor to:
responsive to receiving a first parameter change request for the record identification plugin, update the batch definition database based upon the first parameter change request; and
responsive to receiving a second parameter change request for the process records plugin, update the batch definition database based upon the second parameter change request.

### Claim 10

A computing system, comprising:
a processor connect to memory;
an analysis module stored on a non-transitory computer readable medium and configured with instructions that when executed by the processor cause the processor to:
control execution of a batch process for a batch job by:
(i) querying a batch definition database to retrieve a record identification plugin comprising a first declarative definition and a database query statement used by the record identification plugin to select records within a database; and
(ii) interpreting the first declarative definition of the record identification plugin to control execution of the batch process to select the records within the database using the database query statement; and
(iii) executing the batch process to generate and output a batch job result that is controlled by at least the interpreted first declarative definition and the records selected.

### Claim 11 (depends on 10)

The computing system of claim 10, wherein the execution of the batch process is performed through non-compiling declarative definition interpretation that does not compile programming code.

### Claim 12 (depends on 10)

The computing system of claim 10, wherein the instructions cause the processor to:
query the batch definition database to identify strategy instructions for the batch job, wherein the strategy instructions are either:
(i) a thread level select strategy specifying that the record identification plugin is to select, but not load into a memory, the records from the database and return an identifier of the records for processing by one or more threads of a process records plugin of the batch process; or
(ii) a job level select strategy specifying that the record identification plugin is to load the records into the memory for assignment of the records from the memory to the one or more threads of the process records plugin; and
control execution of the batch process based upon the strategy instructions identified by the query.

### Claim 13 (depends on 10)

The computing system of claim 10, wherein the instructions cause the processor to:
query the batch definition database to identify a job type of the batch job, wherein the job type is either:
(i) an ad-hoc job type used to implement logic, of a process records plugin of the batch process, upon the records selected by the records identification plugin; or
(ii) an extract job type used to extract data from the records selected by the record identification plugin and store the data within an extract file; and
control execution of the batch process based upon job type.

### Claim 14 (depends on 13)

The computing system of claim 13, wherein the instructions cause the processor to:
responsive to the job type being the extract job type:
(i) extract the data from the database into a data area using the records identification plugin;
(ii) determine a file path, a file name, and a data format for the extract file based upon the job type; and
(iii) store the data into the extract file according to the data format, wherein the extract file is stored using the file path and the file name.

### Claim 15

A computer-implemented method, the computer-implemented method involving a computing device comprising a processor, and the computer-implemented method comprising:
executing, on the processor, instructions that cause the computing device to perform operations that:
construct a batch job by:
displaying a batch job definition interface populated with:
(i) a first interface with functionality used to receive a first declarative definition and a database query statement used by a record identification plugin to select records within a database for processing by the batch job; and
(ii) a second interface with functionality used to receive a second declarative definition defining how a process records plugin is to process the records selected by the record identification plugin; and
responsive to receiving the first declarative definition, the database query statement, and the second declarative definition through the batch job definition interface:
(i) constructing the record identification plugin based upon the first declarative definition and the database query statement;
(ii) constructing the process records plugin based upon the second declarative definition;
(iii) storing the record identification plugin and the process records plugin within a batch definition database; and
(iv) constructing the batch job to reference the record identification plugin and the process records plugin; and
schedule a batch process to execute the batch job.

### Claim 16 (depends on 15)

The computer-implemented method of claim 15, wherein the instructions cause the computing device to:
provide, through the batch job definition interface, a template record of batch execution program code that is executable by the batch process;
responsive to receiving a copy command for the template record, duplicate of the template record to create a batch control record, within the batch definition database, that refers to the batch execution program code; and
associate the record identification plugin and the process records plugin with the batch control record.

### Claim 17 (depends on 16)

The computer-implemented method of claim 16, wherein the instructions cause the computing device to:
control execution of the batch process for the batch job by:
(i) querying the batch definition database to retrieve the batch control record; and
(ii) utilizing the batch control record to identify the batch execution program code for execution by the batch process.

### Claim 18 (depends on 15)

The computer-implemented method of claim 15, wherein the instructions cause the computing device to:
display, through the batch job definition interface, field and value pairs of records that are to be selected by the database query statement.

### Claim 19 (depends on 15)

The computer-implemented method of claim 15, wherein the instructions cause the computing device to:
execute the batch process through non-compiling declarative definition interpretation that does not compile programming code.

### Claim 20 (depends on 19)

The computer-implemented method of claim 19, wherein the instructions cause the processor to:
responsive to identifying an error with the execution of the batch process, perform erroring handling to address the error; and
restart the batch process after performance of the erroring handling.
