PUSHUTABLE and POPUTABLE commands: Difference between revisions

From m204wiki
Jump to navigation Jump to search
m (Created page with " The general form of the command is: ===SIRIUSDEBUG command syntax=== SIRIUSDEBUG { [ON|OFF] [SUSPEND|RESUME] [STATUS] } Where: <ul> <li>The <var>ON</var> subcommand starts...")
 
mNo edit summary
Line 1: Line 1:
The PUSHUTABLE command saves the current UTABLE settings for easy restoration and the POPUTABLE command restores UTABLE settings saved by PUSHUTABLE.
The general form of the commands is:


 
===PUSHUTABLE and POPUTABLE command syntax===
The general form of the command is:
   PUSHUTABLE [tableSettings]
 
  POPUTABLE
===SIRIUSDEBUG command syntax===
   SIRIUSDEBUG { [ON|OFF] [SUSPEND|RESUME] [STATUS] }


Where:
Where:
<ul>
<ul>
<li>The <var>ON</var> subcommand starts a <var class="product">Sirius Debugger</var> session (it requires additional
<li>The <var>tableSettings</var> are simply the values one would specify on a UTABLE command. While it makes no sense to use PUSHUTABLE unless some server tables sizes are to be changed, those changes could be specified in subsequent UTABLE commands instead of on the PUSHUTABLE command. They are allowed on PUSHUTABLE simply as a convenience.  
parameters).
It can also be used for debugging <var class="product">Janus Web Server</var> threads.
<li>The <var>OFF</var> subcommand stops a debugging session.
<li>The <var>SUSPEND</var> and <var>RESUME</var> subcommands discontinue and continue a
debugging session.
<li>The <var>STATUS</var> subcommand gets a status report about the worker threads for the
<var class="product">[[Debugger|Janus Debugger]]</var>, the <var class="product">Sirius Debugger</var>, or both.
</ul>
</ul>


This command will perform no useful processing unless a site is authorized
Only one PUSHUTABLE command can be active in a single INCLUDE level. When the INCLUDE level is closed, the table settings saved by the active PUSHUTABLE command are automatically restored. They can also be explcitly restored with a POPUTABLE command at the same INCLUDE level. A typical use of the PUSHUTABLE command would be to set table settings for a specific procedure in a subsystem so that the standard subsystem table settings are restored when the request had completed. For example:
for the <var class="product">Sirius Debugger</var> (and for <var class="product">Janus Web</var> threads, <var class="product">Janus Debugger</var>).
<p class="code">PUSHUTABLE LSTBL 190000 LQTBL 40000 LVTBL 20000
For more information, see the <i>[http://sirius-software.com/maint/download/jdebugr.pdf Janus/Sirius Debugger User's Guide]</i>.
begin
... procedure code
end
</p>
When the procedure containing the PUSHUTABLE command is closed, whether or not the code inside the Begin/End block ran successfully, got a request canceling error or even a compile error, the table settings are restored to what they were before the PUSHUTABLE command. Note that adding a POPUTABLE command after the end, while harmless, doesn't help as such a command would never be executed anyway in the case of errors. The above can also be code as:
<p class="code">PUSHUTABLE
UTABLE LSTBL 190000 LQTBL 40000 LVTBL 20000
begin
... procedure code
end
</p>
 
In the unlikely event that the procedure containing the PUSHUTABLE command was closed while still compiling or evaluating, the table settings will not be restored since table sizes can't be changed in the middle of a compile or request evaluation.
 
POPUTABLE is probably most useful for restoring table sizes saved by a PUSHUTABLE command at command level (not inside a procedure). For example, it might be useful in a batch stream that contains many Begin/End blocks  where maybe only one has unusual table size requirements. That request could be enclosed inside a PUSHUTABLE/POPUTABLE bracket.


[[Category: User commands]]
[[Category: User commands]]
[[Category: Commands]]
[[Category: Commands]]

Revision as of 23:30, 1 December 2011

The PUSHUTABLE command saves the current UTABLE settings for easy restoration and the POPUTABLE command restores UTABLE settings saved by PUSHUTABLE. The general form of the commands is:

PUSHUTABLE and POPUTABLE command syntax

  PUSHUTABLE [tableSettings]
  POPUTABLE

Where:

  • The tableSettings are simply the values one would specify on a UTABLE command. While it makes no sense to use PUSHUTABLE unless some server tables sizes are to be changed, those changes could be specified in subsequent UTABLE commands instead of on the PUSHUTABLE command. They are allowed on PUSHUTABLE simply as a convenience.

Only one PUSHUTABLE command can be active in a single INCLUDE level. When the INCLUDE level is closed, the table settings saved by the active PUSHUTABLE command are automatically restored. They can also be explcitly restored with a POPUTABLE command at the same INCLUDE level. A typical use of the PUSHUTABLE command would be to set table settings for a specific procedure in a subsystem so that the standard subsystem table settings are restored when the request had completed. For example:

PUSHUTABLE LSTBL 190000 LQTBL 40000 LVTBL 20000 begin ... procedure code end

When the procedure containing the PUSHUTABLE command is closed, whether or not the code inside the Begin/End block ran successfully, got a request canceling error or even a compile error, the table settings are restored to what they were before the PUSHUTABLE command. Note that adding a POPUTABLE command after the end, while harmless, doesn't help as such a command would never be executed anyway in the case of errors. The above can also be code as:

PUSHUTABLE UTABLE LSTBL 190000 LQTBL 40000 LVTBL 20000 begin ... procedure code end

In the unlikely event that the procedure containing the PUSHUTABLE command was closed while still compiling or evaluating, the table settings will not be restored since table sizes can't be changed in the middle of a compile or request evaluation.

POPUTABLE is probably most useful for restoring table sizes saved by a PUSHUTABLE command at command level (not inside a procedure). For example, it might be useful in a batch stream that contains many Begin/End blocks where maybe only one has unusual table size requirements. That request could be enclosed inside a PUSHUTABLE/POPUTABLE bracket.