Optimizing the startup time for an independent integration server

You can optimize an independent integration server to speed up server startup, which is particularly relevant in cloud container environments.

Before you begin

Watch the following video, which demonstrates how to optimize the start-up time of an integration server: How to optimize integration server start-up time

About this task

Server startup can be slower than is desirable, especially when you run in containers with restricted CPU provision, because the server must load every component. Parts of the server that are not needed can be switched of by configuring the server's server.conf.yaml file as described in Configuring an integration server by modifying the server.conf.yaml file. However, while the product does not run the functions that are switched off, the server still loads or creates the underlying resources that would be required if the functions were switched on. Loading the resources adds to the startup time. Server startup time can be reduced by optimizing the server. This process analyses the content of a server's work directory and determines which parts of an integration server are needed at startup. The purpose of optimization is to speed up server startup in cloud container environments. Optimization applies to independent integration servers only and is not suitable for integration servers that are managed by an integration node. Server optimization is suitable when:
  • Server content is fixed for each IntegrationServer run.
  • Server startup times are important and need to be as short as possible.

Procedure

  1. Create an integration server work directory by using the mqsicreateworkdir command as described in mqsicreateworkdir command.
  2. Configure the integration server by modifying the server.conf.yaml file, as described in Configuring an integration server by modifying the server.conf.yaml file.
    You can switch off functions of the server that you do not need. For example:
    
    activityLogEnabled: false # Switch to shut off all activity logging
    cacheOn: false # Switch to shut off the Global Cache
    recordReplayEnabled: false # Switch to shut off Record and Replay

If you intend to populate the integration server work directory with compilable resources such as maps, you must compile the resources. You can compile the resources before you deploy them by completing step 3. Alternatively, you can compile the resources during deployment as described in step 4.

  1. Optional: If you intend to populate the integration server work directory with compilable resources such as maps, you can compile them before you deploy them by using the --compile-maps-and-schemas parameter with the ibmint package command. For more information, see ibmint package command.
  2. Deploy your resources to the integration server work directory by running the ibmint deploy command. If you did not compile any compilable resources such as maps, by completing step 3, you must compile them during deployment by using the --compile-maps-and-schemas parameter when you run the ibmint deploy command. For more information, see ibmint deploy command.
  3. Apply any relevant overrides to the deployed applications flows by running the ibmint apply overrides command, as described in ibmint apply overrides command.
  4. Optimize the startup time for an integration server by running the ibmint optimize server command, as described in ibmint optimize server command.
    When you run this command, the following items in the work directory are analyzed:
    • The server.conf.yaml file.
    • The content of any overrides/server.conf.yaml file is factored in.
    • Deployed resources in the server's run directory.
    • Policy projects in the server's run directory.

    If the command completes successfully, then a server.components.yaml file is written in the server's work directory. A message similar to the following example is output to the console:

    BIP15237I: The components file 'C:\Work\Development\V13\Server1\server.components.yaml' was created. It can be further edited if required.

    For more information about the server.components.yaml file, see Contents of the server.components.yaml file.

What to do next

  • After the server.components.yaml is created, you can edit it directly to enable or disable components by setting them to true or false.
  • If you no longer want the server to be optimized, then you can delete the server.components.yaml file from the work directory. The server then starts up exactly as it did before you optimized it. Unlike server.conf.yaml file, the server.components.yaml file does not support a copy in the overrides directory.