Abstract:
A system for automatically monitoring database jobs in simple or complex networking environments to ensure that they run successfully. Failed database jobs are examined, corrected if possible, and re-executed. Database administrators are immediately notified of reoccurring database job failures by e-mail, pager notifications, or other alert methods. The amount of manual intervention is greatly reduced as most database jobs are simply corrected and restarted. The risk of data damage or loss due to subsequent jobs running on databases that are not current is reduced.

Description:
BACKGROUND OF THE INVENTION 
   1. Field of Invention 
   This invention relates generally to controlling update access to databases, and more particularly, to monitoring and checking the status of database jobs and automatic rerunning of any job failures. 
   2. Description of Related Art 
   In a typical, large data processing facility with local and remote networked databases, jobs of work are submitted to update a plurality of databases. The number of these jobs can be very large as almost all aspects of the business are documented or controlled by the information contained in these databases. Many of the database jobs are critical to the day-to-day running of the business. Also, the sequence in which these jobs are run is important as one job can require the updated data from another job. A job run out of sequence can cause a serious loss of data that can take hours to correct or if not detected, incorrect data results that can cause serious harm to the business. 
   To ensure that jobs are run in sequence, elaborate procedures are put in place to make sure prerequisite jobs are completed before the dependent job is started. Operating system error logs and stop-on-error features are used to detect failed jobs and can frequently alert the dependent jobs not to start. This prevents most serious problems from occurring but can leave a large number of jobs not run until the error is corrected and the jobs are all resubmitted. 
   There can be numerous reasons why jobs fail to run or are not complete. It could simply be because access to the database was temporarily lost over the network or because the detection of a serious programming or data error caused the job to fail. In these cases, the operating system logs the job failures. Database Administrators (DBAs) monitor jobs for these failures. They must analyze failures and take corrective action to get the job run and repair any data which may have been effected by it or subsequent jobs. 
   DBAs spend a significant amount of time monitoring and taking corrective action because of the modern complexity of the numerous databases. Frequently, many databases are connected remotely over networks. Access privileges to all the databases must be given to the DBAs since they may need to get to them to restore damaged data or to check if the data is correct. This is a large security exposure to most companies. 
   Several methods or systems related to database access and control are available. In U.S. Pat. No. 5,982,890 (Akatus) a method and system for detecting fraudulent data updates is described. In U.S. Pat. No. 5,721,904 (Ito et al.) a database access system for distributed systems is explained. In U.S. Pat. No. 6,058,420 (Davies) an alarm-monitoring server system, apparatus, and process are described. 
   The high probability of data damage due to database job errors requires extensive job monitoring by DBAs. This is very costly, error prone, and a security risk. It requires the new approach of this invention. 
   SUMMARY OF THE INVENTION 
   This invention&#39;s overall objective is to provide a system and method that monitors database jobs to ensure that they are run and also that they are run in their proper order so as to prevent data damage by jobs running without their prerequisite jobs having run. This invention provides a method to greatly reduce the time spent in manually monitoring database jobs and reduce the cost of recovery when damage is done by the failure of some database jobs while others continue to run. 
   A more specific objective is to create tables containing database job information that can be used to determine when and how the job should be rerun. With information from the tables, jobs can be knowledgeably rerun. This understanding of the database jobs is essential as sequence is critical. Another objective is to provide monitoring even in the most complex networks. With databases expanding beyond local systems, ensuring that database jobs run in all parts of the enterprise is not an easy task. 
   Still another objective is to inform DBAs of failed database jobs that can not be successfully run by the system so that they can take immediate action. This prevents a major backup of jobs by fixing the problem right away. E-mail or paging is used by the system to notify the DBAs in real time. 
   These objectives are achieved by the method of this invention. The automatic database monitoring system ensures that database jobs are successfully completed in the right sequence and alerts the DBAs immediately if serious problems exist. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     This invention will be described with reference to the accompanying drawings, wherein: 
       FIG. 1  is a flow diagram of the prior art business flow. 
       FIG. 2  is a flow diagram of the new business flow. 
       FIG. 3  is a system diagram of the architecture. 
       FIG. 4  is a flow diagram of the process flow for monitoring. 
       FIG. 5  is a data flow diagram of the system. 
   

   DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
   In large enterprises today, large amounts of information are stored on computer systems in databases. Many of these databases contain data that is critical to the day-to-day running of the business. They need to be updated frequently so that important decisions and events are based on accurate and current data. 
   Just as computer systems have become more networked, so too have databases. Where databases were once locally attached to mainframes, today they can physically be in all remote locations of the enterprise attached by the many available networks. Data in a remotely attached database may be needed to update a locally attached database. The network now becomes an important factor in the updating of the databases. If it is down or a critical database is not connected, other databases are affected. 
   Most large databases are updated by submitting jobs that contain the location of the updates and the control information to begin the update. Often a database update is dependent on jobs run previously. If a previous job failed to run, data can be damaged. 
   To ensure databases are not damaged, Database Administrators (DBAs) are constantly monitoring for the successful completion of the database jobs.  FIG. 1  shows the prior art business flow. DBAs have to insure that all databases required to do an update job are connected  10 . This is done by checking for job failures. The DBAs attempt to fix the job failure problem utilizing messages from the failed jobs output. The job is submitted again for execution  12 . If it is a success, no further action is required. If it fails again, the DBAs must determine the root cause and solve the problem  14 . This is a very costly and time-consuming process. Additionally, if a job fails but is not recognized as failed, a subsequent job can run against the back level of data and cause serious data damage or loss. The new invention eliminates these problems. 
   The Automatic Database Job Monitoring System provides a new method to run and control database jobs. Once the system is in place, the new business flow is simplified as seen in  FIG. 2 . Since the system submits and monitors the database jobs, the work of the DBAs is reduced to checking e-mail and pagers, or other means for alerts of job failures  20 . Their time is now spent in solving problems with the limited number of jobs that fail  22 . The entire database connecting and monitoring function is taken over by the system. 
   The system architecture of the monitoring system is shown in  FIG. 3 . Key to the system is the repository  30 . The repository is a database on a central computer system connected to the network. It contains a description of each monitored database  32  that is maintained by the DBAs. As new databases need to be monitored, the DBAs add them to the repository. 
   To successfully monitor each database, the repository contains: the location of the database (host IP address), the host name, the remote database user, the database password, and the database link instructions.  FIG. 4  shows the process flow steps for the monitoring of the databases. Step  0  is the manual updating of the repository database with the above content  40 . This is done once. Database jobs are run on a continuous basis as required. Only those noted in the repository are monitored for failure. 
   In step  1 , the automatic database job monitoring system periodically executes a programmed procedure that runs a dynamic SQL search routine. It has the ability to connect to every monitored database according to the pre-stored information in the repository  42 . A temporary table is created in the repository for the failed jobs it finds. In step  2   44 , the SQL routine then establishes a connection to the failed database using programed dynamic SQL to execute the failed jobs. In step  1  the failed jobs are colleted. In step  2  the failed jobs are executed right in each failed database. 
   In step  3   46 , now a systematic recheck is preformed by the dynamic a SQL program to look for failed jobs that really need human intervention. This is done exactly the same way as in step  1  with the additional knowledge of which jobs have failed previously on the retry. If the job fails again, an e-mail, pager notification, or other alert is sent to the DBAs in step  4  for their immediate action  48 . Notification speed is critical as jobs involving key and active databases can back up very quickly causing data not to be current. 
   Another way to view the system in operation is to look at the data flow diagram in  FIG. 5 . Starting with step  1   500 , there is a host master system that runs all the monitored database jobs associated with the local host master system  502 . There are multiple remote accounts  504 , the number depending on the complexity of the enterprise, that run database jobs. The SQL routine runs and creates the job failure alarm temporary table  506 . At step  2   514  the host master  508  and the remote account  510  database jobs are connected. If the database is contained on a user workstation, that connect is made  512 . The failed database job is then run again. The job failure alarm temporary table  516  is then updated if the job fails again. In step  3   518 , the table is read and it is noted that this is a second failure. Remote account  524  information is supplied telling weather the database was actually connected to help in diagnosing the failure. A job failure alert  520  is then created at step  4   522  and the DBAs are immediately notified with information about the failed job so they can correct the problem. 
   The method of the invention provides advantages over the prior art including eliminating the need for DBAs to manually go through numerous database job status listings to determine if the database jobs have run successfully. Database jobs are automatically rerun based on predefined conditions that greatly reduce DBAs manual intervention and saves time and costs. Another important advantage of the method of the invention is reduction of data damage and loss due to database jobs being run out of sequence. 
   While the invention has been particularly shown and described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made without departing from the spirit and scope of the invention.