|
OpenVMS DCL Dictionary
In this example, the F$GETQUI lexical function is used to obtain the
size in blocks of print job 1347. The value returned reflects the total
number of blocks occupied by the files associated with the job.
#2 |
$ IF F$GETQUI("DISPLAY_QUEUE", "QUEUE_STOPPED", "VAX1_BATCH") .EQS.
"TRUE" THEN GOTO 500
|
In this example, the F$GETQUI lexical function is used to return a
value of TRUE or FALSE depending on whether the queue VAX1_BATCH is in
a stopped state. If VAX1_BATCH is not in the system, F$GETQUI returns a
null string ("").
#3 |
! This command procedure shows all queues and the jobs in them.
$ TEMP = F$GETQUI("")
$ QLOOP:
$ QNAME = F$GETQUI("DISPLAY_QUEUE","QUEUE_NAME","*")
$ IF QNAME .EQS. "" THEN EXIT
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "QUEUE: ", QNAME
$ JLOOP:
$ NOACCESS = F$GETQUI("DISPLAY_JOB","JOB_INACCESSIBLE",,"ALL_JOBS")
$ IF NOACCESS .EQS. "TRUE" THEN GOTO JLOOP
$ IF NOACCESS .EQS. "" THEN GOTO QLOOP
$ JNAME = F$GETQUI("DISPLAY_JOB","JOB_NAME",,"FREEZE_CONTEXT")
$ WRITE SYS$OUTPUT " JOB: ", JNAME
$ GOTO JLOOP
|
This sample command procedure displays all the queues in the system and
all the jobs to which the user has read access in the system. In the
outer loop a wildcard display queue operation is performed. No call is
made to establish the right to obtain information about the queue,
because all users have implicit read access to queue attributes.
Because a wildcard queue name is specified ("*"), wildcard
queue context is maintained across calls to F$GETQUI.
In the inner loop, to obtain information about all jobs, we enter
nested wildcard mode from wildcard display queue mode. In this loop, a
call is made to establish the right to obtain information about these
jobs because users do not have implicit read access to jobs. The
FREEZE_CONTEXT keyword is used in the request for a job name to prevent
the advance of the wildcard context to the next object. After the job
name has been retrieved and displayed, the procedure loops back up for
the next job. The context is advanced because the procedure has not
used the FREEZE_CONTEXT keyword. The wildcard queue context is
dissolved when the list of matching queues is exhausted. Finally,
F$GETQUI returns a null string ("") to denote that no more objects
match the specified search criteria.
#4 |
$ THIS_NODE = F$EDIT(F$GETSYI("SCSNODE"),"COLLAPSE")
$ TEMP = F$GETQUI("CANCEL_OPERATION")
$ SET NOON
$LOOP:
$ QUEUE = F$GETQUI("DISPLAY_QUEUE","QUEUE_NAME","*","WILDCARD")
$ IF QUEUE .EQS. "" THEN GOTO ENDLOOP
$ IF THIS_NODE .EQS.-
F$GETQUI("DISPLAY_QUEUE","SCSNODE_NAME","*","WILDCARD,FREEZE_CONTEXT")
$ THEN
$ IF .NOT.-
F$GETQUI("DISPLAY_QUEUE","QUEUE_AUTOSTART","*","WILDCARD,FREEZE_CONTEXT")-
THEN START/QUEUE 'QUEUE'
$ ENDIF
$ GOTO LOOP
$ENDLOOP:
$ SET ON
|
This command procedure looks at all queues associated with the local
cluster node and starts any queue that is not marked as autostart.
The procedure starts by obtaining the nodename of the local system and
clearing the F$GETQUI context. In addition, error handling is turned
off for the loop so that, if a queue had been started previously, the
resulting error from the START QUEUE command does not abort the command
procedure.
Inside the loop, the F$GETQUI function gets the next queue name in the
queue list. If the result is empty, then it has reached the end of the
list and it exits the loop.
The next IF statement checks to see if the queue runs on the local
node. If it does, then the next statement checks to see if the queue is
marked as an autostart queue. If that is false, then the queue is
started with the start command. The loop is then repeated.
The final command of the procedure restores DCL error handling to the
previous setting.
F$GETSYI
Returns status and identification information about the local system
(or about a node in the local dual-architecture OpenVMS Cluster system,
if your system is part of an OpenVMS Cluster).
Format
F$GETSYI (item [,node-name] [,cluster-id])
Return Value
Either an integer or a character string, depending on the item you
request.
Arguments
item
Indicates the type of information to be reported about the local node
(or about another node in your OpenVMS Cluster, if your system is part
of an OpenVMS Cluster). Specify the item as a character string
expression.
You can also specify any of the system parameters listed in the
OpenVMS System Management Utilities Reference Manual.
node-name
Specifies the node in your OpenVMS Cluster system for which information
is to be returned. Specify the node as a character string expression.
You cannot use the asterisk (*) and the percent sign (%) wildcard
characters to specify the node-name argument.
cluster-id
Specifies the cluster node identification number for which the
information is to be returned.
To get information for all the nodes in a cluster, use the F$CSID
lexical function to obtain each cluster system identification number,
and use the cluster-id argument of F$GETSYI to gather
information about each node.
Description
The F$GETSYI lexical function invokes the $GETSYI system service to
return status and identification information about the local system (or
about a node in the local OpenVMS Cluster, if your system is part of a
cluster). The F$GETSYI function returns information on the items that
can be specified with the $GETSYI system service. For more information
about the $GETSYI system service, refer to the OpenVMS System Services Reference Manual.
You can specify the node for which you want information by supplying
either the node-name or the
cluster-id argument, but not both.
Table DCLI-10 lists the items you can specify with the F$GETSYI lexical
function.
Table DCLI-10 F$GETSYI Items
Item |
Return Type |
Information Returned |
ACTIVECPU_CNT
|
Integer
|
The count of CPUs actively participating in the current boot of a
symmetric multiprocessing (SMP) system.
|
ARCHFLAG
|
String
|
Architecture flags for the system.
|
ARCH_NAME
|
String
|
Name of CPU architecture; Alpha for OpenVMS Alpha, VAX for OpenVMS VAX.
|
ARCH_TYPE
|
Integer
|
Type of CPU architecture; 1 for VAX, 2 for Alpha.
|
AVAILCPU_CNT
|
Integer
|
The count of CPUs recognized in the system.
|
BOOTTIME
|
String
|
The time the system was booted.
|
CHARACTER_EMULATED
|
String
|
TRUE or FALSE to indicate whether the character string instructions are
emulated on the CPU.
|
++CONSOLE_VERSION
|
String
|
Console firmware version.
|
CONTIG_GBLPAGES
|
Integer
|
Total number of free, contiguous global pages.
|
CLUSTER_EVOTES
|
Integer
|
Total number of votes in the cluster.
|
CLUSTER_FSYSID
|
String
|
System identification number for first node to boot in the cluster (the
founding node). This number is returned as a character string
containing a hexadecimal number.
|
CLUSTER_FTIME
|
String
|
The time when the first node in the cluster was booted.
|
CLUSTER_MEMBER
|
String
|
TRUE or FALSE if the node is a member of the local cluster.
|
CLUSTER_NODES
|
Integer
|
Total number of nodes in the cluster, as an integer.
|
CLUSTER_QUORUM
|
Integer
|
Total quorum for the cluster.
|
CLUSTER_VOTES
|
Integer
|
Total number of votes in the cluster.
|
+CPU
|
Integer
|
On VAX, the processor type, as represented in the processor's system
identification (SID) register. For example, the integer 1 represents a
VAX-11/780 and the integer 6 represents a VAX 8530, VAX 8550, VAX 8700,
or VAX 8800.
|
++CPUTYPE
|
Integer
|
On Alpha, the processor type, as stored in the hardware restart
parameter block (HWRPB). The value of 2 represents a DECchip 21064
processor.
|
CWLOGICALS
|
Boolean
|
Flag indicating that the clusterwide logical name database has been
initialized on the CPU.
|
DECIMAL_EMULATED
|
String
|
TRUE or FALSE to indicate whether the decimal string instructions are
emulated on the CPU.
|
DECNET_FULLNAME
|
String
|
The node name of a DECnet Phase IV system or the node full name of a
DECnet/OSI system.
|
DECNET_VERSION
|
String
|
Returns information on the particular version and ECO level of the
DECnet package installed on the local system. This item returns a
string containing a hexidecimal number, using the following format:
- Byte 0 = Customer ECO
- Byte 1 = DECnet ECO
- Byte 2 = DECnet phase (4 for Phase IV, 5 for DECnet-Plus for
OpenVMS)
- Byte 3 = Reserved
To distinguish Phase IV from DECnet-Plus for OpenVMS, use the byte
containing the DECnet version (byte 2).
|
D_FLOAT_EMULATED
|
String
|
TRUE or FALSE to indicate whether the D_floating instructions are
emulated on the CPU.
|
ERRORLOGBUFFERS
|
Integer
|
Number of system pages (on VAX) or pagelets (on Alpha) to be used as
errorlog buffers.
|
F_FLOAT_EMULATED
|
String
|
TRUE or FALSE to indicate whether the F_floating instructions are
emulated on the CPU.
|
FREE_GBLPAGES
|
Integer
|
Current count of free global pages.
|
FREE_GBLSECTS
|
Integer
|
Current count of free global section table entries.
|
G_FLOAT_EMULATED
|
String
|
TRUE or FALSE to indicate whether the G_floating instructions are
emulated on the CPU.
|
++GH_RSRVPGCNT
|
Integer
|
On Alpha, number of pages covered by granularity hints to reserve for
use by the INSTALL utility after system startup has completed.
|
HW_MODEL
|
Integer
|
An integer that identifies the node's Alpha or VAX model type. An
integer greater than 1023 represents the Alpha operating system and an
integer less than or equal to 1023 represents the VAX operating system.
|
HW_NAME
|
String
|
The Alpha or VAX model name.
|
++ITB_ENTRIES
|
Integer
|
On Alpha, number of I-stream translation buffer entries that support
granularity hints to be allocated for resident code.
|
MEMSIZE
|
Integer
|
Number of pages of memory in the system configuration.
|
MULTITHREAD
|
Integer
|
Value of the MULTITHREAD system parameter.
|
NODENAME
|
String
|
Node name (does not include the following double colon).
|
NODE_AREA
|
Integer
|
The DECnet area for the target node.
|
NODE_CSID
|
String
|
The CSID of the specified node, as a string containing a hexadecimal
number. The CSID is a form of system identification.
|
NODE_EVOTES
|
Integer
|
Number of votes allotted to the node.
|
NODE_HWVERS
|
String
|
Hardware version of the specified node.
|
NODE_NUMBER
|
Integer
|
The DECnet number for the specified node.
|
NODE_QUORUM
|
Integer
|
Quorum that the node has.
|
NODE_SWINCARN
|
String
|
Software incarnation number for the specified node. This number is
returned as a string containing a hexadecimal number.
|
NODE_SWTYPE
|
String
|
Type of operating system software used by the specified node.
|
NODE_SWVERS
|
String
|
Software version of the specified node.
|
NODE_SYSTEMID
|
String
|
System identification number for the specified node. This number is
returned as a string containing a hexadecimal number.
|
NODE_VOTES
|
Integer
|
Number of votes allotted to the node.
|
PAGEFILE_FREE
|
Integer
|
Number of free pages in the currently installed paging files.
|
PAGEFILE_PAGE
|
Integer
|
Number of pages in the currently installed paging files.
|
PAGE_SIZE
|
Integer
|
Indicates the number of bytes in a physical page.
|
++PALCODE_VERSION
|
String
|
Version of the PALCODE (privileged architectural library) on your Alpha
system.
|
QUANTUM
|
Integer
|
Maximum amount of processor time a process can receive while other
processes are waiting.
|
++RAD_CPUS
|
Integer
|
Returns list of RAD,CPU pairs, separated by commas. Resource affinity
domains (RADs) are supported only on AlphaServer GS160 systems.
|
++RAD_MEMSIZE
|
Integer
|
Returns list of RAD,PAGES pairs, separated by commas. Supported only on
AlphaServer GS160 systems.
|
++RAD_MAX_RADS
|
Integer
|
Returns the maximum number of RADS possible on this platform. Supported
only on AlphaServer GS160 systems, and the value is always 8 (regardless of
number of quad building blocks (QBBs) physically present).
|
++RAD_SHMEMSIZE
|
Integer
|
Returns list of RAD,PAGES pairs, separated by commas. Supported only on
AlphaServer GS160 systems.
|
++REAL_CPUTYPE
|
String
|
The actual CPU type of the primary CPU of the system.
|
SCS_EXISTS
|
String
|
TRUE or FALSE to indicate whether the system communication subsystem
(SCS) is currently loaded on a VAX node.
|
SID
|
Integer
|
System identification register. On Alpha, returns a value where all
fields are zero except the CPU type field, which always contains the
value of 256.
|
SWAPFILE_FREE
|
Integer
|
Number of free pages in the currently installed swapping files.
|
SWAPFILE_PAGE
|
Integer
|
Number of pages in the currently installed swapping files.
|
SYSTEM_RIGHTS
|
String
|
The contents of the system rights list on the local system. If you
specify a remote system, a null string ("") is returned. This item
returns a list of identifier names separated by commas (,).
|
++SYSTYPE
|
Integer
|
On Alpha, the family or system hardware platform. For example, the
integer 2 represents a DEC 4000, the integer 3 represents a DEC 7000 or
DEC 10000, and the integer 4 represents a DEC 3000.
|
USED_GBLPAGCNT
|
Integer
|
Number of pages currently in use in the global page table.
|
USED_GBLPAGMAX
|
Integer
|
Maximum number of pages ever in use in the global page table.
|
VECTOR_EMULATOR
|
Boolean
|
Flag indicating the presence of the VAX vector instruction emulator
facility (VVIEF) in the system.
|
VERSION
|
String
|
Version of OpenVMS in use (8-character string filled with trailing
blanks).
|
VP_MASK
|
Integer
|
Mask indicating which processors in the system have vector coprocessors.
|
VP_NUMBER
|
Integer
|
Number of vector processors in the system.
|
+VAX specific.
++Alpha specific.
Examples
#1 |
$ SYSID = F$GETSYI("SID")
$ SHOW SYMBOL SYSID
SYSID = 19923201 Hex = 01300101 Octal = 000401
|
This example shows how to use the F$GETSYI function to return the
information in the system identification register. Use quotation marks
(" ") around the argument SID because it is a string literal.
The value returned by F$GETSYI is assigned to the symbol SYSID. Because
a node is not specified, information about your current node is
returned.
#2 |
$ MEM = F$GETSYI("CLUSTER_MEMBER", "LONDON")
$ SHOW SYMBOL MEM
MEM = "TRUE"
|
This example uses the F$GETSYI function to determine whether the node
LONDON is a member of the local cluster. The return value TRUE
indicates that the remote node LONDON is a member of the cluster.
#3 |
$ LIM = F$GETSYI("BJOBLIM")
$ SHOW SYMBOL LIM
LIM = 16 Hex = 00000010 Octal = 00000000020
|
This example uses the system parameter BJOBLIM as an argument for the
F$GETSYI function. This argument returns the batch job limit for the
current system.
#4 |
$ DECNETVERS = F$GETSYI("DECNET_VERSION")
$ SHOW SYMBOL DECNETVERS
DECNETVERS = "00050D01"
$ DECNETPHASE = F$INTEGER(F$EXTRACT(2,2,DECNETVERS))
$ SHOW SYMBOL DECNETPHASE
DECNETPHASE = 5 Hex = 00000005 Octal = 00000000005
|
This example shows how to use F$GETSYI to return the DECnet version,
using the DECNET_VERSION item.
#5 |
$ RADCPU = F$GETSYI("RAD_CPUS")
$ SHOW SYMBOL RADCPU
0,0,0,1,1,4,1,5
|
This example uses the system parameter RAD_CPUS as an argument for the
F$GETSYI function. This argument returns a list of RAD,CPU pairs,
separated by commas. In this example, the first RAD,CPU pair is 0,0,
the second pair is 0,1, and so forth.
This parameter is supported only on AlphaServer GS160 systems.
F$IDENTIFIER
Converts an alphanumeric identifier to its integer equivalent, or
converts an integer identifier to its alphanumeric equivalent. An
identifier is a name or number that identifies a category of users. The
system uses identifiers to determine a user's access to a resource.
Format
F$IDENTIFIER (identifier,conversion-type)
Return Value
An integer value if you are converting an identifier from a name to an
integer. The F$IDENTIFIER function returns a string if you are
converting an identifier from an integer to a name. If you specify an
identifier that is not valid, the F$IDENTIFIER function returns a null
string ("") (if you are converting from number to name) or a zero (if
you are converting from name to number).
Arguments
identifier
Specifies the identifier to be converted. Specify the identifier as an
integer expression if you are converting an integer to a name. Specify
the identifier as a character string expression if you are converting a
name to an integer.
Any identifier holding the Name Hidden attribute will cause the
F$IDENTIFIER to return an error when you do not hold the identifier in
question or do not have access to the rights database. For further
information on the attribute, refer to the OpenVMS Guide to System Security.
conversion-type
Indicates the type of conversion to be performed. If the
identifier argument is alphanumeric, specify the
conversion-type argument as a character string
containing "NAME_TO_NUMBER". If the
identifier argument is numeric, specify the
conversion-type argument as a character string
containing "NUMBER_TO_NAME".
Examples
#1 |
$ UIC_INT= F$IDENTIFIER("SLOANE","NAME_TO_NUMBER")
$ SHOW SYMBOL UIC_INT
UIC_INT = 15728665 Hex = 00F00019 Octal = 00074000031
$ UIC = F$FAO("!%U",UIC_INT)
$ SHOW SYMBOL UIC
UIC = [360,031]
|
This example uses the F$IDENTIFIER to convert the member identifier
from the UIC [MANAGERS,SLOANE] to an integer. The F$IDENTIFIER function
shows that the member identifier SLOANE is equivalent to the integer
15728665. Note that you must specify the identifier SLOANE using
uppercase letters.
To convert this octal number to a standard numeric user identification
code (UIC), use the F$FAO function with the !%U directive. (This
directive converts a longword to a UIC in named format.) In this
example, the member identifier SLOANE is equivalent to the numeric UIC
[360,031].
#2 |
$ UIC_INT = (%O31 + (%X10000 * %O360))
$ UIC_NAME = F$IDENTIFIER(UIC_INT,"NUMBER_TO_NAME")
$ SHOW SYMBOL UIC_NAME
UIC_NAME = "ODONNELL"
|
This example obtains the alphanumeric identifier associated with the
numeric UIC [360,031]. First, you must obtain the longword integer that
corresponds to the UIC [360,031]. To do this, place the member number
into the low-order word. Place the group number into the high-order
word. Next, use the F$IDENTIFIER function to return the named
identifier associated with the integer.
|