Configuring multiple instances of RSE API

You can configure multiple Remote System Explorer (RSE) API instances behind the Zowe™ API Mediation Layer to enable load balancing and ensure high availability. This configuration distributes the workload evenly across RSE API servers and ensures service continuity when an instance becomes unavailable.

Deploying multiple RSE API instances offers the following benefits:
  • Enhances performance and responsiveness during high load.
  • Maintain user access during planned maintenance or server restarts.
  • Supports seamless scalability by allowing you to add or remove instances as needed.

In the application.yml file, each independent RSE API instance can be defined in the instanceBaseURLs: section. When a REST API request is received by Zowe API Mediation Layer, either from the RSE CLI plug-in, IBM Z® Open Editor, or perhaps another application coded to use the REST APIs, it will be routed to the most available instance.

 instanceBaseUrls:
          - https://<RSEAPI_HOST>:6800/rseapi 
          - https://<RSEAPI_HOST>:6801/rseapi 
          - https://<RSEAPI_HOST>:6802/rseapi 

Example configuration

The following application.yml static definition example shows how to register multiple RSE API instances in the API Gateway configuration file:
services:
  - serviceId: rseapi 
    title: Remote System Explorer API
    description: Remote System Explorer (RSE) API
    catalogUiTileId: ibm.rseapi
    instanceBaseUrls:
      - https://example.domain.com:6800/rseapi/
      - https://example.domain.com:6801/rseapi/
      - https://example.domain.com:6802/rseapi/
    routes:
      - gatewayUrl: /api/v1/
        serviceRelativeUrl: /api/v1/
    authentication:
      scheme: zoweJwt
    apiInfo:
      - apiId: ibm.rseapi
        version: 1.2.3
        gatewayUrl: /api/v1/
        swaggerUrl: https://example.domain.com:6800/rseapi/api-docs/swagger.json
        documentationUrl: https://www.ibm.com/docs/en/explorer-for-zos/3.4.0?topic=api-host-configuration-guide
    customMetadata:
      apiml:
        lb:
          type: authentication
          cacheRecordExpirationTimeInHours: 24

catalogUiTiles:
  ibm.rseapi:
    title: IBM Remote System Explorer
    description: The IBM RSE collection of REST APIs allows working with MVS data
      sets, z/OS UNIX files and commands, JES jobs, TSO commands, and other z/OS components.
Note:
  • The application.yml file must be encoded in UTF-8. If you use the cat command from SSH and the file is rendered, then it is encoded in EBCDIC. You can convert it using the iconv command. For example, by using the following command, you can convert the input file application.ebcdic to UTF-8 characters in the output application.yml file.
    iconv -f IBM-1047 -t UTF-8 application.ebcdic > application.yml
  • RSEAPI_SAF_JWT must be set to false in rseapi.env. For more details, refer to rseapi.env, the RSE API configuration file.