Configuring IMS connections

The ims.connections.json file is the central configuration file for IMS database connections. It is located in the IMS workspace directory and supports a range of optional parameters that control connection behavior, data visibility, performance, SSL security, and diagnostics.

Overview

When you create a connection using the IMS Connections view, the extension generates a minimal ims.connections.json entry. You can edit this file directly to apply any of the advanced settings described in this topic.

Connection properties

The following properties apply to each named connection entry under profiles:

PropertyTypeDescription
dataStoreServerStringThe hostname or IP address of the IMS Connect server.
portNumberIntegerThe TCP/IP port number used to communicate with IMS Connect.
databaseNameStringThe name of the database metadata representing the target IMS database.
metadataSourceStringThe source of database metadata. Accepted values: "IMS Catalog".
fetchSizeIntegerNumber of rows fetched per round trip to the server.
maxRowsIntegerMaximum number of rows returned by a query.
imsIdStringThe identifier of the target IMS system.
imsPlexNameStringThe name of the IMS plex that the target IMS system belongs to.

Show IMS Catalogs

Control visibility of system-level IMS catalog DBDs and PSBs (those with the DFSC prefix) by setting showIMSCatalogs in your connection configuration:

{
  "name": "MyConnection",
  "showIMSCatalogs": false
}

The default value is false, which hides system catalogs. Set to true to reveal them.

SSL certificate management

SSL certificate attributes can be configured for a database profile in ims.connections.json to establish secure connections to IMS.

{
  "profiles": {
    "imsdb": {
      "databaseConnectionName": {
        "dataStoreServer": "imshost.example.com",
        "portNumber": 8895,
        "databaseName": "IMSPROD1",
        "sslConnection": true,
        "sslKeyStoreType": "JKS",
        "sslKeyStoreLocation": "/path/to/keystore.jks",
        "sslTrustStoreLocation": "/path/to/truststore.jks",
        "sslKeyStorePassword": "<keystore-password>",
        "sslTrustStorePassword": "<truststore-password>",
        "sslSecureSocketProtocol": "TLS"
      }
    }
  }
}
AttributeDescription
sslConnectionSet to true to enable SSL for the connection.
sslKeyStoreTypeThe key store format. Accepted value: "JKS".
sslKeyStoreLocationAbsolute path to the key store file (.jks).
sslTrustStoreLocationAbsolute path to the trust store file (.jks).
sslKeyStorePasswordPassword for the key store.
sslTrustStorePasswordPassword for the trust store.
sslSecureSocketProtocolThe SSL protocol to use. Recommended value: "TLS" or "TLSv1.2".

Note: Store key store and trust store files in a secure location. Avoid committing passwords directly to source control. Consider using VS Code secret storage or environment variables to manage credentials.

Tracing and diagnostics

Tracing can be enabled on a per-connection basis to capture detailed diagnostic information about a connection's activity. Trace output is written to a file in the directory specified by traceDirectory.

{
  "traceFile": "imsdb.log",
  "traceFileAppend": true,
  "traceDirectory": "/path/to/logs",
  "traceLevel": -1
}
AttributeDescription
traceFileName of the trace output file.
traceFileAppendSet to true to append to an existing trace file rather than overwriting it.
traceDirectoryAbsolute path to the directory where the trace file is written.
traceLevelVerbosity level for trace output. Use -1 for maximum detail.

Example: ims.connections.json

The following example shows a fully configured ims.connections.json file. It includes an imsdatabases profile with multiple named database connections—one standard, one with SSL and tracing enabled—and an imsconnects profile with IMS system identifier and IMS plex name properties.

{
  "profiles": {
    "imsdatabases": {
      "myConnection": {
        "dataStoreServer": "imshost1.example.com",
        "portNumber": 5555,
        "databaseName": "IMSPROD1",
        "metadataSource": "IMS Catalog",
        "fetchSize": 100,
        "maxRows": 500
      },
      "myConnection2": {
        "dataStoreServer": "imshost2.example.com",
        "portNumber": 5555,
        "databaseName": "IMSTEST1",
        "metadataSource": "IMS Catalog",
        "fetchSize": 100,
        "maxRows": 500
      },
      "ssl-connection": {
        "dataStoreServer": "imshost3.example.com",
        "portNumber": 8895,
        "databaseName": "IMSSEC1",
        "fetchSize": 100,
        "maxRows": 500,
        "sslConnection": true,
        "sslKeyStoreType": "JKS",
        "sslKeyStoreLocation": "/path/to/keystore.jks",
        "sslKeyStorePassword": "<keystore-password>",
        "sslTrustStoreLocation": "/path/to/truststore.jks",
        "sslTrustStorePassword": "<truststore-password>",
        "sslSecureSocketProtocol": "TLSv1.2",
        "traceFile": "imsdb.log",
        "traceFileAppend": true,
        "traceDirectory": "/path/to/logs",
        "traceLevel": -1,
        "metadataSource": "IMS Catalog"
      }
    },
    "imsconnects": {
      "myImsConnect": {
        "dataStoreServer": "imshost4.example.com",
        "portNumber": 9989,
        "imsId": "IMS1",
        "imsPlexName": "PLEX1"
      }
    }
  }
}