Introduction To Message Library, FMM/SSM Descriptors, Data Formats And User File Description Library.

disclaimer (отмазка)

Приведенный ниже документ имеет датой своего рождения год 84-й, со всеми вытекающими несовпадениями на данный момент. Сей факт следует учитывать при чтении, либо вообще отказаться от оного. Но документ показался мне любопытным и поэтому я решил разместить его на сайте.

1. Introduction

This document provides an introduction to some of the information which is needed to allow the software listings for a System 12 exchange to be read and understood. The information is divided into the following categories:

Introductions to additional information which is needed to allow the software listings to be read and understood are provided in other sections of the Software Documentation manual, e.g. CHILL Publication Items.

Examples of the various categories of information are provided in this document. In these examples, the numbers in parenthesis at the right-hand side are for explanation only and do not appear on the printouts of the message definition entries, FMM descriptors etc. Items shown in square brackets [ ] in the examples are optional and might not be present on a printout. The information on the various printouts may differ in layout and order of presentation to that shown in the examples. For example, an item shown on line 10 of an example may be on line 14 of a printout.

Explanatory comments in the various printouts are contained between a start of comments delimiter (/*) and an end of comment delimiter (*/), for example:

/* SOURCE FILE 1 */

2. Message Library

The message library contains a record of all the inter FMM and SSM messages used in a System 12 exchange. There is a message definition entry in the library for each message.

A message definition entry comprises the following:

Figure 1 shows an example of a message definition entry, the parts of which are described in the following subclauses.

/*C  CCTRL NO 211 01234-AA-04  */                                     (1)
/*I  INTERFACE 1  211 12345     */                                    (2)
/*   ROUTING NBR SET VIA MENU */                                      (3)
/*G  NOT GENERIC */                                                   (4)
/*D  DESIGN CENTRE = ATC */                                           (5)
/*E  RESP. ENGINEER= C.BROWN */                                       (6)
DCL BCLSAA09                                                          (7)
DIRECTED                                                              (8)
PRIORITY(3)   /* PRIORITY SET VIA MENU */                             (9)
MSG_ID(9205_MOV_APP)                                                  (10)
/*P* INTERNAL DIRECTED MESSAGE TO THE APPLICATION PROCESS */          (11)
/*P* FROM THE SUPERVISORY PROCESS. THIS IS FOR AN */                  (12)
/*P* OPERATOR REQUEST */                                              (13)
FIELDS(                                                               (14)
       B_JOB_ID M_IOS_JOB_ID,                                         (15)
       /* SEQUENCE NUMBER AND DATE ASSIGNED TO THE ORJ */             (16)
       B_PSE_FIL M_IOS_LOG_FILE,                                      (17)
       /* PSEUDO FILE ID */                                           (18)
       B_PSE_DEV M_IOS_LOG_DEV,                                       (19)
       /* PSEUDO DEVICE ID */                                         (20)
       B_SRC_FIL1 M_IOS_LOG_FILE,                                     (21)
       /* SOURCE FILE 1 */                                            (22)
       B_SRC_FIL2 M_IOS_LOG_FILE,                                     (23)
       /* SOURCE FILE 2 */                                            (24)
       B_SRC_DEV M_IOS_LOG_DEV,                                       (25)
       /* SOURCE DEVICE */                                            (26)
       B_C_FIL M_CUR_FILE,                                            (27)
       /*CURRENT FILE BEING USED */                                   (28)
       B_DES_FIL_ID M_IOS_LOG_FILE,                                   (29)
       /* DESTINATION FILE LOGICAL */                                 (30)
       B_FSM_PTR M_DCU_PTR,                                           (31)
       /* FINITE STATE MACHINE PTR */                                 (32)
       B_TYPE M_DCU_F_TYP,                                            (33)
       /* FILE TYPE */                                                (34)
       B_DES_FIL M_IOS_LOG_FILE,                                      (35)
       /* DESTINATION FILE */                                         (36)
       B_DES_DEV_ID M_IOS_LOG_DEV                                     (37)
       /*DESTINATION DEVICE LOGICAL */                                (38)
       );                                                             (39)
Figure 1. Example of a Message Definition Entry

2.1 Header Comment

Lines 1 to 6 (in Figure 1) comprise the optional header comment, which normally has the following or similar information:

2.2 Message Name Statement

The message name statement (Line 7 in Figure 1) has the following format:

DCL message name

The message name is the partitioned data set name of the message including the product change status (BCLSAA09 in Figure 1).

2.3 Transmit Qualifier

The transmit qualifier (line 8 in Figure 1) indicates the type of transmission for the message, i.e Transmit Basic Message or Transmit Directed Message. The transmit qualifier has one of the following formats:

BASIC [ (INTO or VIA )]
DIRECTED [ (VIA or TO)]

When the keyword INTO is included, it indicates that a logical processor destination has been specified for the message. When the keyword VIA is included, it indicates that the transmission path for the message is specified. When the TO keyword is included, it indicates that the destination of the message is specified.

2.4 Priority Statement

The priority statement (line 9 in Figure 1) has the following format:

PRIORITY (message priority)

The message priority is a number in the range 0 to 7, with 0 having the greatest priority.

2.5 Message Identity Statement

The message identity statement (line 10 in Figure 1) has the following format:

MSG_ID (message identifier)

The message identifier (9205_MOV_APP in Figure 1) comprises a four figure routing number and an abbreviated description of the message with a maximum of 27 characters.

2.6 Discriminators Clause

When used, the discriminators clause defines the disriminators that can be used by the message. The discriminators clause (not shown in Figure 1) has the following format:

DISCRIMINATORS discriminator mode name

The discriminators mode name is the CHILL identifier of the message discriminator.

2.7 Buffer Indicator

The keyword BUFFER, when present, indicates that a buffer supplied by the user software is transmitted with the message.

2.8 Message Parameter List

The message parameter list (lines 15 to 38 in Figure 1) gives the message parameters and therefore specifies the structure of the message buffer. The list has all the information needed to construct a CHILL STRUCT statement for the message buffer. The message parameter list starts with the keyword FIELDS. This keyword is followed by a list, in parenthesis ( ), of the message paremeters. Each message parameter comprises a message parameter name and a mode. The message parameter name is the CHILL identifier for the message. The mode is the CHILL mode of the message parameter and can be a standard CHILL mode such as BOOL. Each message parameter usually has a descriptive comment which gives the purpose or function of the message parameter. Message parameters are separated by a comma (,).

3. Finite Message Machine Descriptors

Each FMM in a System 12 exchange has a descriptor which specifies its input and output interfaces. An FMM descriptor comprises a header comment (which is optional), an introduction, a supervisor section, an application section and a conclusion. Where an FMM does not have an application part, the application section of the descriptor is omitted. Figure 2 shows an example of an FMM descriptor, the parts of which are described in the following subclauses.

/*******************************************************************/ (1)
/*           SYSTEM 12  FMM DESCRIPTOR : 211 23456                 */ (2)
/*                                      VARIANT AA                 */ (3)
/*                                          PCS 03                 */ (4)
/*                                                                 */ (5)
/*      FOR FMM : 211 34567  (DD DOCUMENT SET)                     */ (6)
/*        TITLE :CE INITIALIZATION                                 */ (7)
/* FROM SW AREA : 211 34567  (TLD DOCUMENT SET)                    */ (8)
/*        TITLE : CE INITIALIZATION                                */ (9)
/*                                                                 */ (10)
/*      CONTACT : ENGINEER G. SNOOPY    DES  CENTRE ATC            */ (11)
/*******************************************************************/ (12)
 JMHAAA04       : FMM_DESCRIPTOR      /* REFER TO 211 34567 HA     */ (13)
                  FMM_ID (0110)       /* FMM NUMBER IN OSN-DLS     */ (14)
                  TYPE (ACTIVE_STANDBY)                               (15)
                  INIT (URGENT)                                       (16)
                  CRITICAL                                            (17)
    G_S_JDYP_CE_INIT     : SUPERVISOR (14) ;                          (18)
                                                                      (19)
SEND_BASIC   (                                                        (20)
              KQDCAAXX,          /* 0186_FEQ_TOVK */                  (21)
              KRSNAAXX,          /* 0569 TKOV RPORT */                (22)
              KRSPAAXX) ;        /* 0570_RST_RPORT */                 (23)
SEND_DIRECTED (                                                       (24)
              BFSSAAXX,          /* 8446_LD_SD_ACK */                 (25)
              JWDGAAXX.          /* 8448_I_CE_LD_SD */                (26)
              KQDJAAXX,          /* 9843_INIT CPL */                  (27)
              KVFFAAXX) ;        /* 9390_I_INHIBIT */                 (28)
RECEIVE BASIC (                                                       (29)
              BFSVAAXX,          /* 1853_CE_LD_SD */                  (30)
              KQDDAAXX,          /* 0193_END RESTR */                 (31)
              KVDRAAXX) ;        /* 0583_INHIBIT */                   (32)
RECEIVE_DIRECTED (                                                    (33)
              KQDCAAXX,          /* 9735_FMM_INIT */                  (34)
              BFLCAAXX) ;        /* 8701_INHIBENAB */                 (35)
    CALLS (                                                           (36)
              JMMVAAXX) ;        /* DATABASE */                       (37)
    END G_S_JYDP_CE_INIT;                                             (38)
    G_A_JDYP_CE_INIT      : APPLICATION ;                             (39)
SEND_BASIC   (                                                        (40)
              BFSVAAXX,          /* 1853_CE_LD_SD */                  (41)
              KPQSAAXX,          /* 0055_OPEN_READ */                 (42)
              MBDAAXX) ;         /* 0896_DEF_LD_FAIL */               (43)
SEND_DIRECTED (                                                       (44)
              BFSTAAXX,          /* 8447_LD_SD_CC */                  (45)
              KPRDAAXX,          /*  9948_CLOSE */                    (46)
              KVFFAAXX)   ;      /* 9390_I_INHIBIT */                 (47)
    CALLS (                                                           (48)
              JMMVAAXX) ;        /* DATABASE */                       (49)
    END G_A_JDYP_CE_INIT;                                             (50)
 END JMHAAA04;                                                        (51)
Figure 2. Example of an FMM Descriptor

3.1 Header Comment

Lines 1 to 12 (in Figure 2) comprise the optional header comment, which normally has the following or similar information:

3.2 Introduction Statement

The introduction statement (see lines 13 to 17) has the following format:

member name : FMM_DESCRIPTOR                (line 13)
              FMM_ID (FMM number)           (line 14)
              DATA_MODEL (DMD name)         (not shown)
              TYPE (FMM type phrase)        (line 15)
              INIT (initilization phrase)   (line 16)
              criticality phrase            (line 17)

The member name is the partitioned data set name of the FMM descriptor, including the product change status (JMHAAA04 in Figure 2). The FMM number is the number allocated to the FMM in the FMM descriptor library index (0110 in Figure 2). The DMD name is the member name of a special data model used by the FMM. If the FMM does not use a special data model, the keyword DATA_MODEL and the DMD name are omitted from the introduction. The FMM type phrase may be ACTIVE_STANDBY, LOAD_SHARING or SIMPLEX. Where no indication of the type of FMM is needed, the keyword TYPE and the FMM type are omitted from the introduction.

The initialization phrase indicates when a message is sent to the FMM to cause it to initialize itself. The initialization phrase can be one of the following:

If the initialization phrase is omitted from the introduction, the default value (URGENT) is used.

When the criticality phrase is CRITICAL it indicates that the control element in which the FMM resides is to be restarted should the FMM terminate in an abnormal way. If such a restart is not required, the criticality phase is omitted from the introduction.

3.3 Supervisor Section

The supervisor section (lines 18 to 38 in Figure 2) starts with the statement:

CHILL identifier  :  SUPERVISOR constant ;

The CHILL identifier ( G_S_JDYP_CE_INIT in Figure 2) is that used in the FMM source code to identify the supervisor part of the FMM. The constant is a decimal integer that specifies the maximum number of the processes the FMM can handle at any one time. If the FMM does not have an application part, the constant is omitted.

The supervisor section continues with four statements introduced by the keywords SEND_BASIC, SEND_DIRECTED, RECEIVE_BASIC and RECEIVE_DIRECTED. Following each keyword is a list of the messages in that message class which are handled by the supervisor part of the FMM. If the supervisor part of the FMM does not handle any messages in a class, the keyword for that class is omitted.

After the lists of messages, the supervisor section continues with another statement (lines 36 and 37) headed by the keyword CALLS. This statement gives the SSMs called by the supervisor part of the FMM. If no SSMs are called by the supervisor part of the FMM, the CALLS statement is omitted.

The supervisor section ends with the statement (line 38):

END CHILL identifier ;

The CHILL identifier is the same as the identifier at the start of the supervisor section.

3.4 Application Section

The application section starts with the statement:

CHILL identifier  :  APPLICATION ;

The CHILL identifier ( G_A_JDYP_CE_INIT in Figure 2) is that used in the FMM source code to identify the application part of the FMM. If the FMM does not have an application part the application section is omitted.

The application section continues with three statements introduced by the keywords SEND_BASIC, SEND_DIRECTED, and RECEIVE_DIRECTED. Following each keyword, is a list of the messages in that message class which are handled by the application part of the FMM. If the application part of the FMM does not handle any messages in a class, the keyword for that class is omitted.

After the lists of messages, the application section continues with a statement (lines 48 and 49) headed by the keyword CALLS. This statement lists the SSMs called by the application part of the FMM. If no SSMs are called by the application part of the FMM, the CALLS statement is omitted.

The application section ends with the statement (line 50):

END CHILL identifier ;

The CHILL identifier is the same as the identifier at the start of the application section.

3.5 Conclusion

The FMM descriptor ends with the statement:

END member name;

The member name is the same as the name in the introduction section (see subclause 3.2).

4. System Support Machine Descriptors

Each SSM in a System 12 exchange has a descriptor which specifies its input and output interfaces. An SSM descriptor comprises the following:

Figure 3 shows an example of an SSM descriptor, the parts of which are described in the following subclauses.

/*******************************************************************/ (1)
/*           SYSTEM 12  SSM DESCRIPTOR : 211 12345                 */ (2)
/*                                       VARIANT AA                */ (3)
/*                                           PCS 04                */ (4)
/*                                                                 */ (5)
/*      FOR SSM : 211 89123  (DD DOCUMENT SET)                     */ (6)
/*        TITLE : SSM SCHEDULER                                    */ (7)
/* FROM SW AREA : 211 45678  (TLD DOCUMENT SET)                    */ (8)
/*        TITLE : ADMINISTRATION                                   */ (9)
/*                                                                 */ (10)
/*      CONTACT : ENGINEER S. CLAUSE            DES  CENTRE BTM    */ (11)
/*******************************************************************/ (12)
 JMJAAA02      : SSM_DESCRIPTOR        /* REFER TO 211 78912 HA    */ (13)
                  INTERRUPT (5)                                       (14)
                  SSM_ID (1234)                                       (15)
                  DATA MODEL (JPJTAA04)                               (16)
    G_S_ABCD_ADM_SCH     : INTERFACE_PROC (BOOL, INT)                 (17)
                                                                      (18)
 SEND_BASIC    (                                                      (19)
                PPDCAAXX,                 /*  1234_REQ_TOVK */        (20)
                PPANAAXX)   ;             /*  4567_TKOV RPORT */      (21)
 SEND_DIRECTED (                                                      (22)
                BFSSAAXX,                 /* 8111_LD_SD_ACK */        (23)
                JWDGAAXX)   ;             /* 8222_I_CE_LD_SD */       (24)
 RECEIVE_DIRECTED  (                                                  (25)
                KQDGAAXX,                 /* 9735_FMM_INIT */         (26)
                BFLCAAXX)   ;             /* 8701_INHIBENAB */        (27)
    CALLS   (                                                         (28)
                JMMVAAXX) ;               /* DATABASE */              (29)
      END G_S_ABCD_ADM_SCH ;                                          (30)
                                                                      (31)
    G_S_JDZP_ADM_PR       : INTERRUPT_PROC () ;                       (31)
    CALLS (                                                           (32)
                JMPVAAAX) ;               /* DATABASE */              (33)
      END G_S_JDZP_ADM_PR ;                                           (34)
                                                                      (35)
   G_S_JDVP_ADM_CL        : CLOCK_PROC ();                            (36)
                          PERIOD (10) ;                               (37)
    CALLS (                                                           (38)
                JMPVABXX) ;               /* DATABASE */              (39)
      END G_S_JDVP_ADM_CL ;                                           (40)
                                                                      (41)
     G_S_ABCD_ADM_EH      : EVENT_HANDLER () ;                        (42)
                                                                      (43)
 SEND_BASIC    (                                                      (44)
                KKDCAAXX,                 /*  1254_REQ_MMCR */        (45)
                PPANAAXX)   ;             /* 9213_MMCR RPORT */       (46)
 SEND_DIRECTED (                                                      (47)
                BFWWAAXX,                 /* 1111_MM_SD_ACK */        (48)
                JJAGAAXX   ;              /* 2222_MMC_BUF_SD */       (49)
      END G_S_ABCD_ADM_EH  ;                                          (50)
 END JMJAAA02 ;                                                       (51)
Figure 3. Example of an SSM Descriptor

4.1 Header Comment

Lines 1 to 12 comprise the optional header comment, which normally has the following or similar information:

4.2 Introduction Statement

The introduction statement (see lines 13 to 16) has the following format:

member name : SSM_DESCRIPTOR                   (line 13)
              INTERRUPT (interrupt number)     (line 14)
              SSM ID (SSM number)              (line 15)
              DATA MODEL (DMD name)            (line 16)

The member name is the partitioned data set name of the SSM descriptor including the product change status (JMJAAA02 in Figure 3). The interrupt number is the software interrupt number used to call the externally accessible procedures of the SSM and is a decimal number in the range 0 to 255. The SSM number is the number allocated to the SSM in the SSM descriptor library index (1234 in Figure 3). The DMD name is the member name of the data model used by the SSM. If the SSM does not use the data base, the keyword DATA_MODEL and the DMD name are omitted from the introduction.

4.3 Interface Procedure Section

There is an interface procedure section for each of the externally accessible interface procedures of the SSM. Each interface procedure section starts with an identifying statement which has the following format:

procedure name  : INTERFACE_PROC (parameter mode list) ;

The procedure name is the name of the interface procedure (G_S_ABCD_ADM_SCH in Figure 3). The parameter mode list gives the CHILL mode of each of the procedure parameters, for example:

(BOOL, INT, CHAR)
(INT, INT)

If the list is empty, the parenthesis are still included.

After the identifying statement, the interface procedure section continues with three statements introduced by the keywords SEND_BASIC, SEND_DIRECTED, and RECEIVE_DIRECTED. Following each keyword, is a list of the messages in that message class which are handled by the interface procedure. If the interface procedure does not handle any messages in a class, the keyword for that class is omitted.

After the lists of messages, the interface procedure section continues with another statement (lines 28 and 29) headed by the keyword CALLS. This statement lists the SSMs called by the interface procedure. If no SSMs are called, the CALLS statement is omitted.

The interface procedure section ends with the statement (line 30):

END procedure name ;

The procedure name is the same as the name at the start of the interface procedure section.

4.4 Interrupt Procedure Section

There is an interrupt procedure section for each interrupt procedure of the SSM. Each interrupt procedure section starts with an identifying statement which has the following format:

procedure name  : INTERRUPT_PROC () ;

The procedure name is the name of the interrupt procedure (G_S_JDZP_ADM_PR in Figure 3). The () represents an empty parameter mode list.

After the identifying statement, the interrupt procedure section continues with a statement (lines 32 and 33) headed by the keyword CALLS. This statement gives the SSMs called by the interrupt procedure. If no SSMs are called by the interrupt procedure, the CALLS statement is omitted.

The interrupt procedure section ends with the statement (line 34):

END procedure name ;

The procedure name is the same as the name at the start of the interrupt procedure section.

4.5 Clock Procedure Section

There is a clock procedure section for each clock procedure of the SSM.

Each clock procedure section starts with an identifying statement which has the following format:

procedure name : CLOCK_PROC ();
                 PERIOD ( interval ) ;

The procedure name is the name of the clock procedure (C_S_JDVP_ADM_CL in Figure 3). The () represents an empty parameter mode list. The interval gives the period (in milliseconds) between executions of the procedure.

After the identifying statement, the clock procedure section continues with a statement (lines 38 and 39) headed by the keyword CALLS. This statement gives the SSMs called by the clock procedure. If no SSMs are called, the CALLS statement is omitted.

The clock procedure section ends with the statement (line 40):

END procedure name ;

The procedure name is the same as the name at the start of the clock procedure section.

4.6 Event Handler Section

There is an event handler section for each event handler of the SSM. Each event handler section starts with an identifying statement which has the following format:

procedure name : EVENT_HANDLER () ;

The procedure name is the name of the event handler (G_S_ABCD_ADM_EH in Figure 3). The () represents an empty parameter mode list.

After the identifying ctatement, the event handler section continues with two statements introduced by the keywords SEND_BASIC and SEND_DIRECTED. Following each keyword is a list of the messages in that message class which are handled by the event handler. If the event handler does not handle any messages in a class, the keyword for that class is omitted. The interrupt procedure section ends with the statement (line 50):

END procedure name ;

The procedure name is the same as the name at the start of the event handler section.

4.7 Conclusion

The SSM descriptor ends with the statement:

END member name;

The member name is the same as the name in the introduction section (see subclause 4.2).

5. Data Formats

Data for use in a System 12 exchange is provided in Data Definition Language (DDL) source programs. These DDL programs are applied to a DDL Preprocessor which translates them into a binary table called the Meta Data Base. The Meta Data Base is used during the software production of Generic Load Segments (GLSs).

This clause describes the formats of the Mode Definition Listings, the Relation Declaration Listings, and the Domain Declaration Listings which are used as inputs to the DDL Preprocessor. The clause also provides an introduction to summaries which give the purpose and meanings of the relations and domains. Explanations of the various types of CHILL modes are given in the CHILL Publication Items in Part 1 of the Software Documentation manual.

5.1 Mode Definition Listings

The mode definition listings define the CHILL modes used in the software of an exchange. These listings are organized into modules, each of which gives the CHILL modes for one or more DDL programs (or units). Each DDL unit can have one or more Data Model Definitions (DMDs).

An example of a mode defintion listing is shown in Figure 4, the parts of which are described in the following subclauses.

/*******************************************************************/ (1)
/*                                                                 */ (2)
/*      GENERIC MODE MODULE   : CYRA                               */ (3)
/*                                                                 */ (4)
/*      DATE OF LAST UPDATE   : 22/10/82                           */ (5)
/*                                                                 */ (6)
/*******************************************************************/ (7)
                                                                      (8)
CYRA : DEFINE DDL ;                                                   (9)
                                                                      (10)
JPJTAA04 : DMD ;                                                      (11)
                                                                      (12)
/*******************************************************************/ (13)
/*                                                                 */ (14)
/*        MODE DEFINITIONS    - LEVEL  1 -                         */ (15)
/*                                                                 */ (16)
/*******************************************************************/ (17)
                                                                      (18)
                                                                      (19)
                                                                      (20)
SYN M_CDT_DMCP  =    60   ;      /*  DIRECT MEMORY                 */ (21)
                                 /*  CONTROLLER PROCESSOR          */ (22)
SYN M_CDT_WCDC  =    61   ;      /*  WINCHESTER DISC               */ (23)
                                 /*  CONTROLLER                    */ (24)
SYN M_CDT_MTUC  =    62   ;      /*  MACTAPE UNIT                  */ (25)
                                 /*  CONTROLLER                    */ (26)
SYN M_CDT_MMCH  =    63   ;      /*  MAN MACHINE CHANNEL           */ (27)
                                                                      (28)
SYN M_CDT_MTUF  =    64          /*  MAGTAPE UNIT                  */ (29)
                                 /*  FORMATTER                     */ (30)
                                                                      (31)
SYNMODE M_CETYPE = BIN(8) ;                                           (32)
                                                                      (33)
NEWMODE M_LCF_REG_ID = SET(      /* LCF REGISTER TO BE SCANNED        (34)
         E_LCFREG_0,             /* DRIVE REGISTER                    (35)
         E_LCFREG_1,             /* DRIVE REGISTER                    (36)
         E_LCFREG_2,             /* DRIVE REGISTER                    (37)
         E_LCFREG_3,             /* DRIVE REGISTER                    (38)
         E_LCFREG_4,             /* DRIVE REGISTER                    (39)
         E_LCFREG_5,             /* DRIVE REGISTER                    (40)
         E_LCFREG_6,             /* DRIVE REGISTER                    (41)
         E_LCFREG_7, );          /* DRIVE REGISTER                    (42)
END JPJTAA04 ;                                                        (43)
                                                                      (44)
END CYRA :                                                            (45)
Figure 4. Mode Definition Listing

5.1.1 Header Comment

Lines 1 to 7 (in Figure 4) comprise the optional header comment, which normally contains the following or similar information:

5.1.2 DDL Unit

The header comment (if present) is followed by one or more DDL unit definitions which have the following format:

label : DEFINE DDL ;        (line 9)
DMD Definition      (lines 11 to 43)
END label ;                (line 45)

The label parameter (CYRA in Figure 4) at the start and end of the definition is the name of the DDL unit. The DMD definition has the following format:

label : DMD;                   (line 11)
synonym statement(s);   (lines 21 to 30)
synmode statement(s);          (line 32)
newmode statement(s)    (lines 34 to 42)
END label ;                    (line 43)

The label (JPJTAA04 in Figure 4) at the start and end of the DMD definition is the name of the DMD definition.

A synonym statement has the following format:

SYN name = string ;

The name parameter is the name of the synonym statement, e.g., M_CDT_DMCP and string is a maximum of 256 printing characters.

A synmode statement has the following format:

SYNMODE name = mode ;

The name parameter is the name of the synmode, e.g M_CETYPE and mode is either a none array mode or an array mode. A newmode statement has the following format:

NEWMODE name = mode ;

The name parameter is the name of the newmode, e.g. M_LCF_REG_ID and mode is either a none array mode or an array mode.

5.2 Relation Declaration Listings

The relation declaration listings give all the domains associated with each relation of the data base subsystem. The relation declaration listings are organized into modules, each of which gives the relations for one or more DDL programs (or units). Each DDL unit can have one or more DMDs. An example of a relation declaration listing is shown in Figure 5. In practice the parts of a relation declaration may be on different lines to those shown in Figure 5. The parts of a relation declaration listing are described in the following subclauses.

/*******************************************************************/ (1)
/*                                                                 */ (2)
/*      GENERIC RELATION MODULE : CYRH                             */ (3)
/*                                                                 */ (4)
/*      DATE OF LAST UPDATE   : 22/10/82                           */ (5)
/*                                                                 */ (6)
/*******************************************************************/ (7)
                                                                      (8)
CYRH : DEFINE DDL ;                                                   (9)
                                                                      (10)
JPJTAA04 : DMD ;                                                      (11)
                                                                      (12)
/*******************************************************************/ (13)
/*                                                                 */ (14)
/*      RELATION DECLARATION PART -- 1 --                          */ (15)
/*                                                                 */ (16)
/*******************************************************************/ (17)
                                                                      (18)
DCL R_ACE      RELATION  (D_LDC_IDTY,D_LDC_TYPE,D_LOBWATCH)           (19)
                    KEY  (D_LDC_IDTY);                                (20)
                                                                      (21)
DCL R_ADESTA   RELATION  (D_REPTYP  ,D_REFORM  ,D_VIA_AC   ,          (22)
                          D_REPCOD  ,D_DEFOUT  ,D_STHF     ,          (23)
                          D_LTHF    ,D_OUTPUT )                       (24)
                    KEY  (D_REPTYP  );                                (25)
                                                                      (26)
                                                                      (27)
END JPJTAA04 ;                                                        (28)
                                                                      (29)
END CYRH ;                                                            (30)
Figure 5. Relation Declaration Listing

5.2.1 Header Comment

Lines 1 to 7 (in Figure 5) comprise the optional header comment, which normally has the following or similar information:

5.2.2 DDL Unit

The header comment (if present) is followed by one or more DDL unit definitions which have the following format:

label : DEFINE DDL  ;                (line 9)
DMD Definition               (lines 11 to 28)
END label ;                         (line 30)

The label parameter (CYRH in Figure 5) at the start and end of the definition is the name of the DDL unit.

The DMD definition has the following format:

label : DMD;                           (line   11)
relation declaration    (s) ;     (lines 19 to 25)
END label ;                            (line   28)

The label (JPJTAA04 in Figure 5) at the start and end of the DMD definition is the name of the DMD definition. Relation declarations can be real, virtual, general or redefined. A real relation has the following format:

DCL name RELATION
(domain name list)
KEY (domain name list) ;

The domain name list comprises a list of domain names separated by a comma (,). A virtual relation has the following format:

DCL name VIRTUAL RELATION
(virtual domain list)
JOIN (join specification) ;

The virtual domain list comrises virtual domain names separated by a comma. The join specification parameter comprises join elements, each of which has the following format:

relation name.domain name
WITH relation name

A general relation has the following format:

DCL name VIRTUAL RELATION
(domain name list)
PROC (name) ;

A redefined relation has the following format:

DCL name REDEFINES
(relation name)
(domain name list) ;

The relation name is that of the relation which is redefined.

5.3 Domain Declaration Listings

The domain declaration listings give all the modes used in each domain. An example of a domain declaration listing is shown in Figure 6. The parts of a domain declaration listing are described in the following subclauses.

/*******************************************************************/ (1)
/*                                                                 */ (2)
/*      GENERIC DOMAIN MODULE  : CYRF                              */ (3)
/*                                                                 */ (4)
/*      DATE OF LAST UPDATE    : 22/10/82                          */ (5)
/*                                                                 */ (6)
/*******************************************************************/ (7)
                                                                      (8)
CYRF : DEFINE DDL ;                                                   (9)
                                                                      (10)
JPJTAA04 : DMD ;                                                      (11)
                                                                      (12)
/*******************************************************************/ (13)
/*                                                                 */ (14)
/*        DOMAIN DECLARATIONS   - PART 1 -                         */ (15)
/*                                                                 */ (16)
/*******************************************************************/ (17)
                                                                      (18)
                                                                      (19)
DCL D_A_MAXIMA  DOMAIN M_A_MAXIMA ;                                   (20)
DCL D_A_MINIMA  DOMAIN M_A_MINIMA ;                                   (21)
DCL D_ABEXPDAY  DOMAIM M_LT_ABS_DAY    ;                              (22)
DCL D_ABEXPDOW  DOMAIN M_DAY_WK        ;                              (23)
DCL D_ABEXPHR   DOMAIN M_LT_ABS_HOUR   ;                              (24)
DCL D_ABEXPMIN  DOMAIN M_LT_ABS_MINUTE ;                              (25)
                                                                      (26)
END JPJTA04 ;                                                         (27)
                                                                      (28)
END CYRF ;                                                            (29)
Figure 6. Domain Declaration Listing

5.3.1 Header Comment

Lines 1 to 7 (in Figure 6) comprise the optional header comment, which normally has the following or similar information:

5.3.2 DDL Unit

The header comment (if present) is followed by one or more DDL unit definitions which have the following format:

label : DEFINE  DDL ;                                 (line 9)
DMD Definition                                (lines 11 to 27)
END label ;                                          (line 29)

The label parameter (CYRF in Figure 6) at the start and end of the definition is the name of the DDL unit. The DMD definition has the following format:

label : DMD;                                         (line 11)
domain declaration (s)  ;                     (lines 19 to 25)
END label ;                                          (line 28)

The label (JPJTAA04 in Figure 5) at the start and end of the DMD definition is the name of the DMD definition. Domain declarations can be either single declarations or group declarations. A single domain declaration has the following format:

PCL name DOMAIN mode ;

The name parameter is the name of the domain. The mode is the CHILL mode of the domain and can be an array mode or a non array mode. A domain group declaration has the following format:

DCL name DOMAIN_GROUP (domain name list);

The name parameter is the name of the domain. The domain name list comprises a list of domain names separated by a comma (,).

6. User File Description Library

The user file description library contains a descriptor for each user file stored in the mass memory devices of a System 12 exchange. A user file descriptor has an optional header comment, a logical file section and a physical file section. Figure 7 shows an example of a user file descriptor, the parts of which are described in the following subclauses.

/*********************************************************************/(1)
/*                                              ED.:03, FEB.-08-82   */(2)
/* XXX_NUMBER      :  211 11820                                      */(3)
/*                                                                   */(4)
/* PROGRAMMER      :  L.ABNER                                        */(5)
/* DESIGN CENTER   :  SDC                                            */(6)
/* EXTENSION NO    :  1234                                           */(7)
/* DATE            :  82-02-16                                       */(8)
/*                                                                   */(9)
/* PURPOSE         :  FILE CONTAINS SYSTEM FILE DESCRIPTOR TABLE.    */(10)
/*                                                                   */(11)
/* USED BY         : 211 12345, 211 ....., 211 ......                */(12)
/* GSMS,GOS (OBJECT) 211 ....., 211 ....., 211 ......                */(13)
/*********************************************************************/(14)
DEF_LOG   1                                /* LOGICAL FILE NUMBER ( )*/(15)
         ,NAME       = BLNAA01             /* MAX 8 CHARS.        ( )*/(16)
         ,FILE_TYPE  = FDT                 /*                     ( )*/(17)
         ,ACCESS     = (MDY,SEQ)           /* UPDATE IF REQUIRED  ( )*/(18)
         ,KEY        = (RD:AR,WR:JA,MDY:SA)/* AUTHORIZATION CODES ( )*/(19)
         ,RECOV      = YES                 /*                     ( )*/(20)
         ,DATA_TYPE  = ASCII               /* UPDATE IF REQUIRED  ( )*/(21)
         ,TIME_RES   = TFAT                /* UPDATE IF REQUIRED  ( )*/(22)
         ,TIME_CLASS = SHORT               /* UPDATE IF REQUIRED  ( )*/(23)
         ,MAX_LENGTH = 3000                /* NUMBER OF RECORDS   ( )*/(24)
         ,REC_LENGTH = 64;                 /* RECORD LENGTH       ( )*/(25)
                                                                       (26)
DEF_PHY   FDTBLFILE0001V00                 /* PHYSICAL FILE NAME  ( )*/(27)
         ,LOGTY      = 1                   /* LOGICAL FILE NUMBER ( )*/(28)
         ,DEVICE     = (DISK,MT)           /* UPDATE IF REQUIRED  ( )*/(29)
         ,BLK_LENGTH = 0                   /* UPDATE IF REQUIRED  ( )*/(30)
         ,TRANS      = NOT                 /* UPDATE IF REQUIRED  ( )*/(31)
         ,INIT_ALLOC = 9999                /* FOR FUTURE USE      ( )*/(32)
         ,EXT_SIZE   = 9999                /* FOR FUTURE USE      ( )*/(33)
         ,GEN_NO     = 1                   /*                     ( )*/(34)
         ,MENU       = NOT                 /* FOR FUTURE USE      ( )*/(35)
         ,IN_DELIM   = !                   /*                     ( )*/(36)
         ,FSTLINE_VDU= 1                   /*                     ( )*/(37)
         ,NLINES_VDU = 20                  /*                     ( )*/(38)
         ,TOP_MARG   = 1                   /*                     ( )*/(39)
         ,LEFT_MARG  = 1                   /*                     ( )*/(40)
         ,LINE_COUNT = 60;                 /*                     ( )*/(41)
Figure 7. Example of a User File Descriptor

6.1 Header Comment

Lines 1 to 14 (in Figure 7) comprise the optional header comment, which normally contains the following or similar information:

6.2 Logical File Section

The logical file section (lines 15 to 25 in Figure 7), which defines the logical characteristics of the file, has the following format:

DEF_LOG logical file identity                          (line 15)
       ,NAME       = logical file name                 (line 16)
      [,ALIAS      = logical file alias]               (not shown)
       ,FILE_TYPE  = file type                         (line 17)
       ,ACCESS     = first access attribute, second
                     access attribute                  (line 18)
      [,KEY        = ([RD:aa], [WR:bb], [ MDY:cc])]    (line 19)
      [,RECOV      = recovery attribute]               (line 20)
      [,DATA_TYPE  = data format of the file]          (line 21)
      [,TIME_RES   = time supervision characteristic]  (line 22)
      [,TIME_CLASS = time supervision class]           (line 23)
      [,MAZ_LENGTH = maximum number of records]        (line 24)
       ,REC_LENGTH = record length;                    (line 25)

The logical file identity is a number in the range 0 to 5000. The logical file name is a mnemonic of up to eight characters. The logical file alias is a number in the range 0 to 5000 and is an alias for the logical file identity.

The file types and their mnemonics are given in the Table 1. The first access attribute of the file is RD (read), WR (write) or MDY (modify). The second access attribute of the file is RMD (random) or SEQ (sequential). The file read, write and modify authorization keys, RD aa, WR bb and MDY cc each have two characters. The recovery attribute parameter is YES, if recovery of the file is performed in the event of a failure or NOT, if recovery is not performed in the event of a failure. The data format parameter of the file can be ASCII, EBCDID, BINARY, NOTDEF or XXXREL. The time supervison characteristic of the file can be NSPV (no supervision required), IRAC (inter-record access supervision), TFAT (total file access supervision) or IRTF (IRAC and TFAT). The time supervision class of the file can be DEFAULT, SHORT, MEDIUM or LONG. The maximum number of records parameter can have a maximum of five digits. The record length in bytes is specified by up to four digits.

Table 1. List of File Types
NameMnemonic
Accepted GLS Patch FileAGLSPATCH
Accepted GLS Patch Work FileAGLSPATCHWK
Accepted GOS Patch FileAGOSPATCH
Accepted GOS Patch Work FileAGOSPATCHWK
Data Load Segment (DLS) IndexDLS_INDEX
DLS Patch fileDLSPATCH
DLS FileDLS
Disk LoaderDISK_LOADER
Disk Loader MapDISK_LOADERM
File Data TapeFDT
GLS Debug FileGLSD
GLS FileGLSC
GLS Map FileGLSM
GOS Data FileGOSDATA
GOS Map FileGOSM
Generic Overlay SegmentGOSC
Initialization Package FileINIT
MMC Translation FileMMC
Meta Data Base FileMETADB
Operator Job Request Command FileORJ
Patch FilePATCH
Raw Data FileRAWD
Secuity FileSECURITY
Software Configuration FileSWCONFD
Statistical Data FileSTAT
System FileSYSTEM
System Load Tape Directory FileDIRECT
Taxation Data FileTAX
Test GLSGLST
Unaccepted CLS Patch FileUGLSPATCH
Unaccepted GLS Patch Work FileUGLSPATCHWK
Unaccepted GOS Patch FileUGOSPATCH
Unaccepted GOS Patch Work FileUGOSPATCHWK
Undefined File TypeUNDEF

6.3 Physical File Section

The physical file section (lines 27 to 41 in Figure 7), which defines the physical characteristics of the file, has the following format:

DEF_PHY Physical file name                                     (line 27)
       ,LOGTY     = logical file identity                      (line 28)
       ,DEVICE    = physical device type(s)                    (line 29)
       ,BLK_LENGTH = physical block length                     (line 30)
      [,MTACCESS  = file header ]                            (not shown)
      [,TRANS     = format translation requirement             (line 31)
      [,MAX_LENGTH = maximum number of blocks                (not shown)
      [,INIT_ALLOC = number of on-line records (initial)]      (line 32)
      [,EXT_SIZE  = number of on-line records (extension)]     (line 33)
      [,GEN_NO   = generation number ]                         (line 34)
      [,MENU     = format mode ]                               (line 35)
      [,IN_DELIM  = input delimiter]                           (line 36)
      [,FSTLINE_VDU= first occupied line ]                     (line 37)
      [,NLINES_VDU = number of VDU lines                       (line 38)
      [,TOP_MARG  = number of first line (line printer) ]      (line 39)
      [,LEFT_MARG = first occupied column (line printer)     ] (line 40)
      [,LINE_COUNT = number of lines per page ];               (line 41)

The physical file name identifies the file to the storage medium on which it is to be stored, displayed or printed and comprises up to 17 characters. The logical file identity is a number in the range 0 to 5000.

A maximum of eight physical device types can be specified. Each type can only be specified once. The device types currently allowed are DISK, MT, VDU, LPRT, TTY, DCU, SPARE1 and SPARE2.

The physical block length of the file is specified by up to four digits.

The file header (magnetic tape only) is a single character which indicates the key to be provided for off-line processing systems.

The format translation requirement parameter indicates if translation of the format is required before recording for the file. The format translation requirement parameter is NOT if translation is not required and MMC if translation is required.

The maximum number of blocks parameter has up to five digits.

The number of on-line records (initial) parameter, which has up to four digits, specifies the number of records (for a disk only) initially allocated to the file.

The number of on-line records (extension) parameter, which has up to four digits, specifies the number of records allocated if the initial allocation for the file is not sufficient.

The generation number has up to four digits and provides information which allows a distinction to be made between different generations of the file (MT only).

The format mode parameter indicates if a VDU has to be used in the format mode (YES) or not (NOT).

The input delimiter is the character which specifies the start of the file.

The first occupied line parameter has up to two digits which indicate the first line of the VDU on which information is presented.

The number of VDU lines parameter has up to two digits which indicate the number of lines on the VDU which can be used to display the file.

The number of first line (line printer) parameter has up to three digits which indicate the first line which is used to print the file.

The first occupied column (line printer) parameter has up to three digits which indicate the first column which is used to print the file.

The number of lines per page parameter has up to three digits which indicate the number of lines per page used when the file is printed on a line printer.

 

 
Конвертация в HTML Максим Осташов
Размещено на www.s12most.mailru.com 25 ноября 2001
Есть вопросы или дополнения, конструктивная критика? Пишите!
Hosted by uCoz