|Publication number||US20050027714 A1|
|Application number||US 10/632,620|
|Publication date||Feb 3, 2005|
|Filing date||Jul 31, 2003|
|Priority date||Jul 31, 2003|
|Publication number||10632620, 632620, US 2005/0027714 A1, US 2005/027714 A1, US 20050027714 A1, US 20050027714A1, US 2005027714 A1, US 2005027714A1, US-A1-20050027714, US-A1-2005027714, US2005/0027714A1, US2005/027714A1, US20050027714 A1, US20050027714A1, US2005027714 A1, US2005027714A1|
|Original Assignee||International Business Machines Corporation|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (6), Referenced by (6), Classifications (8), Legal Events (1)|
|External Links: USPTO, USPTO Assignment, Espacenet|
The invention relates generally to computer systems, and deals more particularly with scheduling and execution of jobs which change programs or other software components within a computer system.
Systems administrators are often required to make configuration and other changes to computer systems, such as creating new queues, adjusting permissions for accessing files, connecting to applications, sending and retrieving application messages, manipulating application objects, and tuning changes to application instances. Heretofore, the systems administrators have made such changes by manually entering commands or initiating scripts in real time to implement the changes. For example, to create a new queue, the systems administrator has entered commands or initiated a script which identified an application instance which is the target of the change, and issued change commands via an application interface. In the case of IBM WebSphere MQ application, such changes were made via a “runmqsc” utility. To identify the application instance, the systems or application administrator performed the following steps: a) extracting configured instance names and primary data locations from an application master configuration file; b) quering the operating system to see which of the application instances is running; and c) querying the running application instances (or at least the instance to which the change should be made) to verify each instance is responsive and not hung. The systems administrator then made a change to the application instance, either manually or via a prepared script, and verified that the change was made successfully by manually checking the output of the change and searching for certain codes and phrases in output either displayed on the screen or stored in temporary logs. As another example of how a systems administrator made a change in real time to adjust permissions, the systems administrator has entered commands or initiated a script which issued operating system commands. The systems administrator verified that the change was made successfully by reviewing the output of those commands, as well as the exit status of each command.
Systems administrators are also often required to run other types jobs such as creating or removing application instances, installing an application package, tuning network connections, cleaning disk space (such as for logs), and performing other application-specific maintenance tasks. The systems administrators have run such jobs by manually entering commands or initiating scripts in real time to implement the change. For example, to install an application package, the systems administrator has typically installed it manually (without automation). The systems administrator has verified that the jobs have been successfully run by manually reviewing output from such activities for any anomalies. Sometimes such changes are requried en masse (to many systems simultaneously). Without extra personpower, such changes had to be made in a serial fashion, consuming much time.
To minimize the impact on the system's users, the foregoing types of jobs were typically run during maintenance “windows” which were late at night or on weekends when there was relatively little need for the system. Unfortunately, this has placed a burden on the systems administrators who must then work “odd” hours.
Accordingly, an object of the present invention is to automate the process of making configuration and other changes to computer systems.
Another object of the present invention is to automate the process of running jobs on a computer system.
The present invention resides a system, method and program product for managing a change to an application, operating system, data base or other software component of a computer system. At one location, such as a server where the change is to be made, a user schedules execution or installation of the change. Subsequently, a program automatically attempts to execute or install the change as scheduled. Then, the tool automatically conducts a search for a key phrase or code associated with the attempt to execute or install the change to determine if the change was successful or unsuccessful. Subsequently, the tool sends a notification of success or lack of success to another location, such as a pager or e-mail address of the user. Thus, the user does not have to be physically present at the server when the change is implemented, but will be notified whether there is a problem.
According to another feature of the present invention, the key phrase or code is stored in a log associated with the application, operating system, data base or other software component.
According to another feature of the present invention, the change is implemented by a change program, and the syntax of the change program is checked at a time that the user schedules execution or installation of the change.
FIGS. 6(A) and 6(B) form a flow chart illustrating a job executing function within the job scheduling and executing program of
Referring now to the drawings in detail wherein like reference numbers indicate like elements throughout,
In accordance with the present invention, system 10 also includes a job scheduling and executing program tool 60. Tool 60 schedules execution of change files such as change files 61 and 62. By way of example, the change files are program scripts but could also be SQL database scripts or operating system commands (or even program binaries that do something to the overall system or application). (A “script” is a user interface to an operating system, usually command-line based, which translates user input into instructions the operating system can understand, then conveying operating system output back to the user interface.) The systems administrator creates change files 61 and 62 before use of tool 60. The following are examples of change files in the form of scripts which (a) change configuration, (b) create new queues, and (c) adjust application permissions. Examples (i) and (ii) below are application-specific syntax that is passed into an application-specific interface program such as “runmqsc” with WebSphere MQ:
As explained in more detail below, tool 60 (a) verifies the syntax of each of the change files before execution or installation, (b) schedules the execution or installation of change files 61 and 62 (usually to take place during a maintenance window of system 10), (c) attempts to execute or install the change files when scheduled, (d) verifies whether the change files 61 and 62 were successfully executed or installed, and then (e) notifies the systems administrator preferrably by pager or e-mail (or by voice synthesized telephone call or SNMP trap) whether the change was successful. Tool 60 performs the verification by checking logs, associated with a changed application, for key phrases and codes or by checking exit status for changes to an operating system.
If the systems administrator entered the “create” command when invoking tool 60 (step 50), then tool 60 will query the systems administrator to enter the following “change” parameters—name of a change file for an application instance, a general summary of the change file in text form, name of an application instance which is the target of the change file, date and time that the change file should be executed or installed (step 64). In some cases, a change will be needed for the operating system 14 or other program within system 10 to be compatible with or support the changed application. In such a case, if the systems administrator indicates such a change is to be included in the job, tool 60 will query the systems administrator for the same type of “change” parameters for the operating-system change (step 64). Next, tool 60 schedules the job with the operating system by writing the change parameters entered by the systems administrator to a job configuration file 65, and issuing a scheduling command to the operating system which specifies the date and time to run the change file(s) (step 66). There is one job configuration file 65 per job. Next, tool 60 verifies and confirms to the systems administrator that the job was properly scheduled (step 68).
Referring again to step 60, if the systems administrator entered “view” when invoking tool 60 (step 52), then tool 60 queries the operating system for a list of currently scheduled jobs. The operating system keeps a list of all scheduled jobs for all users. After the operating system furnishes this list to tool 60, tool 60 displays the list on console 30 to the systems administrator (step 72).
Referring again to tool 60, if the systems administrator entered the “remove” command when invoking tool 60, (step 54), then tool 60 queries the operating system for all scheduled jobs and displays this list to the user. If the user selects from the display any or all of the scheduled jobs for cancellation, then the tool 60 issues a cancellation command (“AT” in UNIX and Microsoft Windows operating systems) to an operating system scheduling program 75 for the specified jobs (step 76).
FIGS. 6(A) and 6(B) illustrate subsequent operation of tool 60, when initiated by the operating system, to execute or install a scheduled job. When the operating system determines that the date and time for a scheduled job occurs (decision 80), then the operating system invokes tool 60 with an “Execute” command (step 81). The Execute command includes the name of the job configuration file which defines the job to be run at that date and time. In response, tool 60 reads the job configuration information (step 82), and validates that the job configuration is complete and valid. It so, then tool 60 attempts to execute or install (as appropriate) the change file specified therein for the target application or application instance (or other program) (step 86). Then, tool 60 checks whether the change intended by the change file to the application or application instance (or other program) was successful (steps 88 and 89). In the case of changes to an application, application instance or certain types of other programs, tool 60 performs this check by automatically conducting searches for key phrases or return codes in logs associated with the changes. For example, if the change file is to change a setting for a queue of an application instance (where the setting is the number of messages that can reside on the queue), after the change is attempted, the application instance will write to a log file a return code indicating “successful” or “unsuccessful”. Tool 60 searches for this return code in the log to determine the result. As another example, if the operating-sytem change file is to change permissions (i.e. which userIDs have which type of access to specified files), after the change is made, the tool will make such changes and then query the exit status after each command to determine whether it was successful. All changes, both application changes and operating system changes, are completely logged for later review. Tool 60 has access to a table of the returns codes and phrases that indicate successful or unsuccessful execution of the change file. This table can be provided by the author of tool 60 or by the systems administrator at console 30 when creating the respective job. Tool 60 stores the results (i.e. successful or unsuccessful) in final report log 35 and then sends them to the systems administrator's pager 33 or e-mail address 34 (typically a workstation) (or by telephone or SNMP trap) (step 90 for unsuccessful or step 91 for successful). To send a pager notification to the systems administrator's pager, tool 60 creates an e-mail and sends the e-mail to the pager's e-mail address, for example, email@example.com. A (prior art) pager server 31 receives this e-mail, then converts the e-mail to an alphanumeric form compatible with the pager, and then sends the converted e-mail to the systems administrator's pager 33. To send an e-mail notification to the systems administrator's workstation 34, tool 60 makes a (prior art) command to the operating system 14 and includes in the command the information for the e-mail, i.e. address and content. In UNIX and Windows operating systems, this command is called “sendmail”. The operating system then forwards the e-mail to a mail relay server 36 via the Internet, which in turn, forwards it to the destination workstation 34 via the Internet.
In those cases where another change is required, such as a corresponding change to the operating system (decision 92, yes branch)), there will be another change file specified in the job configuration file. In such a case, tool 60 attempts to execute or install (as appropriate) this other change file for the operating system (step 94). Then, tool 60 checks whether the changes intended by the change file(s) to the operating system were successful (step 96 and decision 97). Tool 60 can perform this check by automatically checking for an “exit status” code (in UNIX operating system), for each command in the operating system change file (or another response code for the entire change file). The exit status indicates a successful or unsuccessful execution of the respective command in the change file. (An “exit status” is similar to a return code, except a return code generally comes from an application whereas an exit status generally comes from a “shell” of the operating system. An operating system shell is a command interpreter which runs on the operating system. In the UNIX operating system, common shells are“sh,” as well as “ksh,” “csh,” and “bash.”. In the Windows operating system, the shell is called “command.com”.) In the Unix operating system, the shell returns an exit status of “0” if the command executed successfully and some other integer if not successful. Tool 60 stores the results of the attempt to execute each command in the operating system change file (i.e. successful or unsuccessful) in a final report log 35 (step 98 for unsuccessful and step 99 for successfull). Tool 60 also correlates the command and respective exit status to the specific change attempted to be made to the operating system. This correlation is made by checking each command's output for success or failure. For example, if the change file includes several commands to several, respective files in the operating system, and one of the changes to one respective operating system file was unsuccessful, then tool 60 will record in the final report that this one change to a named operating system file was unsuccessful. Then, tool 60 sends the report file to the systems administrator by pager or e-mail (or by telephone or SNMP trap) (step 98).
If a systems administrator receives no alert as to the disposition of the change within approximately five minutes after the scheduled change time, the systems administrator may assume that something went wrong with the change and should log on to manually determine the case. Otherwise, notification of either change success or failure should be sent immediately to the system administrator, thereby eliminating any uncertainty as to the outcome.
If a change to an application is successful, but the corresponding change, if any, to the operating system is unsuccessful, then in one embodiment of the present invention, the change to the application is not undone. It will be the responsibility of the systems administrator, after receiving the report file sent by the tool 60, to manually investigate and initiate a correction of the problem with the operating system. In many cases, the changed application can still execute despite the inability to completely change the operating system as specified in the operating system change file. In another embodiment of the present invention, tool 60 will attempt execution or installation of the change file for the operating system before the scheduled change to the application, and if the change to the operating system is not completely successful or not successful enough to support the proposed changed to the application, then tool 60 will cancel the scheduled change to the application. Tool 60 can determine if the change to the operating system is sufficient to support the scheduled change to the application by executing such commands in a verification mode that is common to many existing operating system commands.
Based on the foregoing, a tool for managing change files according to one embodiment of the present invention has been disclosed. However, numerous modifications and substitutions can be made without deviating from the scope of the present invention. For example, there are other ways to confirm whether a change to programs was successful. Therefore, the invention has been disclosed by way of illustration and not limitation, and reference should be made to the following claims to determine the scope of the present invention.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US5666501 *||Mar 30, 1995||Sep 9, 1997||International Business Machines Corporation||Method and apparatus for installing software|
|US6122664 *||Jun 27, 1997||Sep 19, 2000||Bull S.A.||Process for monitoring a plurality of object types of a plurality of nodes from a management node in a data processing system by distributing configured agents|
|US7089561 *||Jun 1, 2001||Aug 8, 2006||Microsoft Corporation||Methods and systems for creating and communicating with computer processes|
|US20020166053 *||May 2, 2001||Nov 7, 2002||Sun Microsystems, Inc.||Method, system, and program for encrypting files in a computer system|
|US20020174185 *||May 1, 2001||Nov 21, 2002||Jai Rawat||Method and system of automating data capture from electronic correspondence|
|US20040003266 *||Mar 20, 2003||Jan 1, 2004||Patchlink Corporation||Non-invasive automatic offsite patch fingerprinting and updating system and method|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US7069856 *||May 13, 2004||Jul 4, 2006||Sun Automation, Inc.||Method and apparatus for managing box-finishing machine|
|US8959521 *||Aug 3, 2012||Feb 17, 2015||International Business Machines Corporation||Apparatus and methods for performing computer system maintenance and notification activities in an opportunistic manner|
|US20050065993 *||Apr 5, 2004||Mar 24, 2005||Masanori Honda||Job network configuration file creating device and creating method|
|US20050252396 *||May 13, 2004||Nov 17, 2005||Theodore Hartka||Method and apparatus for managing box finishing machine|
|US20130283278 *||Aug 3, 2012||Oct 24, 2013||International Business Machines Corporation||Apparatus And Methods For Performing Computer System Maintenance And Notification Activities In An Opportunistic Manner|
|WO2009003281A1 *||Jul 3, 2008||Jan 8, 2009||Tereposky Gregory Alfred||System, method, and data structure for providing access to interrelated sources of information|
|U.S. Classification||1/1, 707/999.1|
|International Classification||G06F9/445, G06F17/00|
|Cooperative Classification||G06F9/44505, G06F8/65|
|European Classification||G06F8/65, G06F9/445C|
|Jul 31, 2003||AS||Assignment|
Owner name: INTERNATIONAL BUSINESS MACHINES, NEW YORK
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KLINE, CHRISTOPHER N.;REEL/FRAME:014371/0807
Effective date: 20030729