DEC VTX Application Provider's Guide

*HyperReader

  CONTENTS

  Title Page

  Copyright Page

  Preface

  Part I    DEC VTX/VALU Overview

  1      DEC VTX/VALU Product Set

  1.1     VTX Application Service (VAS)

  1.2     VAS Run-Time Image
    1.2.1      VAS and Remote Applications and ISAM Files
    1.2.2      VAS in the VTX Environment

  1.3     External Link (ELK)
    1.3.1      Synchronous and Asynchronous ELK Applications
    1.3.2      Comparison of VAS and ELK

  1.4     Remote Update Server Link (RUSL)

  1.5     VAS, ELK, RUSL, and Distributed Processing

  Glossary

  Part II    VTX/VALU Guide to Using VAS

  2      VAS Overview

  2.1     The Role of VAS in a VTX System
    2.1.1      Connecting VAS to VTX
    2.1.2      Preliminary VAS Tasks

  2.2     Steps for Implementing a Simple VAS Transaction

  3      Writing Transaction Definitions

  3.1     VAS General Rules and Conventions

  3.2     VAS Reserved Words
    3.2.1      Predefined Local Variables
    ACTION
    CASE
    COPY
    DISPLAY
    DISPLAY/DMENU
    EXIT
    LOG
    REQUEST
    TRANSACTION
    VARIABLE

  3.3     VAS Transaction Definition Syntax

  4      Sample VAS Transactions

  4.1     Sample 1:  Displaying Data and Logging Subscriber Input
    4.1.1      VTX Infobase Preliminaries
    4.1.2      What Happens:  Programmer's View
    4.1.3      What Happens:  Subscriber's View

  4.2     Sample 2:  Using a CUR
    4.2.1      VTX Infobase Preliminaries
    4.2.2      What Happens:  Programmer's View
    4.2.3      What Happens:  Subscriber's View

  4.3     Sample 3:  Using a Remote Application
    4.3.1      VTX Infobase Preliminaries
    4.3.2      What Happens:  Programmer's View

  4.4     Sample 4:  Error Handling
    4.4.1      VTX Infobase Preliminaries
    4.4.2      What Happens:  Programmer's View
    4.4.3      Probable Causes of Error
    4.4.4      Summary:  VAS Error Handling

  5      VAS Communications

  5.1     Starting the VTXCTL Utility

  5.2     VTXCTL Mode Commands
    BUILD
    CONNECT VAS
    EXIT
    HELP
    SAVE
    SHOW VAS
    START VAS
    STOP VAS

  5.3     VAS Mode Commands
    DEPOSIT
    EXAMINE
    EXIT
    HELP
    LOAD
    SHOW ALL
    SHOW CHANNEL
    SHOW SESSION
    SHOW STATUS
    START CHANNEL/DATA_FILE
    START CHANNEL/DECnet
    START CHANNEL/SNA
    START CHANNEL/X25
    START COMMUNICATION
    START LOG
    START NOTIFY
    STOP CHANNEL
    STOP COMMUNICATION
    STOP LOG
    STOP NOTIFY
    STOP SESSION

  6      Callable User-Written Routines

  6.1     Writing a CUR
    6.1.1      Data Manipulation in a CUR

  6.2     Compiling a CUR

  6.3     Linking a CUR Image

  6.4     Loading a CUR Image

  6.5     How Does VAS Use a CUR?
    6.5.1      Sample CURs

  6.6     Testing CURs

  7      Using Remote Applications

  7.1     Subchannel Communication Links
    7.1.1      Distributed Capability

  7.2     Communication Process

  7.3     Record Level Interface
    7.3.1      Locking Subchannels

  7.4     Abort Handling
    7.4.1      Abort Handling:  The Application End
    7.4.2      Generic Remote Application
    7.4.3      Explanation of Example

  8      Communicating with DECnet Applications

  8.1     DECnet Communication
    8.1.1      How VAS Initiates Logical Links
      8.1.1.1      Using the TASK Keyword
      8.1.1.2      Specifying a DECnet Object Number
    8.1.2      Using Proxy Access
    8.1.3      Completing the Link Transparently

  8.2     Sample DECnet Application

  8.3     BASIC DECnet Program

  8.4     COBOL DECnet Program

  8.5     Pascal DECnet Program

  9      Communicating with X.25 Applications

  9.1     System Requirements

  9.2     Writing Applications for X.25 Communication
    9.2.1      Sample Application

  10     Communicating with SNA LU6.2 Applications

  10.1    System Requirements
    10.1.1     DECnet/SNA Gateway
    10.1.2     OpenVMS/SNA
    10.1.3     DECnet/SNA OpenVMS APPC/LU6.2 Programming Interface

  10.2    SNA Terminology

  10.3    Basic and Mapped Conversations

  10.4    VAS and APPC/LU62

  10.5    VAS and CICS Transactions
    10.5.1     Sample PL/1 CICS Transaction
    10.5.2     Possible Sources of Error
      10.5.2.1     VTXCTL
      10.5.2.2     VAS
      10.5.2.3     VASSNA (APPC/LU6.2 Link)

  11     Reading from ISAM Files

  11.1    Preliminary Information

  11.2    VAS Restrictions and Requirements
    11.2.1     How VAS Reads Records from a File
    11.2.2     Sample Transaction
    11.2.3     What Happens:  Programmer's View
    11.2.4     What Happens:  Subscriber's View

  12     Sample VAS Application

  12.1    Component Configuration

  12.2    Application Flow
    12.2.1     Read a Record
    12.2.2     Write a Record
    12.2.3     Delete a Record
    12.2.4     Scan the Records

  12.3    Sample Session

  12.4    Listings
    12.4.1     Initializing an Application
    12.4.2     Defining the Records for the ISAM File
    12.4.3     Defining the Transactions
    12.4.4     Modifying the ISAM File Contents
    12.4.5     Scanning ISAM File Records
    12.4.6     Validating Key Values

  13     VAS Messages

  13.1    VAS Message Modification

  13.2    VAS Error Messages

  Part III    DEC VTX Guide to Using RUSL

  14     Overview of RUSL

  14.1    Update Server Communications

  14.2    IP Accounts

  14.3    RUSL Sessions and Applications

  14.4    Session Context Block (SCB)

  14.5    RUSL Interface Routines
    14.5.1     Calling Modes
    14.5.2     Application Flow

  14.6    RUSL Callback Routines

  14.7    RUSL$LIBRARY Definition Files

  14.8    RUSL Buffers

  14.9    RUSL Literals

  14.10   Building a RUSL Application

  14.11   RUSL and ELK

  14.12   RUSL and VAS

  15     Sample Add Page Operation

  15.1    Adding a Display Page
    15.1.1     What Happens:  Programmer's View
    15.1.2     What Happens:  Information Provider's View

  15.2    Expanded Add Page Application
    15.2.1     What Happens:  Programmer's View

  15.3    Other Programming Language Add Page Examples

  16     Sample Extract Page Operation

  16.1    What Happens:  Programmer's View

  16.2    What Happens:  Information Provider's View

  17     Sample Multithreaded Application

  17.1    What Happens:  Programmer's View

  17.2    What Happens:  Information Provider's View

  17.3    Building the Sample Application

  18     RUSL Interface Routines

  RUSL$ADD_KEYWORD

  RUSL$ADD_PAGE

  RUSL$CONNECT

  RUSL$DELETE_KEYWORD

  RUSL$DELETE_PAGE

  RUSL$DISCONNECT

  RUSL$EXTRACT_KEYWORD

  RUSL$EXTRACT_PAGE

  RUSL$FREE_BUFFER

  RUSL$GET_BUFFER

  RUSL$START_APPL

  RUSL$STOP_APPL

  19     RUSL Callback Routines

  AST_COMP_RTN

  ETX_RTN

  FORM_RTN

  GLOBAL_BREAK_RTN

  KWD_RTN

  LCR_PROMPT_RTN

  LCR_RTN

  PCR_RTN

  PDR_PROMPT_RTN

  PDR_RTN

  20     RUSL Buffers

  20.1    Forms Definition Buffer

  20.2    Keyword Buffer

  20.3    LCRREC Buffer

  20.4    PCR-Fixed Buffer

  20.5    PCR Keyword Buffer

  20.6    PCR Menu Buffer

  20.7    PCR Remote Buffer

  20.8    PDR Buffer

  20.9    Session Context Block Buffer
    20.9.1     Extended SCB

  20.10   RUSL Buffer Formats

  21     RUSLDEF.BAS Listing

  22     Sample Keyword Operations Application

  23     Determining Maximum Menu Choices and List Menu Entries

  23.1    Determining Page Number Size

  23.2    Determining the Maximum Byte Count

  24     Migrating RUSL Applications to VAX VTX/VALU Version 4.0

  24.1    BASIC Application Changes
    24.1.1     General Changes in BASIC Applications
    24.1.2     Session Identifier in BASIC Applications
    24.1.3     Keyword Access in PCRKWD in BASIC Applications
    24.1.4     Field Access in FRMDEF in BASIC Applications
    24.1.5     Menu Choice Access in PCRMNU in BASIC Applications

  24.2    C Application Changes
    24.2.1     Up-Front Declarations in C Applications
    24.2.2     Inline Code in C Applications

  24.3    FORTRAN Application Changes
    24.3.1     Up-Front Declarations in FORTRAN Applications
    24.3.2     Inline Code in FORTRAN Applications

  24.4    Pascal Application Changes
    24.4.1     Up-Front Declarations in Pascal Applications
    24.4.2     Inline Code in Pascal Applications

  25     RUSL Status Codes

  Part IV    VTX/VALU Guide to ELK

  26     ELK Overview

  26.1    VAP Rules and Concepts
    26.1.1     Starting a Session
    26.1.2     Stopping a Session
    26.1.3     Understanding Backward and Forward VAP Messages

  26.2    Supported Programming Languages

  26.3    Compiling an ELK Application

  26.4    Linking an ELK Application

  26.5    Starting an ELK Application
    26.5.1     Running an Application
    26.5.2     Declaring an Application
    26.5.3     Using a Startup Command File

  26.6    Multiple-Session or Single-Session Programs
    26.6.1     Synchronous or Asynchronous Programs

  27     ELK Programming Concepts

  27.1    What Happens:  Programmer's View

  27.2    What Happens:  Subscriber's View

  28     Exchanging Data and Invoking Infobase Pages

  28.1    What Happens:  Programmer's View

  28.2    What Happens:  Subscriber's View

  28.3    Programmer/Information Provider Interaction

  28.4    VTX Page Numbering

  28.5    Invoking Infobase Pages
    28.5.1     Invoking a Display Page
    28.5.2     Invoking a Menu Page
    28.5.3     Invoking a Form Page

  29     Creating Pages Dynamically

  29.1    What Happens:  Programmer's View

  29.2    What Happens:  Subscriber's View

  29.3    Generating Pages
    29.3.1     Generating a Display Page
    29.3.2     Generating a Menu Page
      29.3.2.1     Application-Formatted Menu Page
      29.3.2.2     TCP-Formatted Menu Page
    29.3.3     Generating a Form Page
    29.3.4     Generating a Help Page
    29.3.5     Generating Pages:  Some Considerations

  30     Handling Concurrent Sessions

  30.1    What Happens:  Programmer's View
    30.1.1     Maintaining Session Context
    30.1.2     Handling Backward Messages
    30.1.3     Connect Routine
    30.1.4     Input Routine
    30.1.5     Disconnect Routine
    30.1.6     Status Routine
    30.1.7     Token Granted Routine

  30.2    What Happens:  Subscriber's View

  31     Asynchronous ELK Applications

  31.1    What Happens:  Programmer's View

  31.2    Responding to Backward Messages

  31.3    Creating the Dispatch Table

  31.4    Specifying the Dispatch Table

  31.5    What Happens:  Subscriber's View

  32     ELK Interface Routines

  ELK$ASCII_TO_VTXPAGE

  ELK$CREATE_SCB

  ELK$DELETE_SCB

  ELK$DISABLE_CONNECT

  ELK$ENABLE_CONNECT

  ELK$FREE_BUFFER

  ELK$GET_BUFFER

  ELK$RECEIVE

  ELK$SEND

  ELK$START_APPL

  ELK$STOP_APPL

  ELK$VTXPAGE_TO_ASCII

  33     ELK Forward Message Codes

  33.1    Disabling the PRINT/ALL and SAVE/ALL Commands

  33.2    Buffer Formats

  33.3    ELK$KF_BREAK

  33.4    ELK$KF_CONFIRM

  33.5    ELK$KF_DISPLAY_PAGE
    33.5.1     ELK$KF_DSPLAY_FORM
    33.5.2     ELK$KF_DSPLAY_KEYWORD
    33.5.3     ELK$KF_DSPLAY_PAGE
    33.5.4     ELK$KF_DSPLAY_RELATIVE_NEXT
    33.5.5     ELK$KF_DSPLAY_RELATIVE_PREV
    33.5.6     ELK$KF_DSPLAY_REPEAT

  33.6    ELK$KF_FORCEPAGE

  33.7    ELK$KF_FORMGET

  33.8    ELK$KF_LOG

  33.9    ELK$KF_OUTPUT
    33.9.1     ELK$KF_OUTPUT_ABORT
    33.9.2     ELK$KF_OUTPUT_ACCESS
    33.9.3     ELK$KF_OUTPUT_APPROP
    33.9.4     ELK$KF_OUTPUT_AVAIL
    33.9.5     ELK$KF_OUTPUT_DYNMENU
    33.9.6     ELK$KF_OUTPUT_ETX
    33.9.7     ELK$KF_OUTPUT_FORMDEF
    33.9.8     ELK$KF_OUTPUT_MENU
    33.9.9     ELK$KF_OUTPUT_NYI
    33.9.10    ELK$KF_OUTPUT_OK
    33.9.11    ELK$KF_OUTPUT_PAGE
    33.9.12    ELK$KF_OUTPUT_PRESENT
    33.9.13    ELK$KF_OUTPUT_SYNTAX
    33.9.14    ELK$KF_OUTPUT_TITLE

  33.10   ELK$KF_REQUEST_TOKEN

  34     ELK Backward Message Codes

  34.1    ELK$KB_CONNECT

  34.2    ELK$KB_DISCONNECT

  34.3    ELK$KB_INPUT Messages
    34.3.1     ELK$KB_INPUT_BACKUP
    34.3.2     ELK$KB_INPUT_CHOICE
    34.3.3     ELK$KB_INPUT_FORMDATA
    34.3.4     ELK$KB_INPUT_GETAGAIN
    34.3.5     ELK$KB_INPUT_HELP
    34.3.6     ELK$KB_INPUT_NEXTPAGE
    34.3.7     ELK$KB_INPUT_PREVPAGE

  34.4    ELK$KB_STATUS

  34.5    ELK$KB_TOKEN_GRANTED

  35     Using ELK as a Server

  35.1    Declaring an Application to Be a Server

  35.2    Additional Capabilities
    35.2.1     ELK Backward Messages Received Only by Servers
      35.2.1.1     ELK$KB_INPUT_DIRECT
      35.2.1.2     ELK$KB_INPUT_KEYWORD
      35.2.1.3     ELK$KB_INPUT_SETMARK
      35.2.1.4     ELK$KB_INPUT_TOMARK
      35.2.1.5     ELK$KB_INPUT_MAINMENU
      35.2.1.6     ELK$KB_WHERE
    35.2.2     ELK Forward Messages Sent Only by Servers
      35.2.2.1     ELK$KF_OUTPUT_MARK
      35.2.2.2     ELK$KF_OUTPUT_KEYWORD
      35.2.2.3     ELK$KF_OUTPUT_NODIRECT
      35.2.2.4     ELK$KF_HERE

  35.3    Responsibilities and Restrictions

  36     ELK Application Protocol Rules

  37     ELK Dispatch Routines

  Dispatch Routine Call Format

  38     Listing of VTXELKDEF.BAS

  39     Sample ELK Applications

  40     ELK Return Status Codes

  EXAMPLES

  2-1        VAS.COM Listing

  3-1        Annotated TDS File

  4-1        VAS Sample Transaction Definition 1

  4-2        VAS Sample Transaction Definition 2

  4-3        VAS Sample Transaction Definition 3

  4-4        VAS Sample Transaction Definition 4

  6-1        Sample CURs

  8-1        Sample DECnet Application (FORTRAN)

  8-2        Sample Transaction Definition Calling DECnet Application

  8-3        Sample DECnet Application (BASIC)

  8-4        Sample DECnet Application (COBOL)

  8-5        Sample DECnet Application (Pascal)

  9-1        Sample X.25 Application

  10-1       Sample PL/1 CICS Transaction

  11-1       Sample START CHANNEL Command

  11-2       Sample ISAM Read Transaction

  12-1       Sample Startup Procedure

  12-2       Sample Record Definition File

  12-3       Sample VAS Transaction Definitions

  12-4       Sample WRITE and DELETE Functions

  12-5       Sample SCAN Function

  12-6       Sample CUR

  15-1       Sample RUSL Program-Adding a Display Page

  15-2       Sample Program Execution

  15-3       Sample RUSL Program-Adding Pages

  15-4       BLISS Example

  15-5       C Example

  15-6       COBOL Example

  15-7       FORTRAN Example

  15-8       Pascal Example

  16-1       Sample RUSL Program-Extracting Pages

  16-2       Sample Program Execution

  17-1       Sample RUSL Program-Managing Multiple Sessions

  17-2       Sample Program Execution

  17-3       Sample Supplement-Callback and Support Routines

  22-1       Sample RUSL Program Keyword Operations

  26-1       Sample VTX Startup Command File

  27-1       Sample ELK Program 1

  28-1       Sample ELK Program 2

  29-1       Sample ELK Program 3

  30-1       Sample ELK Program 4

  31-1       Sample ELK Program 5

  39-1       C Example

  39-2       COBOL Example

  39-3       FORTRAN Example

  39-4       Pascal Example

  FIGURES

  1-1        Page Request in VTX/VAS Environment

  1-2        Connect Request in the VTX/VAS Environment

  1-3        VAS in the VTX Environment

  1-4        Subscriber/Server Communication

  1-5        Subscriber/Application Communication

  1-6        Similarity of Update Server to RUSL Application

  1-7        VAS and ELK in the VTX Environment

  1-8        Distributed Information Provider Environment

  2-1        Remote Pages Pointing to a VAS Transaction

  2-2        Linking a VTX Infobase Page to a VAS Page

  4-1        Request Buffer Format

  5-1        VTXCTL Commands

  7-1        Remote Communication over a Single Subchannel

  7-2        Remote Communication over Multiple Subchannels

  7-3        Sample Distributed Configuration 1

  7-4        Sample Distributed Configuration 2

  7-5        Sample Distributed Configuration 3

  7-6        VAS/Application Communication

  9-1        VAS Communication over a PSDN

  10-1       DECnet/SNA Distributed Transaction Environment

  10-2       Session Supporting Conversations in Serial Fashion

  10-3       VAS Uses a Session for One Conversation

  10-4       VAS and the SNA Environment

  10-5       Use of Multiple DECnet/SNA Gateways by VAS

  12-1       VAS Component Configuration

  12-2       Application Flow

  12-3       VTX Main Page

  12-4       Sample Application Main Page

  12-5       Dynamically Created Menu Page

  12-6       Selected Record

  14-1       Similarity of VTXUPD with RUSL Application

  14-2       Multiple RUSL Applications Connected to an Update Server

  14-3       Distributed Updating

  14-4       General RUSL Program Logic

  14-5       ELK and RUSL Interaction

  14-6       VAS and RUSL Interaction

  20-1       Extended Session Context Block

  26-1       VTX Application Environment

  26-2          ~~~à~~ð~0~¿~~~~~~~~~~*~~~~~~~~`Àg~«ùy?óó~~~~~~~~~~~~~~~~~~~~~~à~~~à~~0~0~~~~~~~~~~~~c~~~~~~~~``l~«~~13ó~~~~~~~~~