DSM Template Services Manual Abstract This manual describes DSM Template Services, which supports the representation of SPI buffers in display text. The major components of Template Services are the Template Compiler, Template Installation Program, Template Language, and several systems procedures. This manual is intended for systems programmers and operations personnel. Product Version DSM Template Services D40 Supported Release Version Updates (RVUs) This manual supports D30.
Document History Part Number Product Version Published 421920-001 DSM Template Services D40 May 1999 425221-001 DSM Template Services D40 February 2000 427187-001 DSM Template Services D40 February 2001 427187-003 DSM Template Services D40 August 2002 427187-004 DSM Template Services D40 February 2005
DSM Template Services Manual Index Examples What’s New in This Manual vii Manual Information vii New and Changed Information Figures Tables vii About This Manual ix Template Services Components in This Manual Utilities Discussed in Other Manuals ix Other Useful Documentation x Audience x Manual Organization x Notation Conventions xi ix 1.
2. Display-Text Procedures Contents 2. Display-Text Procedures SPI_BUFFER_FORMAT Procedures 2-1 SPI_BUFFER_FORMATSTART_ 2-2 SPI_BUFFER_FORMATNEXT_ 2-6 SPI_BUFFER_FORMATFINISH_ 2-16 Status Information 2-17 Supplementary Status Values 2-18 Custom-Formatting Procedures 2-19 Naming Custom-Formatting Procedures 2-22 Context Area 2-22 Example 2-23 Procedures That Convert Variable-Length Tokens SPI_FORMAT_CLOSE_ 2-26 2-24 3.
4.
. Installing Templates Contents VERSION Command 5-6 OBEY Command 5-6 EXIT Command 5-7 HELP Command 5-8 FC Command 5-8 How TEMPLI Merges Template Files 5-9 Check for Duplicate Template Keys 5-9 Preserving Abbreviated Subsystem ID Specifications 5-9 Check for Duplicate Abbreviated Subsystem IDs 5-9 Merging Template Object Files With Nonresident Template Files Example: Merging Two Simple Template Object Files 5-10 5-9 6.
C. TEMPLI Errors and Warnings Contents TEMPL Errors and Warnings B-2 C. TEMPLI Errors and Warnings TEMPLI Errors and Warnings C-2 Index Examples Example 2-1. Example 2-2. Example 2-3. Example 2-4. Example 3-1. Example 3-3. Example 3-4. Example 3-2. Example 3-5. Example 3-6. Example 3-7. Example 3-8. Example 3-9. Example 3-10. Example 3-11. Example 3-12. Example 3-13. Example 3-14. Example 6-1.
Tables Contents Figure 6-2. Figure 6-3. Figure 6-4. Sharing Templates When a Central Node Handles Events for All Distributed Nodes 6-7 Sharing Templates When Distributed Nodes Handle Events for Every Other Node 6-11 Sharing Templates When Several Central Nodes Handle Events for Distributed Nodes 6-13 Tables Table 1-1. Table 1-2. Table 2-1. Table 2-2. Table 2-3. Table 2-4. Table 2-5. Table 2-6. Table 2-7. Table 2-8. Table 3-1. Table 3-2. Table 3-3. Table 3-4.
What’s New in This Manual Manual Information DSM Template Services Manual Abstract This manual describes DSM Template Services, which supports the representation of SPI buffers in display text. The major components of Template Services are the Template Compiler, Template Installation Program, Template Language, and several systems procedures. This manual is intended for systems programmers and operations personnel.
New and Changed Information What’s New in This Manual DSM Template Services Manual—427187-004 viii
About This Manual This manual describes DSM Template Services, which consists of several utilities that let you display tokenized messages as text, either as token listings or operator messages. Template Services is an integral part of the services provided by Distributed Systems Management (DSM). DSM is based on the Subsystem Programmatic Interface (SPI). Template Services lets you list the tokens and token values in an SPI command, response, or event message, which is useful for debugging applications.
Other Useful Documentation About This Manual Other Useful Documentation These documents also contain information that you might find useful: • • Distributed Systems Management (DSM) Manual Guardian Procedure Errors and Messages Manual Audience This manual is for system programmers, system managers, and operations personnel.
Notation Conventions About This Manual Section/Appendix Describes Section 5, Template Installation Program How to use the Template Installation Program to merge template object files to produce template files that can be installed on a system. Section 6, Installing Templates Task-oriented procedures for installing templates on one or more systems. Discusses the DDL compiler, Template Compiler, Template Installation Program, and SYSGENR and SCF utilities.
General Syntax Notation About This Manual italic computer type. Italic computer type letters within text indicate C and Open System Services (OSS) variable items that you supply. Items not enclosed in brackets are required. For example: pathname [ ] Brackets. Brackets enclose optional syntax items. For example: TERM [\system-name.]$terminal-name INT[ERRUPTS] A group of items enclosed in brackets is a list from which you can choose one item or none.
Notation for Messages About This Manual Quotation marks around a symbol such as a bracket or brace indicate the symbol is a required character that you must enter as shown. For example: "[" repetition-constant-list "]" Item Spacing. Spaces shown between items are required unless one of the items is a punctuation symbol such as a parenthesis or a comma. For example: CALL STEPMOM ( process-id ) ; If there is no space between two items, spaces are not permitted.
Notation for Messages About This Manual Bold Text. Bold text in an example indicates user input entered at the terminal. For example: ENTER RUN CODE ?123 CODE RECEIVED: 123.00 The user must press the Return key after typing the input. Nonitalic text. Nonitalic letters, numbers, and punctuation indicate text that is displayed or returned exactly as shown. For example: Backup Up. lowercase italic letters. Lowercase italic letters indicate variable items whose values are displayed or returned.
Notation for Management Programming Interfaces About This Manual % Percent Sign. A percent sign precedes a number that is not in decimal notation. The % notation precedes an octal number. The %B notation precedes a binary number. The %H notation precedes a hexadecimal number. For example: %005400 P=%p-register E=%e-register Notation for Management Programming Interfaces UPPERCASE LETTERS. Uppercase letters indicate names from definition files; enter these names exactly as shown.
Change Bar Notation About This Manual DSM Template Services Manual— 427187-004 xvi
1 Introduction Topic Page What Is DSM Template Services? 1-1 When Do You Need Template Services? 1-2 Components of Template Services 1-4 How the Components Fit Together: Creating, Compiling, Installing, and Using Templates 1-10 How Template Services Handles ZEMS-TKN-TEXT Tokens 1-13 What Is DSM Template Services? DSM Template Services consists of a variety of utilities that enable you to display tokenized messages as text, either as operator messages or token listings.
When Do You Need Template Services? Introduction Most SPI messages are in a form that is efficiently interpreted by computers. That is, separate pieces of information are packaged as tokens that together make up the entire message. In order to put the tokenized messages in a form that people can read easily, you need Template Services. Template Services lets you specify how you want information displayed.
When Do You Need Template Services? Introduction If you are writing a management application, you can use the EMSTEXT procedure to display EMS event messages as operator messages. EMSTEXT uses a format template to determine how to format the information in an EMS event message. You can then display, print, or store the text that EMSTEXT generates. ViewPoint, printing distributors, and compatibility procedures call EMSTEXT.
Components of Template Services Introduction Table 1-1. Common Tasks Performed Using Template Services Use Template Services procedure? Task Modify DDL definition file? Create template? Developing operator messages to be used when particular EMS event messages are received Yes (for new tokens or enumerations) Format template N.A. Generating operator messages for EMS event messages that have been received N.A. N.A. EMSTEXT procedure Listing the tokens in event, command, or response messages N.
Procedures Introduction Procedures You can use these Template Services procedures in applications. EMSTEXT Procedure The EMSTEXT procedure structures information in an EMS event message according to the message’s format template, returning a text version of the message in a buffer. A format template consists of fixed text with places where token values can appear within the text—producing an operator message. EMSTEXT is used by printing distributors, compatibility distributors, and ViewPoint.
Templates and Template Files Introduction When you set =_EMS_TEMPLATES DEFINE while processes are running, several variables determine whether the process uses the new template file. As a result, you should consult one or more of the listed documents to learn how DEFINE procedures operate. SSIDTOTEXT and TEXTTOSSID Procedures SSIDTOTEXT converts the internal form of a subsystem ID to text. This is useful if an application needs to display a subsystem ID.
Templates and Template Files Introduction To create templates, use the Template Language and DDL. For a description of the Template Language, see Section 3, Template Language. For a description of DDL, see the Data Definition Language Reference Manual and Appendix A, Template-Related DDL Clauses, which briefly describes DDL clauses that can influence the display of a message. Table 1-2.
DDL Compiler Introduction Resident and Nonresident Template Files The Template Installation Program (TEMPLI) prepares the template object files to be installed on a system. TEMPLI merges template object files, producing a resident and a nonresident template file. A resident template file is a disk file whose templates reside within the operating system image (OSIMAGE) when the template file is in use.
=_EMS_TEMPLATES DEFINE Introduction SYSGENR automatically runs TEMPLI, but SCF does not. For more information, see the System Generation Manual for G-Series RVUs and the SCF Reference Manual for the Kernel Subsystem. Using SYSGENR to install templates and SCF to alter or replace templates is described in Section 6, Installing Templates. Figure 1-3.
How the Components Fit Together: Creating, Compiling, Installing, and Using Templates Introduction nonresident template file, processes newly started from that environment use this template file instead of the default resident and nonresident template files. You can set and delete =_EMS_TEMPLATES DEFINE by using HP Tandem Advanced Command Language (TACL) DEFINE commands or DEFINE procedures.
Replacing Templates on a Running System (Using SCF) Introduction Figure 1-4. Creating Template Object Files Step 1. Build a DDL dictionary with the DDL compiler. DDL Compiler RUN command for DDL compiler, DDL commands DDL Dictionary for SPI for EMS for ABC ••• DDL Definition Files Step 2. Create a template object file with TEMPL. Template Compiler (TEMPL) Listing RUN command for TEMPL DDL Dictionary (from Step 1) Template Source File for ABC Template Object File for ABC VST004.
Replacing Templates on a Running System (Using COUP) Introduction 2. View the current EMS template file names (shown here in bold type) with an INFO command: -> ASSUME SUBSYS $ZZKRN -> INFO NONSTOP KERNEL - Info SUBSYS \EAST.$ZZKRN Current Settings *DAYLIGHT_SAVING_TIME ................ USA66 *NONRESIDENT_TEMPLATES................ $SYSTEM.SYSTEM.TEMPLATE *POWERFAIL_DELAY_TIME................. 30 *RESIDENT_TEMPLATES................... $SYSTEM.SYSTEM.RTMPLATE SUPER_SUPER_IS_UNDENIABLE............
Installing Templates by Using SYSGENR Introduction 2. Change the configuration using the ALTER command to specify different files for the resident and nonresident EMS templates. For example: 2)ALTER EMS^TEMPLATES (RESIDENT newresident, NONRESIDENT newnonres) where newresident is the name of the resident file to be installed and newnonres is the name of the nonresident file to be installed. 3.
How Template Services Handles ZEMS-TKN-TEXT Tokens Introduction If the EMSTEXT procedure encounters an event message without a format template, it checks for a TEXT token. If it finds a TEXT token, it uses the text string as the complete operator message. When the SPI_BUFFER_FORMATNEXT_ procedure creates display text for a TEXT token, it lists the label for the token and a colon (:) as usual and then follows it with a printout of the text string.
2 Display-Text Procedures The SPI_BUFFER_FORMAT procedures are three procedures that together produce display text. These procedures produce a token-by-token representation of an SPI buffer. The EMSTEXT procedure, another major display-text procedure, produces operator display text for event messages. For details, see the EMS Manual. EMSTEXT does not take a token-by-token approach. It uses a format template to guide display-text generation.
SPI_BUFFER_FORMATSTART_ Display-Text Procedures Use the SPI_BUFFER_FORMAT procedures in: • • Writing management or utility applications. For example, you could use these procedures to develop an application that lists all tokens from selected event messages on a log file. System products, such as Inspect and TMDS. When debugging an application, an Inspect user can ask to have an SPI buffer displayed.
SPI_BUFFER_FORMATSTART_ Display-Text Procedures -14 A Guardian procedure error; see status-1 and status-2 -15 Invalid template file; see status-1 and status-2 -27 No free format ID available format-ID INT .EXT:ref:1 points to a variable that receives a format ID, a code this procedure returns to identify its internal storage. numeric-format INT:value is one of these numeric codes: 0 Use decimal as a default. 2 Use binary as a default. 8 Use octal as a default. 10 Use decimal as a default.
SPI_BUFFER_FORMATSTART_ Display-Text Procedures type-override INT:value specifies the way the SPI_BUFFER_FORMATNEXT_ procedure is to treat tokens and fields: 0 Treat fields as they are declared—no override. 1 Treat all elementary fields as numeric. A numeric DDL DISPLAY attribute is honored unless numeric-format overrides it. (But an A DISPLAY attribute is ignored because it is unsuitable for numeric values.) 2 Treat all elementary fields as strings. An A DISPLAY attribute, “Aw”, is honored.
SPI_BUFFER_FORMATSTART_ Display-Text Procedures Zero From the HEADING or AS attribute if available; otherwise, from the DDL name of the token or field. Nonzero From the DDL name of the token or field. buffer-values-only INT:value indicates whether token values that SPI_BUFFER_FORMATNEXT_ is to represent come strictly from the SPI buffer or can be overridden by site-specified values: Zero Use override values when present. Nonzero Use only the actual values of tokens in the SPI buffer.
SPI_BUFFER_FORMATNEXT_ Display-Text Procedures Values of Length Parameters The values 20 and 10 for the token-label-len and field-label-len parameters are minimum values, not recommended values. Larger values provide the SPI_BUFFER_FORMATNEXT_ procedure with greater latitude to produce readable display text. SPI_BUFFER_FORMATNEXT_ The SPI_BUFFER_FORMATNEXT_ procedure represents an SPI message as display text. One procedure call can represent the entire SPI message if the text buffer is large enough.
SPI_BUFFER_FORMATNEXT_ Display-Text Procedures -12 Insufficient stack space -13 File-system error; see status-1 and status-2 -14 A Guardian procedure error; see status-1 and status-2 -15 Invalid template file; see status-1 and status-2 -16 text-buffer contains all the display text that will fit; call the procedure again for the rest (or for the next portion) -26 No scan ID available; report this to your HP representative format-ID INT:value is the value returned in the format-ID parameter of a
SPI_BUFFER_FORMATNEXT_ Display-Text Procedures status-2 INT .EXT:ref:1 supplements status on page 2-6. For a list of values, see Supplementary Status Values on page 2-18. Overall Procedure Logic SPI_BUFFER_FORMATNEXT_ treats the text buffer, which is size bytes long, as a series of fixed-length lines. Because the number of lines is given by the parameter n, each line is allotted m bytes, where m is size/n.
SPI_BUFFER_FORMATNEXT_ Display-Text Procedures General Appearance of a Simple Token Typically, each simple token is represented on a separate line. A column of colons (:) divides labels from values. Labels are on the left. Values are on the right.
SPI_BUFFER_FORMATNEXT_ Display-Text Procedures If the structure contains a group with an OCCURS clause, the group label and all items within it are repeated once for each occurrence of the group.
SPI_BUFFER_FORMATNEXT_ Display-Text Procedures Example 2-1. Appearance of EMS Event Message 520 (ZEMS-EVT-FILE-ROTATEPURGE Header Type: Checksum: Last Error: Last Error Tkncode: Max Field Version: SSID: Used Byte Length: Buffer Byte Length: Console Print: CPU: Crtpid: Emphasis: Event Number: Generation Timestamp: Logged Timestamp: PIN: Suppress Display: System Number: Userid: Subject Mark:* Collector: Purged Logfile:- 1 F 0 (0,0,0) 0 TANDEM.EMS.C20 118 1000 F 2 \NCN.02,094 F 520 1986-05-13 14:25:00.00 0.
SPI_BUFFER_FORMATNEXT_ Display-Text Procedures Table 2-1. DISPLAY-Clause Conversion Methods (page 2 of 2) DISPLAY Code Conversion Method Fill Character “Zw“ Integer to hexadecimal Leading spaces “Zw.m“ Integer to hexadecimal Leading zeros “Aw“ Character string Trailing spaces Many conversion methods are missing from Table 2-1. For instance, you cannot select file-name or timestamp conversions through a DISPLAY clause. (You can select these methods through other means.
SPI_BUFFER_FORMATNEXT_ Display-Text Procedures Table 2-2. Representation by Token Data Type Token Data Type (ZSPI-TDT-) Default Representation BOOLEAN Represented as an F or T. BYTE Interpreted as an unsigned integer and represented in decimal. CHAR Represented as a character string. CRTPID Same as the FNAME entry. DEVICE Same as the FNAME entry. ENUM Interpreted as a signed integer and represented in decimal.
SPI_BUFFER_FORMATNEXT_ Display-Text Procedures Representation Determined by DISPLAY Clause Table 2-3 shows the DISPLAY codes that are suitable to represent certain token data types. Token data types that are not in the table have no suitable DISPLAY codes. (Tokens with these types are representable. But they are represented through the conversion associated with the token data type. For details, see Table 2-2.) Table 2-3.
SPI_BUFFER_FORMATNEXT_ Display-Text Procedures Table 2-4. Field Representation by DDL TYPE or PIC Clause TYPE or PIC Clause Indicated Representation PIC A ... (or X) Represented as a character string. PIC 9 ... (w/o COMP) Represented as a character string. PIC 9 ... COMP Represented as a decimal integer (signed or unsigned, depending on the PIC clause). TYPE BINARY ... Represented as a decimal integer (signed or unsigned, depending on the TYPE clause). TYPE CHARACTER ...
SPI_BUFFER_FORMATFINISH_ Display-Text Procedures Table 2-5. Field Representation by DDL TACL Clause (page 2 of 2) TACL Clause Indicated Representation TACL TSTAMP Represents the internal value in Local Civil Time (LCT). If the internal time is not in GMT, the conversion to LCT fails, and the display-text representation is wrong. The format is: YYYY-MM-DD HH:MM:SS.mil.mic TACL TRANSID Represents a TMF transaction identifier through the TRANSIDTOTEXT procedure.
Status Information Display-Text Procedures 0 Successful -2 Illegal parameter value -3 Missing required parameter -4 Illegal parameter address -12 Insufficient stack space -14 A Guardian procedure error; see status-1 and status-2 on this page. format-ID INT .EXT:ref:1 identifies the storage to release. This variable contains the format ID returned by SPI_BUFFER_FORMATSTART_. After releasing the storage identified by format-ID, the procedure stores a null format ID in the indicated variable.
Supplementary Status Values Display-Text Procedures Table 2-7.
Custom-Formatting Procedures Display-Text Procedures Table 2-8. Supplementary Status Values Main Status-1 Status-2 Explanation -13 2 x File-management error x received while opening the nonresident template file -13 3 x File-management error x received while reading the nonresident template file -14 1 x ALLOCATESEGMENT error x received while allocating the private segment. -14 7 x MOVEX error x received while accessing the private segment.
Custom-Formatting Procedures Display-Text Procedures status := convert-proc ( internal-value , numeric-format , string-format , context , external-value:maxlen , len , status-1 , status-2 , extra-1 , extra-2 , extra-3 ) EXTENSIBLE; ! ! ! ! ! ! ! ! ! ! ! i i i io o:i o o o - convert-proc The name of your custom-formatting procedure.
Custom-Formatting Procedures Display-Text Procedures 0 Leave formatting decisions to convert-proc 2 Use base 2 8 Use base 8 10 Use base 10 16 Use base 16 string-format INT:value specifies which characters are printable so convert-proc can check the characters in the string values it produces: 0 Character codes 32 through 126 -1 Character codes 32 through 255 -2 All character codes context INT .EXT:ref:10 points to a context area. See Context Area on page 2-22.
Naming Custom-Formatting Procedures Display-Text Procedures supplements status on page 2-20. For a list of values, see Supplementary Status Values on page 2-18. extra-1 extra-2 extra-3 INT(32):value are reserved for possible future use and should not be examined. Naming Custom-Formatting Procedures Because custom-formatting procedures must reside on the system library, procedurename conflicts are a potential problem.
Example Display-Text Procedures On the next call, the context area contains exactly the same values as when convert-proc returned from its previous call. When convert-proc notices the nonzero value of context[0], it must determine how to continue the conversion operation. You determine how it does so and how you use the context area. Aside from the zero-nonzero convention with context[0], your procedure can use the context area any way you choose.
Procedures That Convert Variable-Length Tokens Display-Text Procedures 3. Write the custom-formatting procedure itself, such as Example 2-3. Example 2-3. Example of a Custom-Formatting Procedure ! ! A custom-formatting procedure for tokens of type abc-ddl-def. INT PROC abc_cvt_version(ival, num, str, context, text:maxlen, len, st1, st2, extra1, extra2, extra3) EXTENSIBLE; STRING .EXT ival; INT num, str; INT .EXT context; STRING .EXT text; INT maxlen; INT .EXT len; INT .EXT st1; INT .
Procedures That Convert Variable-Length Tokens Display-Text Procedures Organizational Principles Sometimes the value of a token consists of a variable number of fixed-length values. To define such a token: 1. Define a DDL DEF that describes the fixed-length element. 2. Define a token type with OCCURS VARYING that refers to the DEF in Step 1 and use this token type when defining the main token. 3. Use a template-language FORMAT statement to associate a custom-formatting procedure with the DEF in Step 1. 4.
SPI_FORMAT_CLOSE_ Display-Text Procedures SPI_FORMAT_CLOSE_ The SPI_FORMAT_CLOSE_ procedure lets a program that has been using the template file close the file. This is useful for applications that access the template file through calls to the SPI_BUFFER_FORMAT procedures or the EMSTEXT procedure and want to switch template files.
3 Template Language This section describes the use and syntax of the Template Language: Topic Page Template Source File 3-2 Language Basics 3-3 Statements 3-6 Edit Markers 3-19 Edit Descriptors 3-20 *IF Edit Descriptor 3-20 Edit Codes 3-23 For more information on the place of the Template Language within DSM Template Services, see Section 1, Introduction. For information on compilation, see Section 4, Template Compiler.
Template Source File Template Language Example 3-2. Components of an MSG Statement That Overrides a Token’s Value token name MSG statement OVERRIDE option token value MSG: ZEMS-TKN-EVENTNUMBER, ZEMS-EVT-DEVTYPE OVERRIDE ZEMS-TKN-EMPHASIS ZSPI-VAL-TRUE token name token value VST008.vsd Template Source File A template source file includes Template Language statements for a single application.
Language Basics Template Language PROGRAMFILE tokens. For information on value replacement and other edit-marker operations, see Edit Markers on page 3-19. For a description of the syntax of individual statements and their order in the source file, see Statements on page 3-6. Language Basics This subsection explains general features of the Template Language.
Tokens (Unqualified) Template Language In other cases, you must qualify the name with a subsystem ID. Note. The rules for qualification in the Template Language differ from those in the filter language. In the filter language, you can use a compound statement to specify a default subsystem ID and avoid explicit qualification. The Template Language has no such mechanism. All other rules are the same.
Fields Template Language index if present, is an integer that specifies an occurrence of the token in the event message. If you omit index, you select the first occurrence of the token. (The brackets indicate index is optional and are not part of the syntax itself.
Statements Template Language The token value specified by token-id can be structured or unstructured. That is, you can overlay a simple value with a structured value and then reference subcomponents of the structured value. In token-id, you can qualify the token name with a subsystem ID and include an index. For syntax descriptions, see Tokens (Unqualified) on page 3-4 and Qualified Tokens on page 3-4.
VERSION Statement Template Language VERSION Statement The VERSION statement lets you assign a version to the templates of the template object file. This version is displayed by TEMPLI, the Template Installation Program, whenever it reads the templates. VERSION: "product-version" product-version is a string of up to 50 characters surrounded by quotes. The characters are accepted as entered. They are not upshifted or altered.
SSNAME Statement Template Language To avoid duplication, you must register the eight-character subsystem owner (Z-OWNER) with HP. For more information, see your HP representative. SSID: subsystem-ID subsystem-ID is the name of a DDL DEF with the format of a subsystem ID and initialized to the subsystem ID value. Example This SSID is appropriate for a Pathway template source file: SSID: ZPWY-VAL-SSID These statements in a DDL definition file define and initialize ZPWY-VAL-SSID.
SSNAME Statement Template Language name. Alternatively, the entire subsystem ID can be replaced with the abbreviated subsystem ID. The syntax for the SSNAME statement is: SSNAME: "subsystem-name" [, "SSID-abbreviation"] subsystem-name is the name of the subsystem or management application. It is a string of up to eight letters, digits, and hyphens, beginning with a letter. The subsystem name is case sensitive. For compatibility with DNS databases, HP recommends that you use uppercase letters.
SHARED_SSID Statement Template Language • To change the subsystem name associated with installed templates, set =_EMS_TEMPLATES DEFINE to an empty file while you create the template object file. Then you can merge the new and old templates by using TEMPLI. If you specify the files in the proper order, the new name can replace the old name for the application’s templates. For more information, see How TEMPLI Merges Template Files on page 5-9.
DO_COMMON Statement Template Language DO_COMMON Statement This statement is used only with the EMS subsystem. You must include DO_COMMON in an EMS template source file if you are customizing EMS templates. (DO_COMMON causes the Template Compiler to put certain information about universally shared tokens, those with subsystem ID 0.0.0, into the template object file.) DO_COMMON: FORMAT Statement The FORMAT statement associates a DDL DEF (a structure or type) and a customformatting procedure.
DEF_ENUM Statement Template Language The DEF_ENUM statement is necessary only for shared tokens whose enumerated values have different names in different applications. (If a token is not shared, its token type can refer directly to a DDL DEFINITION statement of type ENUM that provides the enumeration labels, and a DEF_ENUM statement is unnecessary.) The syntax for the DEF_ENUM statement is: DEF_ENUM: tkn-or-fld AS enum-def [, enum-def ] ... tkn-or-fld identifies a shared token or field.
DEF_ENUM Statement Template Language Example 3-5. DEF_ENUM Example—Template Source File == TEMPLATE COMPILER SOURCE == \cat.$kit.clstacl.t5 VERSION: "LEGS subsystem with DEF_ENUM statements 91/06/21" DICT: \cat.$kit.clstacl SSID: legs-val-ssid SSNAME: "LEGS", "LEG" == This SHARED_SSID statement specifies that LEGS uses the == definitions in the DDL definition file of FEET. SHARED_SSID: == DO_COMMON == FORMAT == == == == N.A. N.A.
DEF_ENUM Statement Template Language Example 3-6. DEF_ENUM Example—DDL Definition File for Fictitious FEET Subsystem ! DDL source code ! file name \cat.$kit.clsexmpl.d5a ?dict $kit.clstacl ! Make subsystem for FEET. ! Define the subsystem ID for the subsystem FEET. ! are declared, then the subsystem ID is defined. CONSTANT CONSTANT CONSTANT CONSTANT feet-val-ss-owner feet-val-ss-number feet-val-ss-version feet-val-ssid-string VALUE VALUE VALUE VALUE IS IS IS IS First the constants "BODY". 230.
DEF_ENUM Statement Template Language Example 3-7. DEF_ENUM Example—DDL Definition File for Fictitious LEGS Subsystem ! DDL source code ! file name \cat.$kit.clsexmpl.d5b ?dict $kit.clstacl ! Make subsystem for LEGS. ! Define the subsystem ID for the subsystem LEGS. First the constants ! are declared, and then the subsystem ID is defined. CONSTANT CONSTANT CONSTANT CONSTANT legs-val-ss-owner legs-val-ss-number legs-val-ss-version legs-val-ssid-string VALUE VALUE VALUE VALUE IS IS IS IS "BODY". 234.
Template Definition (MSG) Statement Template Language Template Definition (MSG) Statement One MSG statement can contain the source information for both a format template and an override template. Example 3-8.
Template Definition (MSG) Statement Template Language RESIDENT if present, requests that the template be resident in system memory. override-option if present, is of the form: OVERRIDE token-name token-value " template-string " is a character string that contains display text and edit markers in angle brackets (<>). See Edit Markers on page 3-19 Note. To display a left angle bracket (<) in an operator message instead of using the bracket in an edit marker, include two left angle brackets (<<).
Template Language Template Definition (MSG) Statement An OVERRIDE option governs all event messages that have the event number given in the MSG statement with the option. The option specifies a token value to be used in place of the value in the message buffer whenever the specified token code occurs in these event messages. Consider the procedures that get token values from an event message buffer.
Edit Markers Template Language Main Templates For each event, there can be a format template and one or more override templates. For each of these templates, the key has these parts: • • • • Subsystem ID ZEMS-TKN-EVENTNUMBER as token code The event number (ZEMS-EVT-TAKOVER, for example) as token value Template type (format or override) Main templates can contain references to additional templates, whose keys contain token codes and token values other than these. See MSG Edit Code on page 3-29.
Edit Descriptors Template Language Edit Descriptors An edit descriptor describes the way token-value substitution, requested by an edit marker, is to be performed. The syntax for an edit descriptor is: nn: token-reference [ , edit-code ] nn is a one-digit or two-digit number that identifies the edit descriptor. Within an MSG statement, nn must be unique. token-reference specifies the value (or values) to be inserted at the corresponding edit marker.
*IF Edit Descriptor Template Language If the value of an edit descriptor is true, the portion of the template string between the *IF and the *ELSE is interpreted (or between the *IF and the *ENDIF if no *ELSE is present). Otherwise, this portion is ignored. If the edit descriptor is false and an *ELSE is present, the portion of the template string between the *ELSE and the *ENDIF is interpreted. Otherwise, this portion is ignored.
Template Language Example 1: Unqualified and Qualified *IF Edit Descriptors constant must be in the range of -32768 through 32767 if constant is decimal. If binary (%B), octal (%O), or hexadecimal (%H), constant must be in the range %H0000 to %HFFFF. constant is used for comparison with the value of the token or field.
Edit Codes Template Language EMSTEXT produces this text if the value of ZEMS-TKN-EVENTNUMBER is 15 and the value of TFMT-TKN-INT is 151: NESTED COND--token value (151) greater than constant (100): true side 1 EMSTEXT produces this text if the value of ZEMS-TKN-EVENTNUMBER is 15 and the value of TFMT-TKN-INT is 99: NESTED COND--token value (99) less than constant (100): false side 2 EMSTEXT produces this text if the value of ZEMS-TKN-EVENTNUMBER is 15 and the value of TFMT-TKN-INT is 49: NESTED COND--token
Fill Characters Template Language Some edit codes do not accept a field width or let the user omit the field width. If the field length is missing, EMSTEXT determines a default field width: namely, the exact number of spaces required to represent the particular value. Fill Characters If an external value requires fewer characters than the field width in the edit code specifies, EMSTEXT inserts fill characters.
A (Character String) Edit Code Template Language If you omit the field width, the token or field is allocated as much space in the display text as the value requires, with no additional spaces. These edit codes convert token values with these internal data types: (ZSPI-TDT-) INT, INT2, INT4, UINT, ENUM, BYTE, CHAR, and TOKENCODE. Edit codes I and ZI cause EMSTEXT to insert a minus sign in the display text if the data type is signed (INT, INT2, INT4, and ENUM) and the value is negative.
DATE Edit Code Template Language Example Because BOOL has no field-width option, the only possible example is: BOOL DATE Edit Code The DATE edit code accepts an internal date in (ZSPI-TDT-) TIMESTAMP format (in GMT: Greenwich Mean Time) and represents it as display text in Local Civil Time (LCT). If the timestamp is not in GMT, the display-text representation will be wrong.
EXIOADDR Edit Code Template Language The AS string specified in the enumeration on the level 89 item, which corresponds to the value of the field, is output. If n is supplied and the number of characters in the AS string is less than n, enough trailing blanks are inserted to make a total of n characters. In all other cases, the output is the size of the AS string. If the AS string was not specified for the value, the enumeration constant name (the name immediately following the 89) is used in its place.
FILE Edit Code Template Language Example cpu, chan, ctl, and unit values of 14, 0, 9, and 19 are displayed as: (14,0,%11,%23) FILE Edit Code The FILE[n] edit code inserts a full file name in the display text: [\system].$volume.subvolume.filepart system is present only if the value (token or field) is in network form. If present, system is the system name (if known) or a three-digit system number. (volume, subvolume, and filepart have their usual definitions.
MSG Edit Code Template Language [scale-factor] includes a number in the range of -99 through 99, followed by the name of a numeric DDL constant in the range of -99 through 99. FORMATDATA edit code can be used with token values of (ZSPI-TDT) FLT, FLT2, INT, INT2, INT4, UINT, BOOLEAN, as well as TACL types INT, UINT, BOOL, INT2, and INT$. Example This example shows a FORMATDATA edit code: 1:zxxx-tkn-float2val, FORMATDATA (D4.2") == gives x.
MSG Edit Code Template Language You must define any additional format templates referred to by an MSG edit code. As usual, for each new template, you write a template definition (MSG) statement. You can use the MSG edit code with token values of (ZSPI-TDT) CHAR, INT, INT2, INT4, UINT, BOOLEAN, ENUM, BYTE, and TOKENCODE. These template-definition (MSG) statements demonstrate the use of the MSG edit code. Example 3-11.
MSG Edit Code Template Language EMSTEXT finds the main template and begins to create the display text, starting with “ABC: Process terminated.” To continue, it must evaluate <1>. Finding edit descriptor 1, EMSTEXT is directed to format the ZABC-TKN-STATUS token, using the MSG edit code. MSG edit code requires a template lookup with these key parts, taken from the event message buffer: 1. Subsystem ID: The subsystem ID is ZABC-VAL-SSID, the value of ZSPI-TKNSSID. 2. Token code: ZABC-TKN-STATUS. 3.
MSG Edit Code Template Language Example 3-13. MSG Statements for Structure Fields MSG: ZABC-TKN-EQUIP, 1 "air conditioning " MSG: ZABC-TKN-EQUIP, 2 "laser printer " MSG: ZABC-TKN-LOC, 1 "Engineering Building, Room 905" MSG: ZABC-TKN-LOC, 2 "Marketing Building, Room 205" MSG: ZABC-TKN-LOC, 3 "Headquarters Annex, Room 60" MSG: ZEMS-TKN-EVENTNUMBER, ZABC-EVT-EQUIP-MAINTENANCE "Maintenance needed on <1> at <2>." 1: ZABC-MAP-INFO.ZABC-DDL-INFO.EQUIP, MSG(ZABC-TKN-EQUIP) 2: ZABC-MAP-INFO.ZABC-DDL-INFO.
SSID Edit Code Template Language . Example 3-14. MSG Edit Code With Token Type ENUM ==TEMPL Source for TPS subsystem ==Copyright (C) 1998 Tandem Computers VERSION: “TXXXXG07 - 4AUG98“ SSID: ZTPS-VAL-SSID SSNAME: “TPS“, “TPS“ MSG: zems-tkn-eventnumber, 123 “Takeover<1>“ 1:zems-tkn-eventnumber This example shows that when a user uses the type ENUM token in an edit descriptor but does not specify an explicit edit code, or uses the default edit code MSG, EMSTEXT automatically changes the format code to I5.
SYSTEM Edit Code Template Language The SSIDABBR (abbreviated subsystem ID) edit code syntax is: SSIDABBR[n] n if present, is the field width, which must be less than 100. Example This example shows an SSIDABBR edit code: SSIDABBR3 This edit code produces display text such as: PWY By comparison, the SSID edit code produces this display text: TANDEM.PATHWAY.D00 SYSTEM Edit Code The SYSTEM edit code inserts a system name in the display text.
SUBVOL Edit Code Template Language Example This example shows a SYSTEM edit code: SYSTEM10 This edit code produces display text such as: \TIMBUKTU Or if the system name of system 79 cannot be determined: \079 SUBVOL Edit Code The SUBVOL edit code inserts a subvolume name in the display text. The subvolume name is in the form produced by the FNAMECOLLAPSE procedure without the filename part. A three-digit system number identifies the system if the system name cannot be determined.
TRANSID Edit Code Template Language The TIME edit code syntax is: TIME [ ( enform-time-format-code ) ] ( enform-time-format-code ) if present, specifies the Enform time format that EMSTEXT is to use. For a description of time formats, see the Enform Reference Manual. Otherwise, the time is in the HH:MM format, as in 23:59.
Data Types and Edit Codes Template Language Data Types and Edit Codes You can refer to the internal data types in Table 3-2 within an edit descriptor. Table 3-2. Data Types and Edit Codes Token Type (ZSPI-TDT-) Default Edit Code Valid Edit Codes BOOLEAN BOOL BOOL, MSG BYTE I integer, MSG, SYSTEM CHAR A A, integer, MSG CRTPID FILE FILE, SYSTEM DEVICE FILE FILE, SYSTEM ENUM I, ENUM* integer, MSG, ENUM* ERROR N.A.
Edit Codes for Fields Template Language Some fields have TACL data types (the ones with a TACL data clause), and others have only a DDL type. The TACL data type is used, if available. Table 3-3. TACL Field Types and Edit Codes TACL Field Type Default Edit Code Valid Edit Codes CRTPID FILE FILE, SYSTEM DEVICE FILE FILE, SYSTEM ENUM N.A.
4 Template Compiler This section describes compiling a template source file—that is, the compiler generating a template object file that represents a single application: Topic Page Compiler Invocation 4-2 TEMPL Compiler Commands 4-4 For information on: • • • Merging template object files of several applications, see Section 5, Template Installation Program. Installing new templates in the system, see Section 6, Installing Templates.
Compiler Invocation Template Compiler Compiler Invocation The compiler reads Template-Language statements from a template source file and produces a template object file. To run the compiler from TACL, enter: TEMPL / [ IN in-file ] [ , OUT out-file ] [ , run-option / ] ... object-file in-file is the template source file: a terminal, process, disk file, or DEFINE logical name. For more information, see IN File.
Object File Template Compiler The OUT file can be a terminal, process, printer, disk file, or DEFINE logical name. If you omit the OUT file, TACL supplies its own OUT file as the default. If you specify an OUT file that exists, the compiler appends the listing to it. Otherwise, the compiler creates an EDIT file for the listing. The compiler formats the OUT file assuming 79-character records, regardless of the actual output device, except that echoed input lines can exceed 79 characters in length.
TEMPL Compiler Commands Template Compiler TEMPL Compiler Commands You can use three compiler commands as run options or within a template source file to modify how you use the TEMPL compiler. COLUMNS Command The COLUMNS command specifies the maximum number of columns (width) that the compiler can read from a command line or from the template source file. ?COLUMNS num-chars num-chars is the maximum width of the input line, in characters, in the range 12 through 132. The default value is 132.
DICT Command Template Compiler DICT Command This DICT command specifies the location of the DDL dictionary for the compiler to open. ?DICT subvolume subvolume is the subvolume containing the DDL dictionary for the compiler to open. Considerations • • • • The DICT command can appear in the compiler command line or in the template source file prior to the first source statement. The question mark (?) must be in the first column of the template source file.
SOURCE Command Template Compiler SOURCE Command The SOURCE command causes the compiler to include language text from the specified file. ?SOURCE file-name file-name is the file name of a file with additional template-language statements. Considerations • • • • • • The SOURCE command can appear in the compiler command line or anywhere within the template source file. The question mark (?) must be in the first column of the template source file.
5 Template Installation Program The Template Installation Program (TEMPLI) merges a specified collection of template files and places the resulting templates in two files: • • Nonresident template file. This file contains both the resident and the nonresident templates. Resident template file. This file contains only the resident templates. (SEE RESIDENT Option on page 3-17.) These templates are used by the EMSTEXT and SPI_BUFFER_FORMAT procedures, which are called by application programs.
Running TEMPLI Template Installation Program Running TEMPLI To run TEMPLI from TACL: TEMPLI / [ IN cmd-file ] [, OUT listing-file ] [ , run-option ] ... / [ res-file, nonres-file ] IN cmd-file specifies a file with commands that guide TEMPLI operation. TEMPLI accepts a Guardian file name or a DEFINE logical name. The file can be a terminal, a process, or a disk file. If you omit the IN parameter, TEMPLI uses the TACL IN file, typically your terminal.
Resident and Nonresident Template Files Template Installation Program To view this information, enter the TACL OUTVAR command at the TACL prompt immediately after exiting TEMPLI: TACL> outvar _completion Possible completion codes and termination information are: Completion Code Definition Termination Information 0 Normal, voluntary termination with no errors 0 1 Normal, voluntary termination with warning diagnostics Number of warnings 2 Abnormal, voluntary termination with fatal errors or diagno
TEMPLI Commands Template Installation Program TEMPLI Commands This subsection describes the commands that TEMPLI supports. FILE Command Each FILE command directs TEMPLI to include the templates of a particular template file. To be eligible, a file must be either a template object file (produced by the Template Compiler) or a nonresident template file (produced by a previous execution of TEMPLI).
FILE Command Template Installation Program time-stamp is the date and time the template source file was compiled, in the form dd MMM yy hh:mm. This example shows a template-description line: TEST.
VERSION Command Template Installation Program VERSION Command The VERSION command directs TEMPLI to list the subsystem IDs and version IDs from a template object file or nonresident template file: VERSION file-name [application]... file-name is a file name or DEFINE logical name of a template object file or nonresident template file. application is the subsystem owner, a period, and then the subsystem number or full subsystem name of a subsystem or management application; for example, owner.4 or owner.
EXIT Command Template Installation Program EXIT Command The EXIT command serves the usual function. It directs TEMPLI to terminate execution after the completion of the commands already read. End-of-file on the command file is equivalent to an EXIT command.
HELP Command Template Installation Program HELP Command The HELP command serves the usual function. It provides a short syntax summary. Specifically, HELP provides a summary of the TEMPLI command-line parameters and the command-file commands. HELP ? FC Command The FC (fix command) command lets you edit or repeat a command line. FC can be used only at the TEMPLI prompt—not in a command file. FC FC displays the previous command line, up to 132 characters, and prompts for editing input with a period (.).
How TEMPLI Merges Template Files Template Installation Program How TEMPLI Merges Template Files TEMPLI follows certain rules when it merges separate template object files into resident and nonresident template files. Check for Duplicate Template Keys A template key appears in each record of the key-sequenced template object file that the Template Compiler, TEMPL, produces.
Example: Merging Two Simple Template Object Files Template Installation Program Example: Merging Two Simple Template Object Files These two template source files form the basis for template object files (the DDL definition file containing the token definitions is not shown): == First template source file "t088t" VERSION: "test v1" DICT: u33ssnv SSID: tfmt-val-ssid-t001 SSNAME: "TFMT1" ,"T01" MSG: tfmt-tkn-inittempl, 0 "" == Second template source file "t088t1" VERSION: "test v1" DICT: u33ssnv SSID: tfmt-v
Example: Merging Two Simple Template Object Files Template Installation Program both files, so TEMPLI uses one copy of each of the templates generated from those statements. The SSNAME statement is different between the files. Normally, TEMPLI uses the template from the file specified second. However, in this case, the template in the file specified first has an abbreviated SSID specification.
Template Installation Program Example: Merging Two Simple Template Object Files DSM Template Services Manual—427187-004 5- 12
6 Installing Templates This section describes how to install templates in the operating system: Topic Page Installing Templates for a New Application 6-1 Installing Modified HP Templates 6-4 Managing Templates on Network Nodes 6-5 Installing Templates for a New Application Suppose you write a new subsystem named ABC that calls the EMSTEXT procedure to produce display text.
Task 2: Produce the Template Object File Installing Templates Task 2: Produce the Template Object File The Template Compiler, TEMPL, uses the template source file and the application’s DDL dictionary to produce a template object file.
Task 5: Test the New Templates Installing Templates > FILE BCDOBJ > EXIT == Merge templates of subsystem BCD == End of TEMPLI run The new nonresident template file produced in the example is named NEWNRES. Task 5: Test the New Templates Test the new templates before installing them in the system. An installation descriptor directs EMSTEXT (or the SPI_BUFFER_FORMAT procedures) to use the new templates with your application.
Installing Modified HP Templates Installing Templates Building a System That Includes Your Templates To add templates for your own applications, append the file names of the template object files to template-file-list.
Copying HP Files Installing Templates HP DDL Definition Files The DDL definition files are in subvolume $vol.ZSPIDEF. $vol, the volume on which the ZSPIDEF ISV was installed, depends on your site. By default, $vol is the volume to which the SUT was restored. The file names of DDL definition files are given by $vol.ZSPIDEF.ZxxxDDL. xxx is the three-letter abbreviation for the application; for example, COM, EMS, or SPI.
Before You Use These Procedures Installing Templates You can adapt the procedures for use at times other than software installation. These procedures outline methods for ideal situations. When conditions are not ideal: • • For a discussion of software version considerations, see Sharing Templates If Nodes Are Using Different Software Versions on page 6-13. For override template considerations, see Sharing Override Templates on page 6-14. Figure 6-1.
Central Node Handles Events for All Distributed Nodes Installing Templates Central Node Handles Events for All Distributed Nodes To have a central node handle events for all distributed nodes, create a conglomerate nonresident template file on a central node. This file will contain all the templates needed to interpret events from the distributed nodes and from the central node. Figure 6-2.
Central Node Handles Events for All Distributed Nodes Installing Templates NONSTOP KERNEL - Info SUBSYS \EAST.$ZZKRN Current Settings *DAYLIGHT_SAVING_TIME ................USA66 *NONRESIDENT_TEMPLATES................$SYSTEM.SYSTEM.TEMPLATE *POWERFAIL_DELAY_TIME.................30 *RESIDENT_TEMPLATES...................$SYSTEM.SYSTEM.RTMPLATE SUPER_SUPER_IS_UNDENIABLE............ OFF *SYSTEM_NAME..........................\EAST *SYSTEM_NUMBER........................254 SYSTEM_PROCESSOR_TYPE ...............
Central Node Handles Events for All Distributed Nodes Installing Templates NONSTOP KERNEL - Info SUBSYS \EAST.$ZZKRN Current Settings *DAYLIGHT_SAVING_TIME ................USA66 *NONRESIDENT_TEMPLATES................$SYSTEM.SYSTEM.NRTNEW *POWERFAIL_DELAY_TIME.................30 *RESIDENT_TEMPLATES..................$SYSTEM.TEMPLATE.RTMPLATE SUPER_SUPER_IS_UNDENIABLE............ OFF *SYSTEM_NAME..........................\EAST *SYSTEM_NUMBER........................254 SYSTEM_PROCESSOR_TYPE ...............
Installing Templates Distributed Nodes Handle Events for All Other Nodes b. Continue the SYSGENR phase until you receive this prompt: The CONFAUX file has been built. If changes need to be made, and/or if custom protocols and/or drivers need to be built, do so at another terminal.
Distributed Nodes Handle Events for All Other Nodes Installing Templates Figure 6-3. Sharing Templates When Distributed Nodes Handle Events for Every Other Node ABCDE ABCDE ABCDE ABCDE Legend Templates VST013.vsd Use the procedures in Central Node Handles Events for All Distributed Nodes on page 6-7, with these modifications. Procedure 1 • • • For Step 1, install the new version of software on all of the distributed nodes.
Installing Templates Several Central Nodes Handle Events for Distributed Nodes Several Central Nodes Handle Events for Distributed Nodes To have several central nodes handle events for distributed nodes, create a conglomerate nonresident template file for use on two or more central nodes. This file will contain all of the templates needed to interpret events from the distributed nodes and from the central nodes.
Sharing Templates If Nodes Are Using Different Software Versions Installing Templates Figure 6-4. Sharing Templates When Several Central Nodes Handle Events for Distributed Nodes AB Central Node Central Node Central Node ABCDEFGHIJK ABCDEFGHIJK ABCDEFGHIJK AC AD AE AF AG AH Distributed Nodes Legend Templates VST014.
Sharing Override Templates Installing Templates Sharing Override Templates It is easiest to manage templates on network nodes if all nodes use the same override templates. Override template substitutions are made when an event is retrieved by the EMSTEXT, EMSGET, EMSGETTKN, or SPI_BUFFER_FORMAT procedures. If an event travels to another node before these procedures retrieve it, the substitution must be made by an override template on the other node.
A Template-Related DDL Clauses This section gives brief descriptions of a few DDL clauses. For detailed information, see the Data Definition Language Reference Manual. If you are writing a new application that uses Template Services in some way, this material might be especially useful. If not, you might read it to help you understand DDL standard definition files.
TYPE ENUM Clause Template-Related DDL Clauses This example shows an ENUM DDL DEF: ! DDL source code DEFINITION legs-ddl-domain-state 89 ds-ok 89 ds-not-ready 89 ds-aborted 89 ds-recv-pending END. TYPE ENUM TACL ENUM BEGIN. VALUE 0 AS "OK". VALUE 9 AS "NOT READY". VALUE 11 AS "ABORTED". VALUE 13 AS "RECEIVE PENDING". TOKEN-TYPE legs-typ-domain-state VALUE IS zspi-tdt-enum DEF IS legs-ddl-domain-state.
B TEMPL Errors About TEMPL Errors and Warnings The compiler produces two types of diagnostic messages: • • Warning messages describe minor errors or ambiguities to help identify potential trouble. Error messages describe serious problems that must be corrected before the compiler can produce an object file. The compiler places both message types in the listing file. In most cases, a circumflex (^) points to the problem.
TEMPL Errors and Warnings TEMPL Errors TEMPL Errors and Warnings For each Template Compiler (TEMPL) warning or error message, the message text is presented in a box, followed by a brief explanation and, when appropriate, a suggested corrective action. *** ERROR 1 -- Invalid file name. A file name is required at the circumflex. *** ERROR 2 -- There is no object file name on the compile command line. The name of the template object file is required on the RUN command for TEMPL. It is a parameter string.
TEMPL Errors and Warnings TEMPL Errors *** ERROR 8 -- CREATE of object file failed. Err: filesys-errnum File: file-info The compiler could not create the template object file due to filesys-errnum. *** ERROR 9 -- OPEN of file-type file failed. Err: filesys-errnum File: file-info The compiler could not open the IN file, a SOURCE file, or the template object file due to filesys-errnum. *** ERROR 10 -- READ of file-type file failed.
TEMPL Errors and Warnings TEMPL Errors *** WARNING 14 -- The object file is in use by another program. File: file-info This warning appears if another program has the template object file open when the compiler tries to purge it. Messages accompanying this one indicate whether the compiler recovered by renaming the old object file or by generating a name for the new object file. *** ERROR 15 -- File security error on the file-type file.
TEMPL Errors and Warnings TEMPL Errors *** ERROR 19 -- Unrecognized compiler command. A question mark (?) is in column 1, but the entity after the question mark is not a valid command name. Currently, ?SOURCE is the only compiler command. *** ERROR 20 -- Unrecognized entry after object file name. The command-line parameter string has extra characters after the template object file name. *** ERROR 21 -- No VERSION statement was found.
TEMPL Errors and Warnings TEMPL Errors *** ERROR 27 -- Expected a quoted string. The syntax requires a string enclosed in quotation marks (“...”) at the place marked by the circumflex, but the next item does not begin with quotation marks. *** ERROR 28 -- String was not closed. A quoted string must begin and end on the same line. The compiler found an opening quote but no closing quote by the end of the line.
TEMPL Errors and Warnings TEMPL Errors *** ERROR 36 -- The index value is bad. The syntax requires a number (not a symbol) in the range 1 through 255. *** ERROR 37 -- Field width is required for this edit code. Edit codes that add leading zeros—ZI, ZB, ZO, and ZH—require a field width. *** ERROR 38 -- An SSID name was expected. The syntax requires a subsystem ID at the place marked by the circumflex. *** ERROR 39 -- A token name was expected.
TEMPL Errors and Warnings TEMPL Errors *** ERROR 46 -- This statement is out of order. For the correct order, see Statements on page 3-6. *** ERROR 47 -- The code numbers for SPI types overlap those for field types. (internal error) This is a logic error within the Template Compiler, not a problem with the MSG statements. Report this error to your HP representative. *** ERROR 48 -- An edit code must be specified for items of this data type.
TEMPL Errors and Warnings TEMPL Errors *** ERROR 52 -- An unterminated edit marker starts count characters into the template string. Edit markers are surrounded by angle brackets (<>). This message indicates that a left bracket (<) has no matching right bracket (>). *** ERROR 53 -- A malformed edit marker starts count characters into the template string. The characters within the angle brackets (<>) do not form a valid edit marker.
TEMPL Errors and Warnings TEMPL Errors *** ERROR 58 -- The previous MSG statement duplicates the format-template key of an earlier statement. The template keys derived from this MSG statement and an earlier statement are identical. The parts of a template key are subsystem ID, the token code and token value immediately following MSG, and the template type (formatting or override). For each template, the key must be different from that of all other templates.
TEMPL Errors and Warnings TEMPL Errors *** WARNING 63 -- This template is too big to fit in one template record so it will be split into several template records. This warning indicates that the template is too long (476 bytes or longer) to fit in one template record file. To let the template function despite exceeding the maximum length, the compiler puts the remaining template text into continuation records. For more information on calculating the template length, see Error 63.
TEMPL Errors and Warnings TEMPL Errors *** ERROR 70 -- Unexpected code returned from proc: value (internal error) This logic error occurred within the Template Compiler. Check the template and DDL source statements to determine whether a source error contributed to this problem. Report the problem to your HP representative. *** ERROR 71 -- This value is too big -- must fit in 32 bits.
TEMPL Errors and Warnings TEMPL Errors *** ERROR 78 -- Too many levels of qualification. Structure-field references can have up to 50 levels of qualification. *** ERROR 79 -- This field reference does not identify a field uniquely. This error is possible only in structures in which two fields share the same (unqualified) name. In a reference to such a field, the error occurs if all qualifiers apply to both fields.
TEMPL Errors and Warnings TEMPL Errors *** ERROR 86 -- name cannot have a subscript. You indexed a field that is not an array. The field does not have an OCCURS attribute. *** ERROR 87 -- name needs a subscript. Consider x.y.z as a general field reference (any number of levels greater than one is sufficient to make the point here). If x and y are arrays, they need subscripts. Only z, the lowest-level component, can correctly occur unsubscripted in a field reference.
TEMPL Errors and Warnings TEMPL Errors *** ERROR 93 -- Numeric overflow Trap # n: (S,P,E,L)=(S,P,ENV,L) codeseg Regs: R0 R1 R2 R3 R4 R5 R6 R7 This numeric overflow represents a logic error in the Template Compiler. Check the template and DDL source statements to determine whether a source error contributed to this problem. Report the problem to your HP representative.
TEMPL Errors and Warnings TEMPL Errors *** ERROR 98 -- This name differs from the current name for this subsystem: ext-ssid This error reports that the name given in the SSNAME statement (ssname-2, for example) is not the same as the name currently associated with the subsystem or management application. ext-ssid is the subsystem ID in external form, which we can represent as organization.ssname-1.version. The middle part of ext-ssid (ssname-1) should match the SSNAME string (ssname-2) but does not.
TEMPL Errors and Warnings TEMPL Errors *** ERROR 105 -- Too many token overrides. You included more token override specifications for a single event than the Template Compiler will accept. *** WARNING 107 -- *BEL is ignored. The *BEL edit marker is obsolete. *** ERROR 108 -- RENAME of temp object file failed. Err: filesys-errnum File: file-info This message describes the error condition that prevented the compiler from using the name you requested for the template object file.
TEMPL Errors and Warnings TEMPL Errors *** ERROR 114 -- There is no unmatched *IF for the *ELSE starting count characters into the template string. You are either missing an *IF edit code or have an extra *ELSE. *** ERROR 115 -- A second *ELSE for a single *IF starts count characters into the template string. This error occurs when the template looks something like: ... <*IF n> ... <*ELSE> ... <*ELSE> ... The second *ELSE is wrong as it stands.
TEMPL Errors and Warnings TEMPL Errors *** ERROR 121 -- Reference to a descriptor outside the range 1 - 99 appears starting count characters into the template string. An MSG statement contains an edit marker or <*IF n> with n out of range. *** ERROR 122 -- File system error err when accessing the DDL dictionary. The error occurred while the compiler was scanning the dictionary for token-label information.
TEMPL Errors and Warnings TEMPL Errors *** ERROR 128 -- Expected "WITH". A FORMAT statement is missing the keyword WITH. *** ERROR 129 -- Expected the name of the formatting procedure. A FORMAT statement is missing the procedure name. *** ERROR 130 -- There is a previous FORMAT statement for name. The DEF named in the FORMAT statement also appeared in an earlier FORMAT statement. A given application can have only one custom-formatting procedure for a given structure.
TEMPL Errors and Warnings TEMPL Errors *** ERROR 138 -- This token or field has already been defined in another DEF_ENUM. Only one redefinition can be given for any one token or field. The item mentioned in the current DEF_ENUM statement was redefined in an earlier DEF_ENUM statement. *** ERROR 139 -- Too many DEF_ENUM entries. Determine whether the maximum number of DEF_ENUM has been exceeded in a particular case by taking all the DEF_ENUM statements for tokens.
TEMPL Errors and Warnings TEMPL Errors *** ERROR 145 -- CONTROL of enum label work file failed. err-file line A call to the CONTROL procedure received an error. The CONTROL operation is 20 (purge data). *** ERROR 146 -- DEF_ENUM can only redefine tokens of the current subsystem or shared tokens. This error message is self-explanatory. *** ERROR 147 -- The structure used with the ENUM edit code is not the same as the structure used when declaring the token.
TEMPL Errors and Warnings TEMPL Errors *** ERROR 152 -- This is an invalid field reference. The syntax of the structure-field reference is incorrect. *** ERROR 153 -- The field referenced is not an enumeration literal. A structure field reference in a token value expression must name an enumeration literal. *** ERROR 154 -- The version of the DDL dictionary is too old. The product versions of the DDL dictionary and the Template Compiler are incompatible.
TEMPL Errors and Warnings TEMPL Errors *** ERROR 158 -- This name differs from the current abbreviated SSID for this subsystem: ssid-abbreviation. The abbreviation given in the SSNAME statement is not the same as the abbreviated subsystem ID currently associated with the application. ssid-abbreviation is the abbreviated subsystem ID that is currently associated with this application.
TEMPL Errors and Warnings TEMPL Errors *** ERROR 161 -- Missing left parenthesis. The syntax requires an opening parenthesis “(“ at the point indicated by the circumflex (^). *** ERROR 162 -- Expected a conditional operator. The syntax requires a conditional operator—less than (<), equal to (=), greater than (>), less than or equal to (<=), greater than or equal to (>=), or not equal to (<>)—at the point indicated by the circumflex (^).
TEMPL Errors and Warnings TEMPL Errors *** WARNING 169 -- Expected the number of a warning message. The warning number given was not in the range of TEMPL’s predefined set of warning numbers. *** WARNING 170 -- The ENUM format code has been used for a token-field of data type, int, uint, enum, bool or byte, for which no DEF_ENUM information is available to this ssid.
C TEMPLI Errors and Warnings TEMPLI produces two types of diagnostic messages: • • Warning messages—describe minor errors or ambiguities to help identify potential trouble. Error messages—describe serious problems that must be corrected before TEMPLI can produce resident and nonresident template files. The error processing of TEMPLI is similar to that of the Template Compiler.
TEMPLI Errors and Warnings TEMPLI Errors and Warnings TEMPLI Errors and Warnings For each Template Installation Program (TEMPLI) warning or error message, the message text is presented in a box, followed by a brief explanation and, when appropriate, a suggested corrective action. *** ERROR 1 -- Invalid filename. The file name that should appear in the OBEY command is either missing or incorrect. *** ERROR 2 -- Invalid file name specified for the resident templates.
TEMPLI Errors and Warnings TEMPLI Errors and Warnings *** ERROR 7 -- Inquiry about the file-type file failed. Err: filesys-errnum FILE: file-info file-type is either resident templates, nonresident templates, or template. For more information, see the FILEINFO procedure in the Guardian Procedure Calls Reference Manual. *** ERROR 8 -- CREATE of file-type file failed.
TEMPLI Errors and Warnings TEMPLI Errors and Warnings *** ERROR 12 -- READ of file-type file failed. Err: filesys-errnum FILE: file-info file-type is one of the following: nonresident templates, OBEY, IN, template, subsystem name work, subsystem number work, or file order work. The latter three are temporary work files. For more information, see the READ procedure in the Guardian Procedure Calls Reference Manual. *** ERROR 13 -- WRITE of file-type file failed.
TEMPLI Errors and Warnings TEMPLI Errors and Warnings *** ERROR 17 -- The file-type file is in use by another program. File: file-info file-type is usually IN, OBEY, or template. TEMPLI tries to open these files in read-only, protected mode. It issues this message when another process has the file open with a mode incompatible with the required mode. To correct this, coordinate your use of this file with the other users. *** WARNING 17 -- The file-type file is in use by another program.
TEMPLI Errors and Warnings TEMPLI Errors and Warnings *** WARNING 19 -- The DEFINE name given as the file-type file is not defined. Name: define name file-type is resident templates or nonresident templates. The ADD DEFINE statement for the indicated DEFINE name is either missing or misspelled. This is only a warning because TEMPLI can recover by creating a new (output) template file. Another warning message tells you the name of the new ZZTPnnnn file.
TEMPLI Errors and Warnings TEMPLI Errors and Warnings *** WARNING 22 -- Subsystem number onum has more than one name or abbreviation: It is SSNAME name1, SSID abbreviation abbr1 in file file1. It is SSNAME name2, SSID abbreviation abbr2 in file file2. onum is owner.ssnumber, the first two parts of a subsystem ID. name1 and name2 are the two subsystem names, and abbr1 and abbr2 are the two abbreviated subsystem names, as given by SSNAME statements in the two template input files.
TEMPLI Errors and Warnings TEMPLI Errors and Warnings *** ERROR 29 -- A comma is expected here. A comma should separate the two file names in the command-line parameter string. *** ERROR 30 -- This statement is not recognized. The first word on an input line was not a TEMPLI command keyword. *** ERROR 31 -- Expected the name of a file of templates. This FILE or VERSION command is invalid. The file name that should follow the command keyword is either incorrect or missing.
TEMPLI Errors and Warnings TEMPLI Errors and Warnings *** ERROR 35 -- The template file has the wrong key field. File: file-info The file named in file line was specified in a FILE or VERSION command, but its key field has the wrong offset or length. After you verify that the file is the template object file you intended, check to see if the versions of TEMPLI and the Template Compiler are different and incompatible. *** ERROR 36 -- Cannot handle the version of templates in this file.
TEMPLI Errors and Warnings TEMPLI Errors and Warnings *** WARNING 41 -- Output nonresident templates file name changed to new-file. The file specified for the nonresident templates already existed and could not be purged. Therefore, TEMPLI created a file named new-file for the nonresident templates. new-file will be named ZZTPnnnn in the same volume and subvolume as the name originally specified.
Index A A (character string) edit code 3-25 ALLPROCESSORS paragraph 1-13, 6-3 Architecture, DSM 1-1 AS clause, DDL display of tokens, controlling 1-2, 1-4 in type ENUM DEFs A-1/A-2 Asterisk (*) in SPI_BUFFER_FORMATNEXT_ display text 2-9 B B edit code 3-24 Blank space, Template Language 3-3 BOOL (Boolean) edit code 3-25 C Changing token values 1-2, 1-4 Clauses, DDL See DDL clauses Closing a template file 1-5, 2-26 Columns, specifying for TEMPL compiler 4-4 Command file, TEMPLI 5-3/5-8 Command message 1-2/1
D Index and SPI_BUFFER_FORMAT procedures 1-2 AS 1-2, A-1/A-2 DISPLAY 1-2, A-1 HEADING 1-2, A-1 related to templates A-1/A-2 SSID 1-3, A-1 TYPE ENUM A-1/A-2 DDL compiler and Template Services, overview 1-8 creating DDL dictionary 1-10, 1-11, 6-1 DDL definition file and SPI_BUFFER_FORMAT procedures 1-2, 1-5 creating DDL dictionary overview 1-8, 1-10, 1-11 procedure 6-1 from HP file names 6-5 modifying 1-7, 6-5 DDL dictionary and DDL compiler building 6-1 overview 1-8, 1-10, 1-11 specifying in Template Langu
E Index E Edit codes A 3-25 B 3-24 BOOL 3-25 by data type 3-37 DATE 3-26 ENUM 3-26/3-27 EXIOADDR 3-27/3-28 field width 3-23 FILE 3-28 fill characters 3-24 for fields 3-37 for integer data types 3-24 H 3-24 I 3-24 MSG 3-29/3-32 O 3-24 overview 3-23/3-24 spaces in display text 3-24 SSID 3-33 SSIDABBR 3-33/3-34 SUBVOL 3-35 SYSTEM 3-34/3-35 TIME 3-35/3-36 TRANSID 3-36 ZB 3-24 ZH 3-24 ZI 3-24 ZO 3-24 Edit descriptors field widths of 3-23 standard 3-20 *IF 3-20/3-23 Edit markers nn 3-19 *CR 3-19 *ELSE 3-19 *END
F Index F FC command, TEMPLI 5-8 Field and custom-formatting procedures 2-19 and Template Language edit codes for 3-37 enumerations 3-11/3-15 MSG statement 3-16/3-19 name, specifying 3-5/3-6 See also Edit codes and Edit descriptors widths, in edit descriptors 3-23 representation by SPI_BUFFER_FORMATNEXT_ 2-9 value, SPI_BUFFER_FORMATNEXT_ representation of determined by DISPLAY clause 2-16 determined by TYPE and PIC clauses 2-14/2-15 FILE command, TEMPLI 5-4/5-5 FILE edit code 3-28 Fill characters 3-24 For
M Index on length of subsystem name B-15 on levels of field qualification B-13 on nesting of *IF edit markers B-18 on number in edit descriptor B-6 on number of format IDs 2-5 on number of FORMAT statements B-20 on SHARED_SSID subsystem IDs B-21 on size of field offset B-13 on subscript size B-12 on template size B-11 on token-label length 2-6 on *IFs in a single template B-18 on ?SOURCE command nesting for Template Compiler B-4 Listing tokens See SPI_BUFFER_FORMAT procedures M Main template 3-19 Markers
Q Index and EMSTEXT procedure 1-5 and templates 1-7 description of 1-2 Printing operator messages 1-2/1-4 Procedures overview of procedures relevant to Template Services 1-5/1-6 See also Custom-formatting procedures, DEFINE procedures, EMSTEXT procedure, and SPI_BUFFER_FORMAT procedures Q Qualified token names 3-4/3-5 R RESIDENT option, MSG statement 3-17 Resident template file installing while building a system 1-13, 6-3/6-4 overview 1-8 specifying with TEMPLI FILE command 5-3, 5-4 switching to new fil
T Index summary of 3-6 template-definition 3-1, 3-16, 3-19 VERSION 3-7 Status information, SPI_BUFFER_FORMAT procedures main 2-17/2-18 supplementary 2-18/2-19 Structured token and custom-formatting procedures 2-19 and Template Language 3-5 representation by SPI_BUFFER_FORMATNEXT_ 2-9 See also Field Subsystem ID abbreviated how TEMPLI keeps specification when merging files 5-9 specifying with SSNAME statement 3-8/3-10 SSIDABBR edit code 3-33/3-34 TEMPLI check for duplicates 5-9 and SSIDTOTEXT, TEXTTOSSID p
T Index Template Language 3-18 TEMPLI check for duplicates 5-9 Template Language 3-1/3-37 and template types 1-7 overview 3-1 Template object file as output of TEMPL 4-3 creating 1-10, 1-11, 6-2 DEFINE for 6-4 from HP file names 6-4 modifying 1-7, 6-4/6-5 how TEMPLI merges them 5-9/5-11, 6-2 overview 1-7 ZZTP files 4-3 Template Services and COUP 1-8 and DDL compiler 1-8 and SYSGEN 1-8 components of 1-4/1-9 procedures 1-5/1-6 Template Compiler (TEMPL) 1-8 Template Installation Program (TEMPLI) 1-8 template
U Index See also Edit codes and Edit descriptors specifying 3-3 unqualified 3-4 displaying 1-2 SPI_BUFFER_FORMATNEXT_ representation of 2-8/2-11 Token value and Template Language enumerations 3-11/3-15 MSG statement 3-1, 3-16/3-19 See also Edit codes and Edit descriptors displaying 1-2 modifying 1-2, 1-4 See also OVERRIDE option See also Field SPI_BUFFER_FORMATNEXT_ representation of description of 2-8/2-16 determined by DISPLAY clause 2-14 determined by token data type 2-12 factors in determining 2-12, 2
Special Characters Index *IF edit descriptor 3-20/3-23 edit marker 3-19 - (minus sign) in SPI_BUFFER_FORMATNEXT_ display text 2-9 =_EMS_TEMPLATES DEFINE 1-5, 1-9 and the SPI_FORMAT_CLOSE_ procedure 2-26 changing subsystem name associated with installed templates 3-10 testing new templates 6-3 DSM Template Services Manual—427187-004 Index -10