skip book previous and next navigation links
go up to top of book: HP OpenVMS System Manager's Manual, Volume 1:... HP OpenVMS System Manager's Manual, Volume 1:...
go to beginning of chapter: Setting Up and Maintaining Queues Setting Up and Maintaining Queues
go to previous page: Restarting Execution Queues on Reboot Restarting Execution Queues on Reboot
go to next page: Maintaining QueuesMaintaining Queues
end of book navigation links

Using Queue Options  



The following table describes options that you can use with queues:

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.

Table 1   Qualifiers for Specifying Queue Options
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:Submit
Jobs 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.

Privileges Required

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.

Kinds of Auditing Performed

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:
  • Specify the ownership parameter as system (S), owner (O), group (G), or world (W).


  • Specify the access parameter as read (R), submit (S), manage (M), or delete (D).

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.

Examples

  1. The following example sets protection on a queue, and then displays full information about the queue:
    $ 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
  2. The following example gives the owner manage and delete access to this queue and makes user AGBELL the owner. With manage access, the owner AGBELL can manage the queue, but cannot modify security information.
    $ 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.

Examples

  1. The SET QUEUE/PROTECTION command in the following example modifies the default protection of queue SYS_QUE1 to prevent access by nonprivileged users. The SET SECURITY/ACL command then restricts access to only those members of a project group who hold the ULTRA_LITE or MINUTES identifiers. Members with the MINUTES identifier have only read and submit access to the queue. The SHOW QUEUE/FULL command displays information, including security information, about the queue.
    $ 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)  
  2. The following example shows how to use ACLs to restrict queue access to members of a particular project group:
    $ 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))  
  3. The following example shows a queue that has only UIC-based protection, and then gives user AGBELL control access with an ACL. Control access allows user AGBELL to modify security information.
    $ 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.

User Commands

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/RETAIN
System 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=option 
You 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:

$ SET QUEUE/RETAIN=ERROR BATCH_QUE
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.

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  
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:

$ SUBMIT/RETAIN=UNTIL=19-MAY-2000:07:31:0.0 MYFILE.DAT
This eliminates the need to delete retained jobs from queues. Encourage users who include the /RETAIN qualifier to also use timed retention.

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:

Option Description
ALWAYS
Holds the job in the queue regardless of the job's completion status.
DEFAULT
Holds the job in the queue as specified by the queue's retention option. If no option has been set on the queue, the job is not retained.
ERROR
Holds the job in the queue only if the job completes unsuccessfully.
UNTIL=time-value
Holds the job in the queue for a specified length of time, regardless of the job's completion status. This lets you retain the job in the queue only as long as the job is needed and eliminates the need to delete the job from the queue later. The time value you specify is interpreted first as a delta time, then as a combination time, and finally as an absolute time. For information about specifying time values, refer to the OpenVMS User's Manual .

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.

$ SET ENTRY/RETAIN=UNTIL="+3:00" 172
To remove a job retention option from a queue, use the /NORETAIN qualifier with INITIALIZE/QUEUE, START/QUEUE, or SET QUEUE.

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.

How to Perform This Task

To specify queue characteristics, perform the following steps:

  1. Create characteristics with DEFINE/CHARACTERISTIC.
  2. Assign characteristics to a queue.

Example

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.


NoteIf you want to define a characteristic name that is also an existing logical name, read the description of logical names in the).

Example

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.

Example

$ 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.

Example

$ SET QUEUE/CHARACTERISTICS=(EAST) LN03_1

Displaying Characteristics Assigned to a Queue  

To determine the characteristics defined for a queue, enter SHOW QUEUE/FULL.

Example

$ 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 deletion
You 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:

Qualifier Description
/JOB_LIMIT=n
Specifies the number of jobs that can execute concurrently in the queue.
/[NO]DISABLE_SWAPPING
Specifies whether the processes running jobs on the queue can be swapped in and out of memory.
/CPUDEFAULT=time
Specifies the default CPU time limit for all jobs in the queue. The time cannot exceed the time limit set with the /CPUMAXIMUM qualifier.
/CPUMAXIMUM=time
Specifies the maximum CPU time limit for all jobs in the queue.
/RAD=n
Specifies the RAD number on which to run batch jobs assigned to the queue.

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:

Option Description
/BASE_PRIORITY=n
Specifies the base process priority at which jobs are initiated from a batch queue.
/WSDEFAULT=n
Specifies the default working set size for jobs executed in a batch queue. (For output queues, specifies the default working set size for symbiont processes.)
/WSEXTENT=n
Specifies the working set extent for jobs executed in a batch queue. (For output queues, specifies the working set extent for symbiont processes.)
/WSQUOTA=n
Specifies the working set quota for jobs executed in a batch queue. (For output queues, specifies the working set quota for symbiont 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.

Process Limit Description
Working set default
The value to which the working set returns at the exit of each image. The value should be relatively small and is usually best left at the value specified in the user's UAF record.
Working set quota
The value that approximates the amount of physical memory used by each batch job in the queue in a memory-constrained system.
Working set extent
The value that approximates the amount of physical memory in a memory-rich system.

You should set this to a high value. The working set extent value is an upper limit for the size of the working set; the working set cannot be expanded beyond this value even if more memory is required by the job. If you set this value too low, a job might page fault heavily even if the system has plenty of memory available. To be safe, choose a working set extent value equal to the system parameter value of WSMAX, which specifies the maximum working set size possible for your system.

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.

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:

  1. Job scheduling priority

    The queue manager checks the job's scheduling priority. The job with the highest scheduling priority value is processed first. The job scheduling priority is different than the base process priority or current process priority. The user can specify job scheduling priority with the /PRIORITY qualifier of the PRINT or SUBMIT command.
  2. Size (optional, and applies only to output jobs)

    By default, the job size of an output job is checked. Among jobs of identical scheduling priority, the smallest job is processed first.

    The job size is not checked if the queue has been created, started, or modified to use the /SCHEDULE=NOSIZE option.
  3. Submission time

    If the jobs' scheduling priorities are identical, the job that was submitted first is processed first.

How to Perform This Task

To specify job scheduling options, follow these steps:

  1. Decide if you want the order of print jobs to be based on size.
  2. Decide if you want to set a block limit on jobs to be printed.

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:

$ INITIALIZE/QUEUE/SCHEDULE=SIZE LPA0_PRINT
If you enter this command while pending jobs are in any queue, its effect on future jobs is unpredictable.

How to Limit the Size of Jobs

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.

$ INITIALIZE/QUEUE/BLOCK_LIMIT=50 LPB0_PRINT
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.

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:

$ SET ENTRY/PRIORITY=50 1131
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).

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


NoteIf 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.

Contents of File and Job Pages describes the information found on job flag pages, file flag pages, job trailer pages, and file trailer pages.

Table 2    Contents of File and Job Pages
Item Description
Header bar
A segmented bar composed of:

For a job flag page:
A single-segment bar composed of:
  • Rows of a repeated numeral indicating the sequence of the job in the queue.


  • An embedded text string specified by defining the PSM$ANNOUNCE system logical name. The length of the string is limited to one form width. If PSM$ANNOUNCE is not defined, the default text string is "Compaq Computer Corporation" followed by the system version number. (Use "Compaq" for shorter form width.)


For a file flag page:
A three-segment bar composed of:
  • A central segment identical to the job flag page.


  • Flanking segments with rows of a repeated character indicating the sequence of the file in the job.


For a job trailer page:
A three-segment bar composed of:
  • A central segment with "END OF JOB" banner.


  • Flanking segments with job sequence numeral.


For a file trailer page:
A five-segment bar composed of the following elements:
  • Central segment with "END OF FILE" banner.


  • Inner flanking segments with job sequence numeral.


  • Outer flanking segments with file sequence character.

Note
A user-specified string of up to 255 characters using the PRINT/NOTE command.
Identification banner
Includes the user name of the process submitting the job, the job name, and the job number.
Qualifier phrase (file trailer page only)
Indicates the print, queue, and form qualifiers active when the job was submitted; nonactive qualifiers (except /NORECORD_BLOCKING and /NOFEED) are not included.
File sentence (file flag and file trailer pages only)
Indicates the following information:
  • Full file specification, including device and directory, file name, type, version, and revision date and time


  • File size in blocks


  • File organization


  • File owner's UIC


  • File record characteristics: record type, carriage control, and the size of longest record

Receipt box (job trailer page only)
Contains the following signoff fields: Received:, Date:, and Operator:.
Job sentence
Indicates the following information:
  • Job name and number


  • Name of queue to which job was submitted


  • Submission date and time


  • Process user name, UIC, and account


  • Job scheduling priority


  • Print device name


  • Job start time


  • Execution queue name

Footer bar
A segmented bar composed of:

For a job flag page:
Identical to the job flag header bar except the definition of the system logical name (PSM$ANNOUNCE) is not used as the embedded string. The default text is always used as the embedded string.

For a file flag page:
Identical to the file flag header bar except that the embedded text string is "Compaq Computer Corporation" followed by the operating system version number.

For a job trailer page:
Identical to the job flag header bar except the definition of the system logical name (PSM$ANNOUNCE) is not used as the embedded string.

For a file trailer page:
Identical to the file flag header bar except that the embedded text string is "Compaq Computer Corporation" followed by the operating system version number.
Ruler (file trailer and job trailer pages only)
A sequence of numbers counting to the end of the form.

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  
Determining Job Retention

 

Figure 12  File Flag and Burst Pages  
File Flag and Burst Pages

 

Figure 13  File and Job Trailer Pages  
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.


NoteAll 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.

Commands for Specifying Banner Pages

Use the following commands when working with banner pages:

Command Description
INITIALIZE/QUEUE/SEPARATE=option

START/QUEUE/SEPARATE=option

SET QUEUE/SEPARATE=option
Specifies one or more of the following job banner page options:
  • [NO]BURST


  • [NO]FLAG


  • [NO]TRAILER


Users cannot override the job banner pages you specify for a queue.
INITIALIZE/QUEUE/DEFAULT=option=keyword

START/QUEUE/DEFAULT=option=keyword

SET QUEUE/DEFAULT=option=keyword
Specifies one or more of the following file banner page options:
  • [NO]BURST


  • [NO]FLAG


  • [NO]TRAILER


Keyword can be either ALL or ONE.

Users can override the file banner page settings you specify for a queue by specifying the /BURST, /FLAG, and /TRAILER qualifiers with the PRINT command.
PRINT/BURST[=keyword]
Specifies the ALL or ONE keyword to override, for the job, the file burst pages specified for the queue.
PRINT/FLAG[=keyword]
Specifies the ALL or ONE keyword to override, for the job, the file flag pages specified for the queue.
PRINT/TRAILER[=keyword]
Specifies the ALL or ONE keyword to override, for the job, the file trailer pages specified for the queue.

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:

Mounting 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.)

Commands for Specifying Forms

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.

Example

$ 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.

Example

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]

Example

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

NoteOnce 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:

  1. Enter the DEFINE/FORM command in the following format:DEFINE/FORM form-name form-number [/qualifiers]
  2. Assign a default form for each output execution queue. Use the /DEFAULT=FORM=type qualifier with INITIALIZE/QUEUE, START/QUEUE, or SET QUEUE, as explained in Assigning a Default Form for a Queue.

    If you do not assign a default form to a queue, the queue uses the systemwide default form.
  3. Inform users of the available forms and the queues with which they should be used. You can, if you like, create symbols to automatically include the form with the PRINT command; for example:
    $ PRINT_REPORT :== PRINT/FORM=REPORT

When you create a form, you can specify any of the qualifiers shown in DEFINE/FORM Qualifiers.

Table 3   DEFINE/FORM Qualifiers
Qualifier Purpose
/WIDTH=n
Specifies the width of the paper in characters.
/LENGTH=n
Specifies the length of a form page in lines.
/[NO]TRUNCATE
Discards characters exceeding the line length specified by /WIDTH and /MARGIN.
/[NO]WRAP
Wraps to the next line the characters exceeding the line length specified by /WIDTH and /MARGIN.
/MARGIN=(option=n[,...])
Specifies the number of blank spaces for one or more of the four margin options: BOTTOM, LEFT, RIGHT, and TOP.
/[NO]PAGE_SETUP=(module[,...])
Specifies one or more device control modules that set up a device at the start of each page.
/SETUP=(module[,...])
Specifies one or more device control modules that set up the device at the start of each file.
/[NO]SHEET_FEED
Specifies that print jobs pause at the end of every physical page so that a new sheet of paper can be inserted.
/STOCK=string
Specifies the type of paper stock to be associated with the form.
/DESCRIPTION=string
Specifies a string used to provide information about the form.

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.


NoteIf 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 .

Example

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.


NoteThe 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.

If you do not establish a default form for a queue, the queue uses the systemwide default form, DEFAULT.

Example

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:

$ DELETE/FORM MEMO
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.

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 deletion
You 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.

Line 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.


NoteThe 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.

Different forms can have different right, left, top, and bottom margin settings. By using forms to control page and line overflow, users can switch from one form to another without requiring operators to stop the queue, alter the device setup, and restart the queue. The queue manager automatically mounts any forms with the same stock as the currently mounted form. Operator assistance is needed only to mount a form that has a stock that differs from the stock of the currently mounted form. For more information, see Fixing Print Jobs That Are Pending Due to Stock Mismatch.

To control line overflow, create forms using DEFINE/FORM with the /[NO]TRUNCATE and /[NO]WRAP qualifiers described in DEFINE/FORM Qualifiers.

Page Overflow

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:

Module Type Placement
Setup
Inserted at the beginning of a file.
Page setup
Inserted at the beginning of each page.
Reset
Inserted at the end of each job. Use reset modules to reset a printer to a known state at the end of a job.

How to Perform This Task

To use device control library options, perform the following steps:

  1. Create a library and insert modules.
  2. Assign the device control library to a queue. (This step is not necessary if you use the default library name SYSDEVCTL.TLB.)
  3. Create one or more forms with setup or page setup modules.
  4. Assign reset modules to a queue.

Commands for Processing Print Jobs

You can use the following commands to set up device control library modules for processing print jobs:

Command Description
DEFINE/FORM/SETUP
Specifies one or more modules that set up the device at the start of each file of a job.
DEFINE/FORM/[NO]PAGE_SETUP
Specifies one or more modules that set up the device at the start of each page of a job.
INITIALIZE/QUEUE/LIBRARY

START/QUEUE/LIBRARY
Specifies the file name of the device control library.
INITIALIZE/QUEUE/SEPARATE=[NO]RESET

START/QUEUE/SEPARATE=[NO]RESET

SET QUEUE/SEPARATE=[NO]RESET
Specifies one or more device control library modules that contain the job reset sequence for the queue.
PRINT/FORM
Specifies the name or number of the form to be associated with the print job.

Understanding the Order of Device Control Module Output  

Device control modules are sent to the printer within a print job in the following order:

  1. Reset modules assigned to the queue. (Reset modules are only used at this point for the first job printed after a queue is started.)
  2. Setup modules specified in the form definition.
  3. Page setup modules specified in the form definition.
  4. Setup modules specified with the PRINT command.
  5. Page 1 of file 1.
  6. Page setup modules specified in the form definition.
  7. Page 2 of file 1, and so forth.
  8. Page setup modules specified in the form definition.
  9. Last page of file 1.
  10. Setup modules specified in the form definition.
  11. Page setup modules specified in the form definition.
  12. Setup modules specified with the PRINT command.
  13. Page 1 of file 2.
  14. Page setup modules specified in the form definition.
  15. Page 2 of file 2, and so forth.
  16. Page setup modules specified in the form definition.
  17. Last page of file 2.
  18. Reset modules assigned to the queue.

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:

  1. Create a device control library by entering a command in the following format:LIBRARY/CREATE/TEXT SYS$COMMON:[SYSLIB] filename.TLB
  2. Determine the contents of the module---either the text to be inserted or the escape sequences needed for the printer setup you want. To determine the proper escape sequences for a printer option, refer to the operation guide for the specific printer.
  3. Create a module file and enter the appropriate escape sequences, carriage control characters, or text. Create and edit a module file as you would any other text file. Make sure your text editor does not insert a carriage return or line feed at the end of your file. This will affect your printer output.
  4. Insert the module into the device control library by entering a command in the following format:LIBRARY/INSERT/TEXT library-file module-file

NoteTo add a module to or delete it from a library, you must stop all output queues assigned to that library.

Refer to the OpenVMS Command Definition, Librarian, and Message Utilities Manual for more information about creating libraries and inserting modules.

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

NoteIf 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.

Operations that request a particular device control library module use the module from the library specified for the queue. Guidelines for using libraries follow:

Example

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.

Examples

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.

$ INITIALIZE/QUEUE/LIBRARY=MYDEVCTL/SEPARATE=RESET=MODULE2 PDQ_QUE
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.
$ 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

go to previous page: Restarting Execution Queues on Reboot Restarting Execution Queues on Reboot
go to next page: Maintaining QueuesMaintaining Queues