SirTune MODIFY and SMSG commands: Difference between revisions
m (more conversion cleanup) |
m (misc formatting) |
||
Line 5: | Line 5: | ||
Users outside the <var class="product">Model 204</var> or SIRTUNE/<var class="product">Model 204</var> address space can be authorized | Users outside the <var class="product">Model 204</var> or SIRTUNE/<var class="product">Model 204</var> address space can be authorized | ||
to issue certain commands to <var class="product">SirTune</var> while the ONLINE | to issue certain commands to <var class="product">SirTune</var> while the ONLINE job is running. | ||
job is running. | |||
Users can be authorized to do this with <var class="product">SirTune</var>'s AUTHORIZE command. | Users can be authorized to do this with <var class="product">SirTune</var>'s AUTHORIZE command. | ||
For more information on the AUTHORIZE command, see [[SirTune configuration statements]]. | For more information on the AUTHORIZE command, see [[SirTune configuration statements]]. | ||
Under MVS, these commands can be issued via the MODIFY operator command. | Under MVS, these commands can be issued via the <code>MODIFY</code> operator command. | ||
This command can be issued at an operator console or | This command can be issued at an operator console or | ||
under SDSF or an equivalent virtual console system. | under SDSF or an equivalent virtual console system. | ||
Line 24: | Line 23: | ||
be viewable under SDSF. | be viewable under SDSF. | ||
Under CMS, these commands can be issued via the SMSG CP command. | Under CMS, these commands can be issued via the <code>SMSG</code> CP command. For example, to issue the STATUS command to <var class="product">SirTune</var> running on | ||
For example, to issue the STATUS command to <var class="product">SirTune</var> running on | |||
a virtual machine named PRODONLN, you can enter: | a virtual machine named PRODONLN, you can enter: | ||
<p class="code" | <p class="code">SMSG PRODONLN STATUS | ||
</p> | |||
or: | or: | ||
<p class="code" | <p class="code">CP SMSG PRODONLN STATUS | ||
</p> | |||
Responses to SMSG commands are sent via MSGNOH, if the <var class="product">SirTune</var>/<var class="product">Model 204</var> service machine is authorized to use MSGNOH, and they are sent via MSG otherwise. | Responses to SMSG commands are sent via MSGNOH, if the <var class="product">SirTune</var>/<var class="product">Model 204</var> service machine is authorized to use MSGNOH, and they are sent via MSG otherwise. | ||
Available MODIFY/SMSG commands are listed here. | Available MODIFY/SMSG commands are listed here. | ||
Line 40: | Line 38: | ||
==BUMP user_num== | ==BUMP user_num== | ||
This command requests that <var class="product">SirTune</var> issue the equivalent of the | This command requests that <var class="product">SirTune</var> issue the equivalent of the <var class="product">Model 204</var> <var>[[BUMP command|BUMP]]</var> command against the indicated user number. | ||
<var class="product">Model 204</var> BUMP command against the indicated user number. | This command is useful if a high priority user is looping in an ONLINE, making it impossible for anyone else to do anything. | ||
This command is useful if a high priority user is looping in an ONLINE, making it | |||
impossible for anyone else to do anything. | |||
To "bump" user number 18, issue this command: | To "bump" user number 18, issue this command: | ||
<p class="code" | <p class="code">BUMP 18 | ||
</p> | |||
Unlike the <var class="product">Model 204</var> BUMP command, the <var class="product">SirTune</var> BUMP command accepts only a single user number, and it does not accept | Unlike the <var class="product">Model 204</var> <var>BUMP</var> command, the <var class="product">SirTune</var> BUMP command accepts only a single user number, and it does not accept user IDs or file names. | ||
To determine the user number of the running user, issue <var class="product">SirTune</var>'s | To determine the user number of the running user, issue <var class="product">SirTune</var>'s <code>MONITOR</code> command. | ||
MONITOR command. | |||
It is recommended that the MONITOR command be issued | It is recommended that the MONITOR command be issued | ||
several times to ensure that a single user is indeed looping and | several times to ensure that a single user is indeed looping and | ||
that a performance problem is not simply the result of excess demand. | that a performance problem is not simply the result of excess demand. | ||
If a loop situation is caused by a <var class="product">Model 204</var> bug, it is possible that | If a loop situation is caused by a <var class="product">Model 204</var> bug, it is possible that a BUMP command will fail to force the looping user off the system. | ||
a BUMP command will fail to force the looping user off the system. | |||
In this case, it might be necessary to issue the RESTART command to | In this case, it might be necessary to issue the RESTART command to | ||
break the loop. | break the loop. | ||
==CLOSE== | ==CLOSE== | ||
This command requests that <var class="product">SirTune</var> close the sample | This command requests that <var class="product">SirTune</var> close the sample data set. This makes it possible to run the report generator against a sample data set that is still being updated by <var class="product">SirTune</var>. | ||
This makes it possible to run the report generator against a sample data | |||
set that is still being updated by <var class="product">SirTune</var>. | This command has no effect on sampling activity in the <var class="product">Model 204</var> address space. | ||
This command has no effect on sampling activity in the <var class="product">Model 204</var> address space. | |||
==MONITOR== | ==MONITOR== | ||
This command requests that <var class="product">SirTune</var> return information about what is | This command requests that <var class="product">SirTune</var> return information about what is currently happening in <var class="product">Model 204</var>. This command is especially useful | ||
currently happening in <var class="product">Model 204</var> | if <var class="product">Model 204</var> appears to be hung or looping and, hence, it is impossible | ||
This command is especially useful | to log on to <var class="product">Model 204</var> to determine the cause of the problem. | ||
if <var class="product">Model 204</var> appears to be hung or looping and, hence, it is impossible | |||
to log on to <var class="product">Model 204</var> to determine the cause of the problem. | |||
Information is returned for the main <var class="product">Model 204</var> task and any | Information is returned for the main <var class="product">Model 204</var> task and any subtasks (if the MP/204 feature is being used). | ||
subtasks (if the MP/204 feature is being used). | The information returned indicates whether each task is running or waiting (corresponding to looping and hung situations respectively), and where in the <var class="product">Model 204</var> | ||
The information returned indicates whether each task is running or waiting (corresponding to | |||
looping and hung situations respectively) and where in the <var class="product">Model 204</var> | |||
load module the task is running or waiting. | load module the task is running or waiting. | ||
This latter piece of information | This latter piece of information | ||
is most useful to <var class="product">Model 204</var> internals experts. | is most useful to <var class="product">Model 204</var> internals experts. | ||
If any <var class="product">Model 204</var> task is indicated as running, information is also provided | If any <var class="product">Model 204</var> task is indicated as running, information is also provided on the user number and user ID of the running user, the current activity | ||
on the user number and | |||
(evaluating, compiling, etc.), and the name of the procedure that is | (evaluating, compiling, etc.), and the name of the procedure that is | ||
currently running. This information can be used to determine whether | currently running. This information can be used to determine whether | ||
Line 88: | Line 76: | ||
==RESTART abend_code USER user_num | TASK task_num== | ==RESTART abend_code USER user_num | TASK task_num== | ||
This command requests that <var class="product">SirTune</var> issue the equivalent of a user abend | This command requests that <var class="product">SirTune</var> issue the equivalent of a user abend in <var class="product">Model 204</var> for the indicated user or task. | ||
in <var class="product">Model 204</var> for the indicated user or task. | |||
RESTART should be used only as a last resort when a <var class="product">Model 204</var> ONLINE is looping or hung, and all efforts to clear up the situation have failed (see the [[#BUMP user_num|BUMP command]]). In this situation, the only options left are to cancel (FORCE under CMS) the run or to issue <var class="product">SirTune</var>'s RESTART command. | |||
used only as a last resort when a <var class="product">Model 204</var> ONLINE is looping or hung and all efforts to clear up the situation have failed (see the BUMP command). | |||
In this situation, the only options left are to cancel (FORCE under CMS) the run or | |||
to issue <var class="product">SirTune</var>'s RESTART command. | |||
The RESTART command is preferable because: | The RESTART command is preferable because: | ||
<ul> | <ul> | ||
<li>The ONLINE might intercept the abend, possibly take a snap dump, and then | <li>The ONLINE might intercept the abend, possibly take a snap dump, and then continue running.</li> | ||
continue running.</li> | |||
<li>Even if the ONLINE does not continue, it might at least intercept the abend | <li>Even if the ONLINE does not continue, it might at least intercept the abend and terminate "cleanly," preventing files from being broken and | ||
and terminate "cleanly," preventing files from being broken and | |||
eliminating the need to run recovery. | eliminating the need to run recovery. | ||
Cancelling or forcing the ONLINE | Cancelling or forcing the ONLINE ensures that: | ||
with active updating transactions will be left broken | <ul> | ||
<li>Any files with active updating transactions will be left broken.</li> | |||
<li>The RESTART command will generally result in a CCASNAP being taken rather | <li>Recovery will have to be run before the ONLINE can be used again. </li> | ||
</ul></li> | |||
<li>The RESTART command will generally result in a [[Storing diagnostic information (CCASNAP and CCAMDMP)|CCASNAP]] being taken rather | |||
than (or in addition to) a SYSMDUMP, SYSUDUMP, or VMDUMP. | than (or in addition to) a SYSMDUMP, SYSUDUMP, or VMDUMP. | ||
CCASNAPs are generally easier to deal with than other types of dumps. </li> | CCASNAPs are generally easier to deal with than other types of dumps. </li> | ||
</ul> | </ul> | ||
The < | The <var class="term">abend_code</var> value must be a 1- to 3-digit hexadecimal code that indicates the abend code to be used for the artificially generated abend. | ||
indicates the abend code to be used for the artificially generated abend. | |||
Under CMS the abend code must be between 0C1 and 0CF. | Under CMS the abend code must be between 0C1 and 0CF. | ||
Any dumps will indicate the specified abend code. | Any dumps will indicate the specified abend code. | ||
It is important to inform support personnel examining | It is important to inform support personnel examining | ||
the dump that the abend code was artificially generated by <var class="product">SirTune</var> and that | the dump that the abend code was artificially generated by <var class="product">SirTune</var> and that the situation was actually a hung or looping ONLINE. | ||
the situation was actually a hung or looping ONLINE. | |||
To prevent accidentally terminating a user or an ONLINE, a user number can be | To prevent accidentally terminating a user or an ONLINE, a user number can be specified on the restart command. | ||
specified on the restart command. | |||
When a user number is specified on the RESTART | When a user number is specified on the RESTART | ||
command, no simulated abend will occur if the indicated user is not running in | command, no simulated abend will occur if the indicated user is not running in the ONLINE. | ||
the ONLINE. | |||
For example, the following RESTART simulates a 0C4 abend if user 23 is running. | For example, the following RESTART simulates a 0C4 abend if user 23 is running. | ||
If user 23 is not running, no abend will be simulated. | If user 23 is not running, no abend will be simulated. | ||
<p class="code" | <p class="code">RESTART 0C4 USER 23 | ||
</p> | |||
If no user is running (a hung ONLINE), it might be necessary to issue the RESTART | If no user is running (a hung ONLINE), it might be necessary to issue the RESTART command with a task number instead. | ||
command with a task number instead. | |||
Unless running MP/204, the task number must be specified as 0. | Unless running MP/204, the task number must be specified as 0. | ||
If MP/204 is running, the task number must be 0 (for the maintask) | If MP/204 is running, the task number must be 0 (for the maintask) | ||
or the subtask number (from 1 to NMPSUBS) to be restarted. | or the subtask number (from 1 to <var>[[NMPSUBS parameter|NMPSUBS]]</var>) to be restarted. | ||
For example, the following RESTART simulates a 0A9 abend on the <var class="product">Model 204</var> maintask: | For example, the following RESTART simulates a 0A9 abend on the <var class="product">Model 204</var> maintask: | ||
<p class="code" | <p class="code">RESTART 0A9 TASK 0 | ||
</p> | |||
<p class="note"><b>Note:</b> It is almost always preferable to specify a user number on the RESTART command rather than a task number. | <p class="note"><b>Note:</b> It is almost always preferable to specify a user number on the RESTART command rather than a task number. | ||
</p> | </p> | ||
==SAMPLE ON | OFF | AUTO== | ==SAMPLE ON | OFF | AUTO== | ||
This command | This command does one of the following: | ||
where sampling is controlled by INCLUDE/EXCLUDE statements in SIRTUNEI | <ul> | ||
<li>Places sampling back into automatic mode (<code>SAMPLE AUTO</code>), where sampling is controlled by INCLUDE/EXCLUDE statements in SIRTUNEI. | |||
<li>Initiates (<code>SAMPLE ON</code>) or terminates (<code>SAMPLE OFF</code>) collection of sample data.</li> | |||
</ul> | |||
For example, to immediately start collecting data, the following command | This command has no effect on the collection of compilation data: Compilation data is collected regardless of the sampling state. | ||
<p class="code" | For example, to immediately start collecting data, issue the following command: | ||
<p class="code">SAMPLE ON | |||
</p> | |||
To immediately stop collecting data, issue: | To immediately stop collecting data, issue: | ||
<p class="code" | <p class="code">SAMPLE OFF | ||
</p> | |||
After a SAMPLE ON or SAMPLE OFF command is issued, <var class="product">SirTune</var> | After a <code>SAMPLE ON</code> or <code>SAMPLE OFF</code> command is issued, <var class="product">SirTune</var> is in "manual" sampling mode. | ||
is in "manual" sampling mode. | |||
==STATUS== | ==STATUS== | ||
This command requests the current sampling status of <var class="product">SirTune</var>. | This command requests the current sampling status of <var class="product">SirTune</var>. | ||
<var class="product">SirTune</var>'s response to this command indicates the current | |||
sampling mode (AUTO or MANUAL), the current sampling state | <var class="product">SirTune</var>'s response to this command indicates the current sampling mode (<code>AUTO</code> or <code>MANUAL</code>), the current sampling state | ||
(ON or OFF), and the number of samples collected to this point. | (<code>ON</code> or <code>OFF</code>), and the number of samples collected to this point. | ||
==STOP== | ==STOP== | ||
This command requests that <var class="product">SirTune</var> | This command requests that <var class="product">SirTune</var> do both of these: | ||
and compilation data | <ul> | ||
After | <li>Stop collecting both sampling and compilation data.</li> | ||
Since the sample | |||
it is possible to use this | <li>Close the sample data set.</li> | ||
</ul> | |||
After STOP is issued, sampling cannot be restarted for the run. | |||
Since the sample data set is closed by a STOP command, | |||
it is possible to use this data set to generate reports after | |||
a STOP command, even while the ONLINE job continues to run. | a STOP command, even while the ONLINE job continues to run. | ||
Revision as of 20:14, 5 November 2015
Users outside the Model 204 or SIRTUNE/Model 204 address space can be authorized
to issue certain commands to SirTune while the ONLINE job is running.
Users can be authorized to do this with SirTune's AUTHORIZE command.
For more information on the AUTHORIZE command, see SirTune configuration statements.
Under MVS, these commands can be issued via the MODIFY
operator command.
This command can be issued at an operator console or
under SDSF or an equivalent virtual console system.
For example, to issue the STATUS command to SirTune running under job
PRODONLN
under SDSF's LOG screen, you can simply enter:
/MODIFY PRODONLN,STATUS
or:
/F PRODONLN,STATUS
Responses to MODIFY commands go to the system log and should be viewable under SDSF.
Under CMS, these commands can be issued via the SMSG
CP command. For example, to issue the STATUS command to SirTune running on
a virtual machine named PRODONLN, you can enter:
SMSG PRODONLN STATUS
or:
CP SMSG PRODONLN STATUS
Responses to SMSG commands are sent via MSGNOH, if the SirTune/Model 204 service machine is authorized to use MSGNOH, and they are sent via MSG otherwise.
Available MODIFY/SMSG commands are listed here. Optional statement parameters are enclosed in brackets ([]). Alternatives are separated with a vertical line (|).
BUMP user_num
This command requests that SirTune issue the equivalent of the Model 204 BUMP command against the indicated user number. This command is useful if a high priority user is looping in an ONLINE, making it impossible for anyone else to do anything. To "bump" user number 18, issue this command:
BUMP 18
Unlike the Model 204 BUMP command, the SirTune BUMP command accepts only a single user number, and it does not accept user IDs or file names.
To determine the user number of the running user, issue SirTune's MONITOR
command.
It is recommended that the MONITOR command be issued
several times to ensure that a single user is indeed looping and
that a performance problem is not simply the result of excess demand.
If a loop situation is caused by a Model 204 bug, it is possible that a BUMP command will fail to force the looping user off the system. In this case, it might be necessary to issue the RESTART command to break the loop.
CLOSE
This command requests that SirTune close the sample data set. This makes it possible to run the report generator against a sample data set that is still being updated by SirTune.
This command has no effect on sampling activity in the Model 204 address space.
MONITOR
This command requests that SirTune return information about what is currently happening in Model 204. This command is especially useful if Model 204 appears to be hung or looping and, hence, it is impossible to log on to Model 204 to determine the cause of the problem.
Information is returned for the main Model 204 task and any subtasks (if the MP/204 feature is being used). The information returned indicates whether each task is running or waiting (corresponding to looping and hung situations respectively), and where in the Model 204 load module the task is running or waiting. This latter piece of information is most useful to Model 204 internals experts.
If any Model 204 task is indicated as running, information is also provided on the user number and user ID of the running user, the current activity (evaluating, compiling, etc.), and the name of the procedure that is currently running. This information can be used to determine whether a BUMP or RESTART command should be issued.
RESTART abend_code USER user_num | TASK task_num
This command requests that SirTune issue the equivalent of a user abend in Model 204 for the indicated user or task.
RESTART should be used only as a last resort when a Model 204 ONLINE is looping or hung, and all efforts to clear up the situation have failed (see the BUMP command). In this situation, the only options left are to cancel (FORCE under CMS) the run or to issue SirTune's RESTART command.
The RESTART command is preferable because:
- The ONLINE might intercept the abend, possibly take a snap dump, and then continue running.
- Even if the ONLINE does not continue, it might at least intercept the abend and terminate "cleanly," preventing files from being broken and
eliminating the need to run recovery.
Cancelling or forcing the ONLINE ensures that:
- Any files with active updating transactions will be left broken.
- Recovery will have to be run before the ONLINE can be used again.
- The RESTART command will generally result in a CCASNAP being taken rather than (or in addition to) a SYSMDUMP, SYSUDUMP, or VMDUMP. CCASNAPs are generally easier to deal with than other types of dumps.
The abend_code value must be a 1- to 3-digit hexadecimal code that indicates the abend code to be used for the artificially generated abend. Under CMS the abend code must be between 0C1 and 0CF. Any dumps will indicate the specified abend code. It is important to inform support personnel examining the dump that the abend code was artificially generated by SirTune and that the situation was actually a hung or looping ONLINE.
To prevent accidentally terminating a user or an ONLINE, a user number can be specified on the restart command. When a user number is specified on the RESTART command, no simulated abend will occur if the indicated user is not running in the ONLINE. For example, the following RESTART simulates a 0C4 abend if user 23 is running. If user 23 is not running, no abend will be simulated.
RESTART 0C4 USER 23
If no user is running (a hung ONLINE), it might be necessary to issue the RESTART command with a task number instead. Unless running MP/204, the task number must be specified as 0. If MP/204 is running, the task number must be 0 (for the maintask) or the subtask number (from 1 to NMPSUBS) to be restarted. For example, the following RESTART simulates a 0A9 abend on the Model 204 maintask:
RESTART 0A9 TASK 0
Note: It is almost always preferable to specify a user number on the RESTART command rather than a task number.
SAMPLE ON | OFF | AUTO
This command does one of the following:
- Places sampling back into automatic mode (
SAMPLE AUTO
), where sampling is controlled by INCLUDE/EXCLUDE statements in SIRTUNEI. - Initiates (
SAMPLE ON
) or terminates (SAMPLE OFF
) collection of sample data.
This command has no effect on the collection of compilation data: Compilation data is collected regardless of the sampling state.
For example, to immediately start collecting data, issue the following command:
SAMPLE ON
To immediately stop collecting data, issue:
SAMPLE OFF
After a SAMPLE ON
or SAMPLE OFF
command is issued, SirTune is in "manual" sampling mode.
STATUS
This command requests the current sampling status of SirTune.
SirTune's response to this command indicates the current sampling mode (AUTO
or MANUAL
), the current sampling state
(ON
or OFF
), and the number of samples collected to this point.
STOP
This command requests that SirTune do both of these:
- Stop collecting both sampling and compilation data.
- Close the sample data set.
After STOP is issued, sampling cannot be restarted for the run. Since the sample data set is closed by a STOP command, it is possible to use this data set to generate reports after a STOP command, even while the ONLINE job continues to run.
See also
- SirTune introduction
- SirTune data collection under MVS
- SirTune data collection under CMS
- SirTune data collection statements
- SirTune MODIFY and SMSG commands
- SirTune report generation
- SirTune reports
- SirTune user states
- SirTune and Model 204 quad types
- SirTune statement wildcards
- SirTune date processing