|
|
|
|
Options | Type of queue | Reference |
---|---|---|
Control of
access to queues
|
Batch and output
|
Controlling Access to Queues
|
Job retention
|
Batch and output
|
Using Job Retention Options
|
Characteristics
|
Batch and output
|
Specifying Queue Characteristics
|
Control of
batch processing
|
Batch
|
Specifying Batch Processing Options
|
Control of
job scheduling
|
Output
|
Specifying Job Scheduling Options
|
Banner pages
|
Output
|
Using Banner Pages
|
Forms
|
Output
|
Using and Creating Forms
|
Control of
line and page overflow
|
Output
|
Controlling Line and Page Overflow
|
Suppression
of initial form feed
|
Output
|
Suppressing Initial Form Feed
|
Device control library modules
|
Output
|
Using Device Control Libraries
|
You can implement options in either of the following ways:
Qualifiers for Specifying Queue Options lists qualifiers you can use to specify queue options, and indicates the type of queue for which you can specify each option.
Qualifier | Type of Queue | Description | For More Information |
---|---|---|---|
/AUTOSTART_ON
|
Batch and output
|
Creates an
autostart execution queue and specifies the node or nodes (and for output
queues, the device or devices) on which the queues can run.
|
Creating and Starting Autostart Execution Queues
|
/BASE_PRIORITY
|
Batch and output
|
Specifies a
base process priority (not the
same as the job scheduling priority). For a batch queue, specifies
the base priority for processes executing jobs in the queue. For
output queues, specifies the base priority of the symbiont process.
|
Base Process Priority
|
/BLOCK_LIMIT
|
Output
|
Limits the
size of print jobs that can be processed on an output execution
queue.
|
Setting Job Scheduling Priorities and Limits
|
/CHARACTERISTIC
/CHARACTERISTICS |
Batch and output
|
Specifies one
or more characteristics associated with the queue.
|
Specifying Queue Characteristics
|
/CPUDEFAULT
|
Batch
|
Defines the
default CPU time limit for batch jobs executed in the queue.
|
Specifying Batch Processing Options
|
/CPUMAXIMUM
|
Batch
|
Defines a maximum
CPU time limit for batch jobs executed in the queue.
|
Specifying Batch Processing Options
|
/DEFAULT
|
Output
|
Establishes
defaults for certain options of the PRINT command. After you set an
option for the queue with the /DEFAULT qualifier, users do not have to
specify that option in their PRINT commands. However, they can specify options
to override the defaults set on the queues. Possible default options
are as follows:
|
|
|
|
BURST
|
Using Banner Pages
|
|
|
FEED
|
Controlling Line and Page Overflow
|
|
|
FLAG
|
Using Banner Pages
|
|
|
FORM
|
Using and Creating Forms
|
|
|
TRAILER
|
Using Banner Pages
|
/DESCRIPTION
|
Batch and output
|
Specifies a
text string to provide users with information about the queue.
|
|
/DEVICE
|
Output
|
Specifies the
type of output execution queue. The keywords are as follows:
PRINTER (default) TERMINAL SERVER |
Monitoring Queue Information
|
/DISABLE_SWAPPING
|
Batch
|
Specifies whether
batch jobs executed from a queue can be swapped in and out of memory.
|
Specifying Batch Processing Options
|
/FORM_MOUNTED
|
Output
|
Specifies the
mounted form for an output execution queue.
|
Using and Creating Forms
|
/GENERIC
|
Batch and output
|
Creates a generic
queue and names the execution queues it feeds.
|
Creating a Generic Queue
|
/JOB_LIMIT
|
Batch
|
Indicates the
number of batch jobs that can be executed concurrently from a batch
queue.
|
Specifying Batch Processing Options
|
/LIBRARY
|
Output
|
Specifies the
file name for a device control library.
|
Using Device Control Libraries
|
/NAME_OF_MANAGER
|
Batch and output
|
Specifies the
name of the queue manager with which the queue will be associated.
|
Using Multiple Queue Managers
|
/NO_INITIAL_FF
|
Output
|
Specifies the
qualifier for an output execution queue; suppresses the initial form
feed sent to an output execution queue.
|
Suppressing Initial Form Feed
|
/ON
|
Batch and output
|
Creates a nonautostart
execution queue and specifies the node (and, for output queues,
the device) on which the queue is to run.
|
Creating a Nonautostart Queue
|
/OWNER_UIC
|
Batch and output
|
Specifies the
user identification code (UIC) for the queue.
|
Setting and Showing UIC-Based Queue Protection
|
/PROCESSOR
|
Output
|
Specifies the
symbiont to be used with an output execution queue. The default is
the standard operating system print symbiont PRTSMB.
|
Creating and Starting Autostart Execution Queues
|
/PROTECTION
|
Batch and output
|
Specifies a
protection for the queue.
|
Setting and Showing UIC-Based Queue Protection
|
/RAD
|
Batch
|
Specifies the
RAD number on which to run batch jobs assigned to the queue.
|
Assigning a Batch Queue to a Resource Affinity Domain (RAD)
|
/RECORD_BLOCKING
|
Output
|
Determines
whether the symbiont can concatenate (or block together) output records
for transmission to the output device.
|
Creating and Starting Autostart Execution Queues
|
/RETAIN
|
Batch and output
|
Holds jobs
in the queue after they have executed.
|
Using Job Retention Options
|
/SCHEDULE
|
Output
|
Specifies whether
pending jobs in a queue are scheduled based on the size of the job.
|
Specifying Job Scheduling Options
|
/SEPARATE
|
Output
|
Specifies required
job separation or job reset options for an output execution queue.
Required options cannot be overridden by the PRINT command. Possible
options are as follows:
|
|
|
|
BURST
|
Using Banner Pages
|
|
|
FLAG
|
Using Banner Pages
|
|
|
RESET
|
Using Device Control Libraries
|
|
|
TRAILER
|
Using Banner Pages
|
/WSDEFAULT
|
Batch and output
|
For batch queues,
specifies a default working set size for batch jobs executed in
the queue. For output queues, specifies a default working set size
for the symbiont process.
The value set by this qualifier overrides the value defined in the UAF of any user submitting a job to the queue. |
Specifying Batch Processing Options
|
/WSEXTENT
|
Batch and output
|
For batch queues,
specifies the working set extent for batch jobs executed in the queue.
For output queues, specifies a working set extent for the symbiont process.
The value set by this qualifier overrides the value defined in the UAF of any user submitting a job to the queue. |
Specifying Batch Processing Options
|
/WSQUOTA
|
Batch and output
|
For batch queues, specifies
the working set quota for batch jobs executed in the queue. For
output queues, specifies a working set quota for the symbiont process.
The value set by this qualifier overrides the value defined in the UAF of any user submitting a job to the queue. |
Specifying Batch Processing Options
|
Controlling
Access to Queues
Queues are permanent
security objects. They are stored in the system queue database together
with their security profiles.
As with a file or directory, you can use UIC-based or ACL-based protection to control access to a queue.
Refer to the HP OpenVMS Guide to System Security for detailed information about establishing system security.
Understanding UIC-Based Queue Protection
UIC-based protection restricts the jobs and the users who
have access to a queue. Operations that apply to queues are controlled
by UIC-based protection in the same way that access to other protected
objects (such as files) is controlled.
When you create a queue, the queue is assigned an owner UIC and a protection code. The default owner is [SYSTEM], but you can specify another owner with the /OWNER_UIC qualifier.
The queue class provides the following default UIC-based security profile:
System:Manager,Owner:Delete,Group:Read,World:SubmitJobs are assigned an owner UIC equal to the UIC of the process that submitted the job, unless the job was submitted with the /USER qualifier. Each job in a queue (and each operation that is performed on a queue) is checked against the UIC of the owner, the protection of the queue, and the privileges of the requester.
All operations are checked as follows:
Operations that apply to... | Are checked against... |
---|---|
Jobs
|
The read and delete protection
specified for the queue and the owner UIC of the job.
|
Queues
|
The submit and manage protection specified
for the queue and the owner UIC of the queue.
|
The following table lists the types of access that the queue class supports:
Access Type | Gives you the right to... |
---|---|
Read
|
See the security elements
of a queue or a job in a queue.
|
Submit
|
Place jobs in the queue.
|
Delete
|
Delete a job in the queue
or modify the elements of a job.
|
Manage
|
Affect any job in the queue.
You can start, stop, or delete a queue and change its status and
any elements that are unrelated to security.
|
Control
|
Modify the protection elements and owner
of a queue.
|
Note that when a process receives read or delete access through a protection code, it can operate on only its job in the queue. However, when granted through an ACL, read and delete access allow a process to operate on all jobs in the queue.
You need SYSNAM and OPER privilege to stop or start the queue manager. OPER is necessary to create and delete queues, or to change the symbiont definition.
The following events can be audited, provided the security administrator enables auditing for the event class:
Event Audited | Audit Occurs When... |
---|---|
Access
|
A job is submitted to the
queue and when either a job or queue is modified.
|
Creation
|
A queue is initialized.
|
Deletion
|
A process deletes a job from the queue
or when the queue itself is deleted. (To enable auditing for queue
deletions, enable auditing for manage [M] access to the queue.)
|
For more information about queue security, refer to the HP OpenVMS Guide to System Security.
Setting and Showing UIC-Based Queue Protection
Use the following commands to set and show UIC-based protection
on queues:
Command | Description |
---|---|
INITIALIZE/QUEUE/PROTECTION=(ownership[:access],... )
START/QUEUE/PROTECTION=(ownership[:access],... ) SET QUEUE/PROTECTION=(ownership[:access],... ) |
Specifies the protection
of a queue:
|
INITIALIZE/QUEUE/OWNER_UIC=uic
START/QUEUE/OWNER_UIC=uic SET QUEUE/OWNER_UIC=uic |
Enables you to change the
UIC of a queue. The default UIC is [1,4].
|
SHOW QUEUE/FULL
|
Displays complete information
about a queue, including the protection currently set for the queue.
|
SET SECURITY/CLASS=QUEUE/OWNER=uic
|
Modifies the owner element
of a queue. Specify the UIC in the standard format.
|
SET SECURITY/CLASS=QUEUE/
PROTECTION=ownership[:access] |
Modifies the protection
code of a queue. The protection code defines the type of access allowed
to users, based on their relationship to the object's owner.
|
SHOW SECURITY/CLASS=QUEUE
|
Shows protection currently set for objects
of the queue class.
|
$
INITIALIZE/QUEUE/GENERIC=(SYS_QUE1,SYS_QUE2)/ PROTECTION=(S:M,O:D,G:R,W:R) -
_$
/OWNER_UIC=[1,8]/RETAIN=ERROR SYS_PRINT
$
SHOW QUEUE/FULL SYS_PRINT
Generic printer queue SYS_PRINT/GENERIC=(SYS_QUE1,SYS_QUE2) -
_$
/OWNER=[1,8]/PROTECTION=(S:M,O:D,G:R,W:R)/RETAIN=ERROR
$
SET SECURITY/CLASS=QUEUE/OWNER=[AGBELL]/PROTECTION=O:MD -
_$
TELEPHONE_QUE
$
SHOW SECURITY/CLASS=QUEUE TELEPHONE_QUEUE
TELEPHONE_QUEUE object of class QUEUE Owner: [INVENTORS,AGBELL] Protection: (System: M, Owner: MD, Group: R, World: S) Access Control List:
<empty>
Understanding ACL-Based Queue Protection
In addition to UIC-based protection, you can associate access
control lists (ACLs) with a queue. ACL-based protection provides
a more refined level of protection when certain members of a project
group require access to a queue, excluding others of the same UIC
group or of other groups.
Refer to the HP OpenVMS Guide to System Security for detailed information about establishing ACLs for protected objects.
Setting and Showing ACL-Based Queue Protection
Use the following commands to set and show ACL-based protection
on queues:
Command | Description |
---|---|
SET SECURITY/ACL=(IDENTIFIER=(identifier, ACCESS=access-type)[,...])CLASS=QUEUE |
Sets ACL protection on a
queue.
|
SHOW QUEUE/FULL
|
Shows any ACLs set on a
queue.
|
SHOW SECURITY/CLASS=QUEUE
|
Shows any ACLs set on a queue.
|
For more information about ACL-based security, refer to the HP OpenVMS Guide to System Security.
$
SET QUEUE/PROTECTION=(S,O,G,W)
$
SET SECURITY/CLASS=QUEUE SYS_QUE1 -
_$
/ACL=((IDENTIFIER=ULTRA_LITE, ACCESS=READ+SUBMIT+MANAGE+DELETE), -
_$
(IDENTIFIER=MINUTES, ACCESS=READ+SUBMIT))
$
SHOW QUEUE/FULL SYS_QUE1
Batch queue SYS_QUE1, stopped /BASE_PRIORITY=4 /JOB_LIMIT=1 /OWNER=[1,4] /PROTECTION=(S,O,G,W) (IDENTIFIER=ULTRA_LITE,ACCESS=READ+SUBMIT+MANAGE+DELETE) (IDENTIFIER=MINUTES,ACCESS=READ+SUBMIT)
$
SET QUEUE/PROTECTION=(S,O,G,W)
$
SET SECURITY/CLASS=QUEUE SYS_QUE1 -
_$
/ACL=((IDENTIFIER=ULTRA_LITE, ACCESS=READ+SUBMIT+MANAGE+DELETE), -
_$
(IDENTIFIER=MINUTES, ACCESS=READ))
$
SHOW SECURITY/CLASS=QUEUE TELEPHONE_QUEUE
TELEPHONE_QUEUE object of class QUEUE Owner: [INVENTORS,AGBELL] Protection: (System: M, Owner: MD, Group: R, World: S) Access Control List:
<empty>
$
SET SECURITY/CLASS=QUEUE/ACL=(ID=[AGBELL],ACCESS=CONTROL) TELEPHONE_QUEUE
$
SHOW SECURITY/CLASS=QUEUE TELEPHONE_QUEUE
TELEPHONE_QUEUE object of class QUEUE Owner: [INVENTORS,AGBELL] Protection: (System: M, Owner: MD, Group: R, World: S) Access Control List: (IDENTIFIER=[INVENTORS,AGBELL],ACCESS=CONTROL)
Understanding How Privileges Affect Queues
Certain account privileges allow users to access a queue in
spite of UIC-based and ACL-based protection. The following table
lists these account privileges and the type of access they allow
on a queue:
Privilege | Access |
---|---|
OPER
|
Manage and control access
to all queues.
|
BYPASS
|
Manage and control access
to all queues.
|
READALL
|
Read access to all jobs
and to queue security information.
|
SYSPRV
|
The access specified for
users with system UICs.
|
GRPPRV
|
The access specified for users with system
or group UICs.
|
Using Job Retention Options
Job retention options allow users to retain a job in a queue
after the job completes. System managers can use job retention options
to keep information about all jobs in the queue after the jobs complete;
this is helpful when tracking jobs submitted by other users.
Setting Job Retention
Users can set job retention, as can system managers. The following
sections explain how each can perform this task.
Users can request that a job be retained in a queue after the job completes by using the /RETAIN qualifier with the PRINT or SUBMIT command. For example:
PRINT/RETAIN SUBMIT/RETAINSystem Manager Commands
By default, no job retention option is set on a queue. To specify a job retention option, use one of the following commands:
INITIALIZE/QUEUE/RETAIN=option START/QUEUE/RETAIN=option SET QUEUE/RETAIN=optionYou can specify one of the following options:
Option | Description |
---|---|
ALL
|
Holds all jobs in the queue
after execution (default).
|
ERROR
|
Holds jobs in the queue only if they
complete unsuccessfully.
|
The following command specifies that the queue retain all jobs that complete with a status other than success:
For example, if you need to know all batch jobs that do not complete successfully on a specific queue, set the queue to retain jobs that complete with an error status. You can enter SHOW QUEUE to display a list of jobs (including their completion status) that completed unsuccessfully. If a job completes unsuccessfully, this message helps determine why. The displays also include the date and time at which a retained job completed.$
SET QUEUE/RETAIN=ERROR BATCH_QUE
The job retention option you specify on a queue overrides any job retention option requested by a user for a job in that queue. Determining Job Retention shows how job retention affects a job submitted to a generic queue.
Figure 10 Determining Job Retention |
The following factors determine whether and where a job is retained:
If jobs are retained in queues, periodically delete the jobs that no longer need to be retained.
Specifying Timed Job Retention
Users can specify timed job retention. For example:
This eliminates the need to delete retained jobs from queues. Encourage users who include the /RETAIN qualifier to also use timed retention.$
SUBMIT/RETAIN=UNTIL=19-MAY-2000:07:31:0.0 MYFILE.DAT
Changing Job Retention
To change the user-specified retention policy for a job, use
the /RETAIN=option qualifier with the SET ENTRY command in the following
format:SET ENTRY/RETAIN=option entry-number
You can specify one of the following options:
For example, the following command retains job 172 in the queue until 3 hours after the job completes. At that time, the job will automatically be deleted from the queue.
To remove a job retention option from a queue, use the /NORETAIN qualifier with INITIALIZE/QUEUE, START/QUEUE, or SET QUEUE.$
SET ENTRY/RETAIN=UNTIL="+3:00" 172
Specifying Queue Characteristics
A characteristic is any attribute of a print or batch job
that is relevant to your environment. For example, characteristics
for a printer could refer to the color of the ink, the type of paper,
or the location of the printer. Once you define the characteristics
for a queue, users can specify the characteristics they want to
associate with their job when they enter the PRINT or SUBMIT command.
A print job can be processed on an execution queue if the job's characteristics are a subset of the queue's characteristics. However, if any of the characteristics associated with the job are not associated with the queue, the job remains pending until you correct the characteristic mismatch as explained in Fixing Jobs That Are Pending Because of Characteristics Mismatch.
To specify queue characteristics, perform the following steps:
You manage three LN03 printers in each of the four corners of a building. A generic queue LN03$PRINT feeds execution queues for each printer. You can define the characteristics EAST, WEST, NORTH, and SOUTH.
When a user submits a print job to LN03$PRINT with the EAST characteristic, the job prints on the first idle LN03 printer in the eastern corner of the building. If the system has queues for printers on multiple floors, you can further define a characteristic for each floor, for example, FIRST, SECOND, and THIRD.
Commands for Specifying Queue Characteristic Options
Use the following commands when working with characteristics:
Command | Description |
---|---|
DEFINE/CHARACTERISTIC
|
Creates a characteristic
and assigns a name and number.
|
DELETE/CHARACTERISTIC
|
Deletes a characteristic.
|
SHOW QUEUE/CHARACTERISTICS
|
Displays information about
characteristics defined for the system.
|
INITIALIZE/QUEUE/CHARACTERISTICS
SET QUEUE/CHARACTERISTICS START/QUEUE/CHARACTERISTICS |
Specifies one or more characteristics
for processing jobs on a queue.
|
SHOW QUEUE/FULL
|
Displays information about
a queue, including any characteristics assigned to the queue.
|
PRINT/CHARACTERISTICS
SUBMIT/CHARACTERISTICS SET ENTRY/CHARACTERISTICS |
Specifies the name or number of one or
more characteristics to be associated with the job.
|
The following sections describe how to specify queue characteristics.
Defining Characteristics
No characteristics are defined by default. To define a characteristic,
use the DEFINE/CHARACTERISTIC command in the following format:DEFINE/CHARACTERISTIC characteristic-name characteristic-number
You cannot define more than one characteristic name to a number.
If your queue configuration requires more than one characteristic name for a single number, you can define logical names to achieve the same result.
In an OpenVMS Cluster environment, you must define the logical names on every node that requires them.
If you want to define a characteristic name that is also an existing logical name, read the description of logical names in the). |
In the following example, the characteristic name SECOND_FLOOR is assigned to characteristic number 2. The logical names SALES_FLOOR and SALES_DEPT are defined as equivalent to the characteristic name SECOND_FLOOR. As a result, the logical names SALES_FLOOR and SALES_DEPT are equivalent to the characteristic name SECOND_FLOOR and characteristic number 2. These logical names can be specified as the characteristic-name value for any /CHARACTERISTIC=characteristic-name qualifier.
$
DEFINE/CHARACTERISTIC SECOND_FLOOR 2
$
DEFINE/SYSTEM/EXECUTIVE_MODE SALES_FLOOR SECOND_FLOOR
$
DEFINE/SYSTEM/EXECUTIVE_MODE SALES_DEPT SECOND_FLOOR
Displaying Characteristics Defined on a System
To see the characteristics defined on a system, enter SHOW
QUEUE/CHARACTERISTICS.
$
SHOW QUEUE/CHARACTERISTICS
Characteristic name Number ------------------- ------ EAST 1 WEST 2 NORTH 3 SOUTH 4
Assigning Characteristics to a Queue
No characteristics are assigned to a queue by default. To
assign characteristics to a queue, include the /CHARACTERISTICS
qualifier with INITIALIZE/QUEUE, START/QUEUE, or SET QUEUE.
$
SET QUEUE/CHARACTERISTICS=(EAST) LN03_1
Displaying Characteristics Assigned to a
Queue
To determine the characteristics defined for a queue, enter
SHOW QUEUE/FULL.
$
SHOW QUEUE/FULL LN03_1
Printer queue LN03_1, idle, on HERA::TTA3, mounted form DEFAULT <Printer queue on node HERA for an LN03 printer> /BASE_PRIORITY=4 /CHAR=(1) /DEFAULT=(FLAG=ONE,FORM=LN03$PORTRAIT (stock=DEFAULT) ) /LIBRARY=LN03LIBRARY Lowercase /OWNER=[SYSTEM] /PROCESSOR=LATSYM /PROTECTION=(S:M,O:D,G:R,W:R) /SEPARATE=(RESET=(ANSI$RESET) )
Canceling Characteristics Assigned to a Queue
To cancel characteristics assigned to a queue, specify the
/NOCHARACTERISTICS qualifier with INITIALIZE/QUEUE, START/QUEUE,
or SET QUEUE.
Deleting Characteristics
To delete a characteristic definition, enter DELETE/CHARACTERISTIC.
You must specify the characteristic-name with DELETE/CHARACTERISTIC.
If you know the number assigned to the characteristic but do not know the name, enter SHOW QUEUE/CHARACTERISTICS to display the names and numbers assigned to characteristics on the system.
If the system displays the following messages, a queue or job refers to the characteristic:
%DELETE-E-NOTDELETED, error deleting characteristic -JBC-E-REFERENCED, existing references prevent deletionYou must remove all references to the characteristic before you can delete the characteristic. For information about removing references to a characteristic, see Solving Problems Deleting a Queue, Form, or Characteristic.
Specifying Batch Processing Options
You can use queue options to control batch job performance
and the use of system resources by processes executing batch jobs.
Use the following qualifiers with INITIALIZE/QUEUE, START/QUEUE, or SET QUEUE to set these queue options:
Although the following qualifiers are not specific to batch queues, they are commonly used to control batch job performance and the use of system resources by batch processes:
For more information about these limits, quotas, and priorities, refer to the following manuals:
By default, a process running a batch job uses values taken from the UAF record of the user submitting the job or from system parameter settings. If you specify values for any of these options, processes for jobs executed in the queue will use the values you set unless the user specifies values when the job is submitted. (A user can specify values for CPU time and for the working set options default, quota, and extent.)
A user-specified value cannot exceed the value you set for the queue. If you did not specify a value, the user-specified value cannot exceed the value specified in the associated UAF limit or system parameter.
The following sections provide guidelines for choosing values for these options:
Option | For More Information |
---|---|
Base process
priority
|
Base Process Priority
|
Job limit
|
Job Limit
|
Working set
default, quota, and extent
|
Working Set Default, Quota, and Extent
|
CPU default
and maximum
|
CPU Default and Maximum
|
Swapping
|
Swapping
|
Options for
memory-constrained systems
|
Options for Memory-Constrained Systems
|
Optimizing for the Sort/Merge
utility
|
Optimizing Batch Queues for the Sort/Merge Utility
|
Base
Process Priority
Choose a value based on how quickly you will allow batch jobs
to progress. If you choose a value equal to the system parameter
value DEFPRI (typically 4), jobs in this queue will progress at
the same rate as typical interactive jobs. This choice might be
appropriate for systems that have an abundance of available CPU
time.
If you choose a value less than DEFPRI, jobs in this queue will potentially progress more slowly than the typical interactive job. CPU time will be allocated to jobs in this queue only after servicing jobs of DEFPRI priority.
If a queue is defined for a very special purpose--for example, high-priority jobs--a value greater than DEFPRI (for example, 5) might be appropriate. However, this choice can have a significant negative effect on the performance of other users and batch jobs.
Job
Limit
Keep this value low when using a base process priority of
DEFPRI or greater, because each batch job can affect the performance
of interactive jobs.
Working
Set Default, Quota, and Extent
If you do not specify values for these options, a job uses
the value specified in its owner's user authorization file (UAF)
record.
In general, the working set quota and extent values specified in the UAF record for each user are sufficient. However, you can specify more generous or stringent values for a queue, depending on the purpose of the queue. For example, you can encourage users to submit large jobs (such as compiling and linking large programs) as batch jobs to reserve interactive use of the system for jobs that do not require extensive resources, as follows:
CPU
Default and Maximum
You
can restrict and expand the amount of time a job is allowed in the
CPU by setting CPU limit values.
Do not set CPU time limit values too low. When a job's CPU time limit is exceeded, the job is terminated with an error status. If working set values (explained in Working Set Default, Quota, and Extent) are set too low, the system might use memory less efficiently but the jobs can still complete normally. However, if CPU time limit values are set too low, the system might terminate jobs that are making legitimate and authorized use of the CPU.
For example, you might use a CPU time limit on a batch queue devoted to execution of newly coded software that could unexpectedly enter a CPU loop. The CPU time limit would terminate infinitely looping jobs so they do not waste the CPU resource. However, you must be careful to choose a sufficiently high time limit so normally executing jobs do not terminate prematurely.
Another way to control allocation of the CPU resource is to create a special-purpose batch queue that shifts execution of its jobs to a less busy time of day when CPU time is more available.
Swapping
Typically, swapping is enabled on batch queues. However, for
a special-purpose, high-priority queue, you might disable swapping.
This provides a favorable status to jobs in this queue by removing
them from consideration when memory must be reclaimed from processes
(through the operating system's swapping and trimming mechanism).
For more information, refer to OpenVMS Performance Management.
Options for Memory-Constrained Systems
On
memory-constrained systems, total the pages required for the batch
working sets on all batch queues. Also make sure that enough fluid
memory remains for interactive jobs.
Fluid memory can be reassigned from one process to another through swapping and paging. (You can calculate fluid memory as the space that remains when you subtract the number of pages permanently allocated to the operating system from the total memory. To obtain these values, enter SHOW MEMORY.)
Optimizing
Batch Queues for the Sort/Merge Utility
You can improve the efficiency of the OpenVMS Sort/Merge utility
(SORT/MERGE) by designating one batch queue for sorting jobs and
giving this queue a very large working set quota.
You can also set process quotas for greatest SORT efficiency. The values recommended here are based solely on SORT considerations; you should integrate other system considerations with these to determine appropriate values.
Assigning a Batch Queue to a Resource Affinity
Domain (RAD)
System
managers can assign batch queues to specific resource affinity domains
(RADs) in a NUMA environment. See the OpenVMS Alpha Partitioning
and Galaxy Guide
for more information about RADs.)
The RAD value is a positive integer between 0 and SYI$_RAD_MAX_RADS. The SHOW/QUEUE/FULL command displays the RAD in its output.
This section describes a sequence of the commands and their effects on a batch queue. A SHOW command is included in each example to illustrate the batch queue modifications.
$ INITIALIZE/QUEUE/ON=QUEBID::/BATCH/RAD=0 BATCHQ1 $ SHOW QUEUE/FULL BATCHQ1 Batch queue BATCHQ1, stopped, QUEBID:: /BASE_PRIORITY=4 /JOB_LIMIT=1 /OWNER=[SYSTEM] /PROTECTION=(S:M,O:D,G:R,W:S) /RAD=0
$ START/QUEUE/RAD=1 BATCHQ1 $ SHOW QUEUE/FULL BATCHQ1 Batch queue BATCHQ1, idle, on QUEBID:: /BASE_PRIORITY=4 /JOB_LIMIT=3 /OWNER=[SYSTEM] /PROTECTION=(S:M,O:D,G:R,W:S) /RAD=1
$ SET/QUEUE/RAD=0 BATCHQ1 $ SHOW QUEUE/FULL BATCHQ1 Batch queue BATCHQ1, idle, on QUEBID:: /BASE_PRIORITY=4 /JOB_LIMIT=3 /OWNER=[SYSTEM] /PROTECTION=(S:M,O:D,G:R,W:S) /RAD=0
$ SET/QUEUE/NORAD BATCHQ1 $ SHOW QUEUE/FULL BATCHQ1 Batch queue BATCHQ1, idle, on QUEBID:: /BASE_PRIORITY=4 /JOB_LIMIT=3 /OWNER=[SYSTEM] /PROTECTION=(S:M,O:D,G:R,W:S)
When you change the RAD value on a batch queue, the jobs currently in the batch queue are not dynamically updated with the new RAD value specified on the queue. Any executing jobs complete processing using the original RAD value. Jobs in the pending, holding, or timed execution states retain the old RAD value on the job; however, when such a job becomes executable, the job is updated with the new RAD value and runs on the RAD specified on the queue.
Specifying
Job Scheduling Options
The queue manager uses the following criteria to determine
the scheduling order for batch and print jobs that are eligible
for processing:
To specify job scheduling options, follow these steps:
Commands for Job Scheduling Options
Use the following commands to specify job scheduling options:
Command | Description |
---|---|
INITIALIZE/QUEUE/SCHEDULE=[NO]SIZE
START/QUEUE/SCHEDULE=[NO]SIZE SET QUEUE/SCHEDULE=[NO]SIZE |
Specifies whether pending
jobs in an output execution queue are scheduled for printing based
on the size of the job. (Shorter jobs print before longer ones.)
|
INITIALIZE/QUEUE/[NO]BLOCK_LIMIT=([lowlim,]uplim)
START/QUEUE/[NO]BLOCK_LIMIT=([lowlim,]uplim) SET QUEUE/[NO]BLOCK_LIMIT=([lowlim,]uplim) |
Limits the size of print
jobs that can be processed on an output execution queue.
|
PRINT/PRIORITY=n
SUBMIT/PRIORITY=n SET ENTRY/PRIORITY=n |
Specifies the job scheduling priority
of the print job. The value of n can be from 0 through 255, where 0 is the lowest
priority and 255 is the highest.
|
Setting
Job Scheduling Priorities and Limits
The sections explain how to set job printing priorities and
sizes.
How to Prioritize Jobs by Size
To prioritize jobs based on their sizes, use the /SCHEDULE=SIZE qualifier with INITIALIZE/QUEUE, START/QUEUE, or SET QUEUE. (The /SCHEDULE=NOSIZE qualifier prints jobs in the order they were submitted, regardless of size.)
In the following example, /SCHEDULE=SIZE (the default), causes short jobs to print before longer ones on the print queue LPA0_PRINT:
If you enter this command while pending jobs are in any queue, its effect on future jobs is unpredictable.$
INITIALIZE/QUEUE/SCHEDULE=SIZE LPA0_PRINT
To limit the size of print jobs, use the /BLOCK_LIMIT qualifier with INITIALIZE/QUEUE, START/QUEUE, or SET QUEUE. By default, printer and terminal queues are created with no block limit, so jobs of any size will be printed. You can specify only an upper limit or both upper and lower limits.
In the following example, LPB0_PRINT has a block size limit of 50, indicating that this queue is reserved for jobs smaller than 51 blocks.
You might also want to limit the size of jobs during certain hours of the day. You can submit a batch job that runs a command procedure to set a maximum block limit of 500 blocks for a queue at 8:00 a.m. The command procedure might resubmit itself and remove the block limit after 5:00 p.m. each day. This lets users print jobs of any size after normal work hours, when the printing work load is lighter. Users can specify the /AFTER qualifier with the PRINT command to specify that a job is to be printed after a specific time.$
INITIALIZE/QUEUE/BLOCK_LIMIT=50 LPB0_PRINT
Changing the Scheduling Priority of a Job
If a batch or
print job cannot be processed, it is placed in a pending state and
is not processed until the cause of the pending state is resolved.
For more information, see
Making Pending Jobs Eligible for Scheduling.
To change the scheduling priority of a job, use the /PRIORITY qualifier with SET ENTRY in the following format:SET ENTRY/PRIORITY=n entry-number
The following example changes the scheduling priority of a job to 50:
Do not confuse the job scheduling priority with the base process priority on a queue. The job scheduling priority value must be in a range of 0 through 255, where 0 is the lowest priority and 255 is the highest. The default value for /PRIORITY, which refers to the job scheduling priority, is the value of the system parameter DEFQUEPRI (usually set at 100).$
SET ENTRY/PRIORITY=50 1131
Using
Banner Pages
Banner pages are specially formatted
pages that you can set up for queues, to help identify and separate output
jobs when they exit a printer. Banner pages also help identify and
separate files within jobs.
Two types of banner pages are:
Most sites use only a subset of the available banner pages at any given time. The following table describes the types of banner pages you can use:
Type | Description | For More Information |
---|---|---|
Job Pages |
||
Flag page
|
A single page printed before each job. |
Job Flag and Burst Pages |
Burst page
|
Two flag pages, divided by a separation (burst) bar,
printed before each job |
Job Flag and Burst Pages |
Trailer page
|
A page printed after each job. |
File and Job Trailer Pages |
File Pages |
||
Flag page
|
A single page printed before each file
in a job.
|
File Flag and Burst Pages
|
Burst page
|
Two flag pages, divided by a separation
(burst) bar, printed before each file in a job
|
File Flag and Burst Pages
|
Trailer page
|
A page printed after each file in a job.
|
File and Job Trailer Pages
|
If you do not need to burst pages of a printer's output--for example, if your printer uses cut sheet paper--avoid the burst page option. Flag pages, or flag and trailer pages, are usually sufficient for identifying the end of a job. |
Job Flag and Burst Pages shows job flag and burst pages. File Flag and Burst Pages shows file flag and burst pages. File and Job Trailer Pages shows file trailer and job trailer pages.
Figure 11 Job Flag and Burst Pages |
Figure 12 File Flag and Burst Pages |
Figure 13 File and Job Trailer Pages |
Widths greater than 40 characters and less than 200 characters and lengths of any size greater than 40 characters are supported for file and job banner pages. Pages requested for widths greater than 200 characters are formatted and printed at 200-character widths. Lengths less than 40 characters are extended by that form length until the 40-character threshold is exceeded. Margins are not taken into account when formatting banner pages.
All banner pages format information to the width and length of the default form size of 80 characters by 51 lines. Therefore, information might be truncated, depending on the form sizes you specify. See Controlling Line and Page Overflow for information about controlling line and page overflow. |
Use the following commands when working with banner pages:
Using and Creating Forms
Print forms determine certain page formatting attributes (such
as margins, page length, and wrapping lines). Also, the paper stock
specified in the form definition is used in determining whether
a job is eligible to print.
In OpenVMS, you have the option of using either of the following forms:
The stock of a form affects whether a job is eligible to print. The stock must match the queue's mounted form. The mounted form is the form of the current job or, if no job is processing, the form of the last job printed in a queue.
If the stock of a job's form matches the stock of the queue's mounted form, the job is processed using the options in the job's form. The mounted form changes automatically to the form of the job being processed in the queue. If the stock does not match the stock of the mounted form, the job remains pending until you perform special steps. (See Mounting a Form on a Queue.)
Use the following commands when working with forms:
Command | Description |
---|---|
DEFINE/FORM
|
Creates a form and assigns
a name and number.
|
SHOW QUEUE/FORM/FULL
|
Displays information about
forms available on a system.
|
DELETE/FORM
|
Deletes a form.
|
INITIALIZE/QUEUE/DEFAULT=FORM
START/QUEUE/DEFAULT=FORM SET QUEUE/DEFAULT=FORM |
Specifies the name or number
of the default form for an output execution queue.
|
PRINT/FORM
SET ENTRY/FORM |
Specifies the name or number
of the form to be associated with a print job.
|
INITIALIZE/QUEUE/FORM_MOUNTED
START/QUEUE/FORM_MOUNTED SET QUEUE/FORM_MOUNTED |
Specifies the name or number
of the mounted form for an output execution queue.
|
SHOW QUEUE/FULL
|
Displays information about a queue, including
the default form for the queue and the form mounted on the queue.
|
Systemwide Default or Customized Forms
To use the systemwide default form with no changes, do nothing. The system will automatically use the systemwide default form, DEFAULT, for all queues.
If you want to change the default form, however, do so before creating any queues that reference the form. For more information about how to make changes, see Changing the Systemwide Default Form.
To create customized forms, perform the steps explained in Creating a Customized Form.
The following sections provide guidelines for performing these tasks with all forms, systemwide default forms, or customized forms:
Task | Type of Form | Reference |
---|---|---|
Display forms
defined on a system
|
All
|
Displaying Forms Defined on a System
|
Display the
form assigned to a queue
|
All
|
Displaying the Form Assigned to a Queue
|
Change the
systemwide default form
|
Default
|
Changing the Systemwide Default Form
|
Create a form
|
Customized
|
Creating a Customized Form
|
Assign a default
form for a queue
|
Customized
|
Assigning a Default Form for a Queue
|
Mount a form
on a queue
|
Customized
|
Mounting a Form on a Queue
|
Delete a form
|
Customized
|
Deleting a Form
|
Control line
and page overflow
|
All
|
Controlling Line and Page Overflow
|
Suppress initial form feed
|
All
|
Suppressing Initial Form Feed
|
Displaying Forms Defined on a System
To display forms defined on a system, enter SHOW QUEUE/FORM/FULL.
If you know the name of the form, you can specify the form name
as a parameter.
$
SHOW QUEUE/FORM/FULL MEMO
Form name Number Description
--------- ------ -----------
MEMO (stock=DEFAULT) 110 LN03 indented memo format /LENGTH=66 /MARGIN=(TOP=2,BOTTOM=2,LEFT=5) /STOCK=DEFAULT /TRUNCATE /WIDTH=80
Displaying the Form Assigned to a Queue
To display the default form for a queue, enter SHOW QUEUE/FULL.
In the following example, the default form is REPORT and its stock is 8_5x11. All jobs processed on this queue that are not associated with an explicit form definition in the PRINT command have the default form REPORT. As long as the stock of the mounted form matches the stock of the default form, all jobs submitted to this queue without an explicit form definition will be scheduled to print.
$
SHOW QUEUE/FULL JEAN_PRINT
Printer queue JEAN_PRINT, idle, on BAY::TTA3:, mounted form 8_5x11 <Queue for printer in Jean's office> /BASE_PRIORITY=4 /DEFAULT=(FEED,FORM=REPORT (stock=8_5X11) ) /OWNER=[SYSTEM] /PROTECTION=(S:M,O:D,G:R,W:R)
Changing the Systemwide Default Form
A queue initialized without
the /DEFAULT=FORM qualifier uses the systemwide default form to
process print jobs not explicitly associated with a form definition.
The systemwide default form corresponds to the form number 0 and
uses the following options:
DEFINE/FORM Qualifiers explains these options in detail.
To change the systemwide default form, enter the DEFINE/FORM command in the following format:DEFINE/FORM DEFAULT 0 /qualifier[s]
To change the default bottom margin from 6 to 4, and the page length from 66 to 55, enter this command:
$
DEFINE/FORM DEFAULT 0/MARGIN=(BOTTOM=4)/LENGTH=55
Once a queue or job references a form, you cannot change the stock for that form. Change the stock of the default form before you create any queues. |
Creating a Customized Form
To
create a customized form, follow these steps:
$
PRINT_REPORT :== PRINT/FORM=REPORT
When you create a form, you can specify any of the qualifiers shown in DEFINE/FORM Qualifiers.
If you create forms only to provide different formatting options (and not to specify paper stock), specify the same stock type for each form. That way, jobs requesting any of these forms will print on the same queue without requiring you to enter any additional commands to modify the queue.
Unless you specify the /STOCK qualifier, the form's stock name is the same as the name of the form.
If you want to define a form name that is also an existing logical name, read the description of logical names in the OpenVMS User's Manual . |
The command in the following example defines the form MEMO as the number 3 and defines formatting options for the form:
$
DEFINE/FORM MEMO 3/STOCK=DEFAULT -
_$
/MARGIN=(TOP=2,BOTTOM=2,LEFT=6)/WIDTH=80/LENGTH=66/TRUNCATE -
_$
/DESCRIPTION="LN03 indented memo format"
Assigning a Default Form for a Queue
If a user does not specify the /FORM qualifier when submitting
a job with the PRINT command, the job uses the default form for
the execution queue on which the job is printed.
To assign a default form for an output execution queue, use the /DEFAULT qualifier with INITIALIZE/QUEUE, START/QUEUE, or SET QUEUE.
The queue's default form is associated with a print job at the time the job is processed unless the user specifies a specific form when the job is submitted. Therefore, if a user submits a job to a generic queue without specifying the /FORM qualifier, no form is associated with the job until it is transferred to an execution queue. |
In the following example, the SET QUEUE command changes the default form to LN03_PORTRAIT for the LN03_PRINT queue.
$
SET QUEUE/DEFAULT=FORM=LN03_PROTRAIT LN03_PRINT
Mounting a Form on a Queue
To mount
a form on a queue, use the /FORM_MOUNTED qualifier with INITIALIZE/QUEUE, START/QUEUE,
or SET QUEUE in the following format:INITIALIZE/QUEUE/FORM_MOUNTED=type
where type is the form name or number defined by the DEFINE/FORM command.
If you see a print job pending because of a stock mismatch, change the stock of the printer to the requested stock and mount the form associated with the requested stock on the queue, or perform one of the other steps explained in Fixing Print Jobs That Are Pending Due to Stock Mismatch.
Deleting a Form
To delete a customized form, enter the DELETE/FORM command.
For example:
You must specify the form name with DELETE/FORM (not the form number ). If you know the number assigned to the form but do not know the name, enter SHOW QUEUE/FORM to display the names and numbers assigned to forms on the system.$
DELETE/FORM MEMO
If the system displays the following messages, a queue or job exists with a reference to the form:
%DELETE-E-NOTDELETED, error deleting form-name -JBC-E-REFERENCED, existing references prevent deletionYou must remove all references to the form before you can delete the form. For information about removing references to a form, see Solving Problems Deleting a Queue, Form, or Characteristic.
Controlling
Line and Page Overflow
Under certain conditions, lines and pages formatted by the
print symbiont might exceed the length of lines and pages for a
printer. You can use queue options to control line and page overflow.
HP recommends that you control line overflow by using form definitions. To do this, you must set terminals and printers to avoid wrapping or truncating the print line before the physical limit of the device's width.
The print symbiont uses the form to determine the width of a line. Once the print symbiont has finished formatting the data, if the width of the line exceeds the /WIDTH setting for the device, the device driver will use the /TRUNCATE or /WRAP settings (if set) to truncate or wrap the line. |
To control line overflow, create forms using DEFINE/FORM with the /[NO]TRUNCATE and /[NO]WRAP qualifiers described in DEFINE/FORM Qualifiers.
To control page overflow errors, use the /DEFAULT=[NO]FEED qualifier with INITIALIZE/QUEUE, START/QUEUE, or SET QUEUE. This qualifier controls whether a form-feed character is automatically inserted when the symbiont detects overflow into the bottom margin area. Users can use the PRINT/[NO]FEED command to override the default feed option specified for a queue.
Users can specify the /PASSALL qualifier with the PRINT command to bypass all formatting, including carriage control, that the print symbiont performs. The default is /NOPASSALL. Use this qualifier when the print symbiont formatting might interfere with the desired formatting of the file. The /PASSALL qualifier causes the print symbiont to send I/O to the device driver with all formatting suppressed.
Suppressing Initial Form Feed
When you start a print queue, a form feed is sent to the output
device to ensure that the paper is at the top of the page before
printing begins. The initial form feed causes a blank form to be
printed when a queue starts.
To suppress the initial form feed, use the /NO_INITIAL_FF qualifier with INITIALIZE/QUEUE, SET QUEUE, or START/QUEUE.
Using
Device Control Libraries
A device control library is a text
library that contains user-written modules consisting of text or
escape sequences. A device control library module can
be used for the following purposes:
The three types of device control library modules, distinguished by their placement in a print job, are:
To use device control library options, perform the following steps:
Commands for Processing Print Jobs
You can use the following commands to set up device control library modules for processing print jobs:
Understanding the Order of Device Control
Module Output
Device
control modules are sent to the printer within a print job in the
following order:
The following sections describe how to manage device control libraries.
Creating a Device Control Library and Inserting
Modules
To create a device control library and insert modules, perform
the following steps:
To add a module to or delete it from a library, you must stop all output queues assigned to that library. |
Assigning a Library to a Queue
To
assign a device control library to an output queue, use the /LIBRARY
qualifier with INITIALIZE/QUEUE or START/QUEUE in the following
format:INITIALIZE/QUEUE/LIBRARY=filename queue-name
where filename is the name of the library file that contains the selected modules.
Libraries must be in SYS$LIBRARY and must have the file type .TLB. The default library is SYS$LIBRARY:SYSDEVCTL.TLB. Use the /LIBRARY qualifier to specify an alternate device control library. For example:
$
INITIALIZE/QUEUE/LIBRARY=LN03DEVCTL LN03_A_QUE
If you specify a value for the /LIBRARY qualifier, do not include the directory, file type, or version number. The system assumes that the file is in SYS$LIBRARY and has the type .TLB. If you copy a library file from another node, be sure that the new library has a unique file name. |
If three libraries contained modules that set up a printer for landscape orientation, these modules might be named LANDSCAPE in all three libraries. This allows you to use the same form on any queue for which a library contains a module of the specified name, even though the modules might contain different device-specific sequences.
Use the following command format to display a listing of all modules contained within a specified library:LIBRARY/LIST/FULL SYS$LIBRARY:library-name.TLB
Creating Forms for Setup and Page Setup Modules
To specify a setup or page setup module for a queue, use the
/SETUP=module or /PAGE_SETUP=module qualifier with DEFINE/FORM. The modules you specify
with /SETUP are sent to the printer when the form is mounted, before
each file of a job is printed. Similarly, the modules you specify
with /PAGE_SETUP are sent to the printer before each page of a job.
Users can request the module by using one of the following qualifiers with the PRINT command:
Assigning a Reset Module to a Queue
To assign a module to an output execution queue to reset the
printer to a known state at the end of each job, use the /SEPARATE=RESET=module qualifier with INITIALIZE/QUEUE, START/QUEUE, or
SET QUEUE.
Because the /SEPARATE qualifier specifies mandatory queue options, the RESET module you specify is sent to the queue at the end of every job. The user cannot override this option.
In the following example, the reset sequence contained in the module resets the printer at the end of each job. It also resets the printer when the queue is started to ensure that the first job prints correctly.
The following example uses device control library modules to process a print job. Two device control modules are created and inserted into the library file MYDEVCTL.TLB. The escape sequence or text in the setup module named MODULE1 is sent to the printer to set up the printer before REPORT.TXT is printed and again before MEMO.TXT is printed. The escape sequence or text in the reset module named MODULE2 is sent to the printer only once after both files in job REPORT have printed.$
INITIALIZE/QUEUE/LIBRARY=MYDEVCTL/SEPARATE=RESET=MODULE2 PDQ_QUE
$
LIBRARY/CREATE/TEXT SYS$LIBRARY:MYDEVCTL.TLB
$
EDIT MODULE1.TXT
!enter printer escape sequences or text for module1
$
EDIT MODULE2.TXT
!enter printer escape sequences or text for module2
$
LIBRARY/INSERT SYS$LIBRARY:MYDEVCTL.TLB/TEXT MODULE1
$
LIBRARY/INSERT SYS$LIBRARY:MYDEVCTL.TLB/TEXT MODULE2
$
INITIALIZE/QUEUE/START/ON=TTA9:/LIBRARY=MYDEVCTL PDQ_QUE
$
SET QUEUE/SEPARATE=RESET=MODULE2 PDQ_QUE
$
SHOW QUEUE/FULL PDQ_QUE
Terminal queue PDQ_QUE, idle on TOAD::TTA9, mounted form DEFAULT
/BASE_PRIORITY=4/DEFAULT=(FEED,FORM=DEFAULT)/LIBRARY=MYDEVCTL
/OWNER=[1,4]/PROTECTION=(S:M,O:D,G:R,W:R)/SEPARATE=(RESET=(MODULE2) )
$
DEFINE/FORM/SETUP=MODULE1/STOCK=DEFAULT FORM1 1
$
PRINT/FORM=FORM1 REPORT.TXT,MEMO.TXT/QUEUE=PDQ_QUE
Job REPORT (Queue PDQ_QUE, entry 619) started on PDQ_QUE
|
|