The PJP software is designed to be run in either the jBase or UniVerse environments. Those environments allow for multiple “accounts” or “logons” to be set up. Cubs has the ability to make use of separate accounts so that agencies can have different business sectors loaded into separate databases. The PJP console allows the administrator to view and setup phantoms across accounts. In order to launch a phantom the administrator must be currently logged on to the account in which the phantom will run.
Once the Phantom Job Processor is on the job and doing its thing, your IT staff will tend to forget about it. It takes care of itself and demands very little attention. However, any long-running process on a computer server will ultimately have its memory space corrupted by random system events. The longer it runs, the more likely it is to happen.
Phantoms running under PJP have the ability to shut down after a specified number of days and to automatically be restarted by the PHANTOM.RESUME program. You can specify the number of days in the “Planned Stoppage Screen”.
The PHANTOM.MONITOR program’s main job is to detect “hung” phantoms, which don’t seem to be running any longer. There are 3 reasons why a phantom may be detected as hung:
1. The current status shows that a process has been launched, but the maximum time has been exceeded.
2. The current status is that a stop has been requested, but the time of that request is more than 10 minutes ago.
3. A process which has been programmed to run continuously hasn’t checked in for at least 10 minutes.
Once a phantom has been detected as hung, its status is changed to “hung” and, if so configured, an email is sent to the phantom administrator to advise her of the situation.
If there are any phantoms detected as “hung” the phantom console program gives the administrator the option to “kill” those phantoms. The action of killing a phantom will always make the PJP programs think that the phantom is no longer running, allowing the administrator the opportunity to re-launch them. However, it may or may not successfully kill the phantom at the system level.
Prior to killing and re-launching a hung phantom, it is important for the phantom administrator to make sure that the phantom is not really running. It could be that it is merely taking longer to run than the maximum configured time. In unix, the shell command ‘ps –ef|grep PHANTOM’ will give you a list of all currently executing phantoms.
Phantoms can be “launched” manually from the main screen of the phantom console or automatically by the PHANTOM.RESUME program after an automatic shutdown or a planned stoppage. When a phantom is launched manually, the clock starts at the moment it is launched, and any process which would have run at some time in the recent past is not launched. When a phantom is launched after an automatic shutdown or a planned stoppage, any processes which would have run since the time that the phantom was stopped are executed in the order that they would have been executed if the phantom had been running continually.
When a phantom is launched, the program PHANTOM.DRIVER is executed in a background system port which is not tied to a terminal. On UniVerse, the port number is a negative number. On jBase, the port number is a five digit number starting with “1”.
Same as “Account” above.
The word “phantom” has 2 meanings, depending upon whether it is being discussed in the context of the PJP software or in the context of the software environment (UniVerse or jBase).
For the PJP software, a “phantom” is a named logical entity which can consist of multiple scheduled “processes”. The full name of a phantom consists of 2 parts, the logon and the name. That combination (logon/name) must be unique. When a PJP phantom is launched, it is run in a background port. The main program for a phantom is PHANTOM.DRIVER. This program sleeps and wakes up every 10 seconds to see if it is time to run a scheduled process. If so, the process is run. If not, the status is updated to “Waiting to launch XXXXXXXX at MM/DD HH:MM”
A planned stoppage is for a specific future period of time when you expect that your computer host system will be shutdown. This usually occurs for hardware maintenance or for a periodic system re-boot. The parameters (date/time of stop and date/time of restart) of a future planned stoppage are specified in the planned stoppage screen which is accessed through the (S)top option of the phantom console main screen.
Typically, phantoms will be stopped within 10 seconds of the scheduled stop time. The only exception to this is if a process is currently running at the planned stoppage time. In that case, the phantom must wait until the process is completed. Therefore, it is VERY IMPORTANT to not have a long- running process scheduled concurrently with a planned stoppage.
Phantoms are re-launched after a planned stoppage (within 4 hours after the scheduled resume date/time) by the next execution of the PHANTOM.RESUME program which runs as a scheduled process under the auspices of your host’s operating system (cron on unix, or Task Manager on Windows).
A process is any job which can be executed from TCL on your Cubs account. It can be a system command, MD item, cataloged program, or other, such as “RUN PL XXXXX”. Within a given phantom, each process run instruction must be unique.
The PHANTOM.RESUME program will re-start phantoms which have been stopped either by a planned stoppage or by an automatic shutdown. When a phantom is started after the planned or automatic shutdown, all processes which would have run during the down time are queued up to be run, allowing the phantom to “catch up”.
A phantom which is currently running can be stopped at any time by using the (S)top option in the command prompt on the phantom console main screen. Unless a process is currently running, the phantom should stop within 10 seconds of the stop request. If a process is currently running, the phantom will stop only after that process completes.
TCL is an acronym for Terminal Control Language. It is a command line approach used by both UniVerse and jBase, similar to the shell prompt in unix or the DOS prompt in Windows. There is a rich variety of commands which can be entered at TCL.
Copyright 2010, Cubs Consulting, Inc.