PreviousCommunication Setup Considerations Data Access ServicesNext

Chapter 9: Library Services Connectivity

Library Services Connectivity (LSC) is an automatically installed service of the MVS Mainframe Access server.

LSC enables you to:

LSC provides access to a variety of dataset types on the mainframe, as well as source code control systems such as Librarian, Panvalet, Endevor, and CCC/LCM . In addition, with LSC, you can provide your own code to gain access to any other, or your own in-house, source code control system. By using this feature, client applications such as Revolve and Mainframe Express, through SourceConnect, can access your own source code control system, or other dataset types. Both Drag and Drop, and the Monitor are able to access these in-house systems as well, providing even more power to your workstation. For more detailed instructions on coding to the in-house system interface, review the section later in this chapter.

9.1 Installation

The mainframe component of LSC is automatically installed with the MVS server. If you are using a mainframe source code control system with LSC, such as Librarian, Panvalet, Endevor, CCC/LCM, or your own in-house system, you must make sure that the appropriate source code control system load library is available to the MFA server. This is accomplished either through the system link library list, or as an extra DD statement in the server's STEPLIB. Unless you are going to use LSC to access Endevor members, there are no additional installation requirements. If you are an Endevor user, then you must follow the E/Option installation process. Your system administrator will be able to assist in doing this.

The workstation component of LSC is automatically installed with the various workstation products, such as Mainframe Express or Revolve.

9.2 Mainframe Configuration

LSC is a dynamic environment that does not require any special configuration to execute. Sometimes, however, you may wish to:

9.2.1 Changing the External Program Names Used by LSC

LSC uses various external programs, specifically, to replace Librarian and Panvalet members. The program names provided as default will work for most users, however, it is possible that some installations will require a different program to be called. This is possible, provided that the same information is required by the replacement program as the original, such as input decks, control cards and dataset allocations.

The module, named MFLSCPGM, contains the program names used by LSC. If you want to replace the default program names, then simply alter the constant in the module, and re-assemble and link it into the MFA MVS Server load library. The jobstream $MFALSC, located in the INSTLIB dataset, contains the necessary JCL to re-assemble this module.

9.2.2 Changing the Way that Librarian Directories are Obtained

For the Drag and Drop component, LSC provides the capabilities for either a quick or long directory list to be obtained from the Librarian system. The quick method returns only the member name, but is very fast. The long method returns the member name, as well as the date and type of the member, but is much slower. If your installation is fast enough to handle the slower method in a timely fashion, then you may wish to change the default from quick to long.

The module, named MFLSCPGM, contains information on whether the quick or long list is produced by LSC. If you want to change the default, then simply alter the constant in the module, and re-assemble and link it into the MFA MVS Server load library. The jobstream $MFALSC, located in the INSTLIB dataset, contains the necessary JCL to re-assemble this module.

9.3 Start-up JCL Requirements

In addition to the standard MVS data sets, LSC provides access to host based source code control systems. Usually, the load modules for these systems are part of the MVS environment and do not need to be included in the STEPLIB DD statement but this is not always the case. You may need to append the load library of the host based source code control system to the end of the STEPLIB found in the start-up JCL for the MVS server. See the member $MVSJOB in theINSTLIB installation library for more details.

9.4 Gaining Access to Your Own In-house System

You can provide your own code to gain access to any other, or your own in-house, source code control system. By using this feature, client applications such as Revolve and Workbench, through SourceConnect, can access your own source code control system, or other dataset types. Both Drag and Drop, and the Monitor are able to access these in-house systems as well, providing even more power to your workstation.

To do this, you must provide some assembler code in the source member MFLSCIHS, located in the INSTLIB dataset. This sample member is refreshed with each new release, so do not leave your code changes in this member in this dataset, as the next time that you install MFA, you may overwrite your changes.

The MFLSCIHS module will be called by MFA for all of the in-house system calls. You must provide code in the module for each of the 6 call types that will be made. Once you have done this, then the workstation components can be told about these in-house system datasets, and access will be obtained.

The 6 routines that you must provide code for are:

  1. open
  2. close
  3. search
  4. read
  5. write
  6. done writing

For each logical process, several of these routines will be called. For example, to read a member, the open, read and close routines will be called, with the read routine multiply called, once for each record. In all routines, the return code is placed in register 15, with zero meaning okay, and non-zero meaning not okay, with the exception of the read routines, where non-zero means no more records.

9.4.1 In-house System Open Routine

The open call request that you to dynamically allocate and open the specified dataset and prepare for the next call, which will be one of the read, write or search routine calls. On entry to the open call, the dataset name and the member name will have been filled in and available in the interface control block. In the event of the search call, the member name may be spaces, or if a member is specified, then only those members that begin with the specified characters are desired. If the open call is successful, then the routine is to branch to the IHSEXIT label. If the open call is not successful, you must free off any allocated memory and de-allocate any allocated datasets, then branch to the IHSERROR label.

9.4.2 In-house System Close Routine

The close call request that you to close the currently open dataset and dynamically de-allocate it. You must free off any allocated memory and de-allocate any allocated datasets, then branch to the IHSEXIT label.

9.4.3 In-house System Search Routine

The search call will follow a successful open call, and you are to populate the search return variables in the interface control block with the name, type, date, time and user id for the search or directory record being returned. If any of these values do not exist, you should move spaces to the corresponding field. This routine will be called multiple times as each call is to return only one directory or search record. When no more records are to be returned, branch to the IHSERROR label instead of the normal IHSEXIT label. The field IHSDSMEM will contain spaces if all of the directory entries are wanted, or characters if a partial directory list is desired, based upon the characters specified in this field. It is up to the routine to ensure that only those matching directory entries are returned.

9.4.4 In-house System Read Routine

The read call will follow a successful open call, and you are to return the next record of the member in the interface control block. This routine will be called multiple times as each call is to return only one record. When no more records are to be returned, branch to the IHSERROR label instead of the normal IHSEXIT label.

9.4.5 In-house System Write Routine

The write call will follow a successful open call, and you are to store the given record from the interface control block into the dataset member. This routine will be called multiple times as each call is to give only one record. When no more records are to be given, MFA will call the done writing routine instead of this one, to indicate that no more records are to be provided. The done writing routine is to perform any clean-up necessary prior to the upcoming close call that MFA will make.

9.4.6 In-house System Done Writing Routine

The done writing call will follow zero or more write calls, and you are to perform any necessary clean-up prior to the upcoming close call that MFA will make.

9.4.7 In-house System Interface Control Block

All in-house system calls use an interface control block. This block contains all incoming and outgoing information for each of the calls.

IHSWAREA XL256 your persistant work area available for the duration of the logical function, such as open/read/read/close
IHSDSNAM CL44 dataset name being accessed
IHSDSMEM CL16 member name wanted for a read/write call, or with a search call, only members that begin with these characters are wanted
IHSRTMEM CL16 return area for the search call: member name
IHSRTTYP CL8 return area for the search call: member type, or spaces if none
IHSRTDAT CL8 return area for the search call: date of last update in mm/dd/yy format or spaces if none
IHSRTTIM CL8 return area for the search call: time of last update in hh:mm:ss format or spaces if none
IHSRTUID CL8 return area for the search call: user id who last updated or spaces if none
IHSECORD CL256 I/O area for the read or write call


Copyright © 1999 MERANT International Limited. All rights reserved.
This document and the proprietary marks and names used herein are protected by international law.
PreviousCommunication Setup Considerations Data Access ServicesNext