Edit Performance Configuration Settings

You can edit performance configuration settings using a tuning utility.

To reach the level of performance you require, you may have to allocate the following items in higher or lower quantity to specific components of Sterling B2B Integrator:
  • System memory
  • JVM parameters for server
  • JVM parameters for container nodes
  • BP Queue
  • Cache
  • Purge settings
  • Database connection pools
  • Queue settings

You can use the Performance Tuning Utility to edit the performance configuration using the settings calculated by the system. Alternatively, if you have specific requirements, you can edit the existing performance configuration without using the settings calculated by the system.

The settings modified using the performance tuning utility are stored in the tuning.properties file, which updates other properties files with the modified values. However, if you change the settings in other properties files, they are not updated in the tuning.properties file. If you are manually changing the performance configuration settings, ensure that you make the changes only in the tuning.properties file.

If you are running in a cluster environment, you should apply performance configuration settings for each node separately by running the performance tuning utility in all the nodes.

After editing the tuning.properties file, you need to do the following to pick up the new property values:

  1. In the tuningFormulas.properties file, change the TUNING_PROPS_UPDATED property to TRUE.
  2. Run the setupfiles.sh or setupfiles.cmd command.
  3. Run the run.sh or startWindowsService.cmd command.
To edit your performance configuration:
  1. From the Administration menu, select Operations > System > Performance > Tuning.
  2. In the Performance Tuning page, under Edit, next to Edit Performance Configuration, click Go!.
  3. On clicking Go!, the Performance Tuning UI lock-enabled message is displayed:

    Performance Tuning UI lock enabled. Lock will be released only by clicking on Cancel or Finish in the wizard.

  4. Click OK. If the lock is not released or if you close the page without clicking Cancel or Finish, you must use the Lock Manager function to release the lock.
  5. In the System page that is displayed, decide whether you want to use the current settings.

    • If yes, click Next.
    • If no, enter information in the following fields and click Next.
      Field / Description

      Tuning Formula or Default Value

      (Default value is provided if there is no tuning formula)

      Physical memory (MB) allocated to Platform

      Amount of memory allocated for use in processing operations.

      It is recommended that you use a minimum value of 512-1024 MB for this field, based on your system. Although there is no minimum value for this field, a value lower than the recommended setting could harm performance.

      tuning.properties Property:

      MEMORY

      Not applicable

      Number of Server Nodes

      The number of server nodes installed.

      CAUTION:
      This cannot be changed from the default value of 1, regardless of the number of nodes in the installation.
      Note: The Number of Server Nodes field is not displayed in iSeries environment.

      tuning.properties Property:

      NUM_ASI_NODES

      Not applicable

      Number of Container Nodes

      The number of container nodes installed.

      Ensure that you enter the correct number of container nodes installed. If you change the number of container nodes, the performance tuning utility will not install additional container nodes. The performance tuning utility will suggest changes to the number of nodes entered in this field instead of the actual number of nodes installed, which if accepted will lead to unnecessary resource allocation.

      If you add a container to the system after the initial installation, you will have to ensure that the proper amount of memory has been allocated to the container nodes, using the Physical Memory Allocated to Container (MB) field on the JVM Parameters for Container Nodes page.

      Note: Number of Container Nodes field is not displayed in iSeries environment.

      tuning.properties Property:

      NUM_CONTAINER_NODE

      Not applicable

      Allocate memory for BI Listeners

      Select True from the drop-down list if you want to allocate memory for BI listeners from the physical memory allocated to Sterling B2B Integrator.

      By default, 256 MB memory is allocated for BI listeners.

      If you select False from the drop-down list, the memory for BI listeners will not be allocated from the physical memory allocated to Sterling B2B Integrator which may lead to improper memory management.

      tuning.properties Property:

      IS_DEDUCT_MEM_BI

      Default value: False

      Allocate memory for Active MQ (V5.2.6.3 or earlier versions)
      Important: Active MQ is no longer included with Sterling B2B Integrator from V5.2.6.4 or later versions.

      Select True from the drop-down list if you want to allocate memory for Active MQ messaging service from the physical memory allocated to Sterling B2B Integrator.

      By default, 512 MB memory is allocated for the Active MQ messaging service.

      If you select False from the drop-down list, the memory for Active MQ messaging service will not be allocated from the physical memory allocated to Sterling B2B Integrator, which may lead to improper memory management.

      tuning.properties Property:

      IS_DEDUCT_MEM_ACTIVEMQ

      Default value: False

      Allocate memory for SAP Adapter

      Select True from the drop-down list if you want to allocate memory for the SAP Adapter from the physical memory allocated to Sterling B2B Integrator.

      By default, 256 MB memory is allocated for the SAP Adapter.

      If you select False from the drop-down list, memory for the SAP Adapter will not be allocated from the physical memory allocated to Sterling B2B Integrator, which may lead to improper memory management.

      tuning.properties Property:

      IS_DEDUCT_MEM_SAPADAPTER

      Default value: False

      Allocate memory for Command Line Adapter

      Select True from the drop-down list if you want to allocate memory for Command Line Adapter from the physical memory allocated to Sterling B2B Integrator.

      By default, 128 MB memory is allocated for the Command Line Adapter.

      If you select False from the drop-down list, the memory for Command Line Adapter will not be allocated from the physical memory allocated to Sterling B2B Integrator, which may lead to improper memory management.

      tuning.properties Property:

      IS_DEDUCT_MEM_CLADAPTER

      Default value: False

      Memory will be allocated for Ops Server

      The memory will be automatically allocated to the ops server. You cannot edit the memory allocated to the ops server.

      By default, 128 MB memory is allocated for the ops server.

      tuning.properties Property:

      MEMORY_OPS

      Not applicable

      Click Next.

  6. In the JVM Parameters for Server page that is displayed, decide whether you want to use the current settings or the suggested settings.

    Note: Click Fill Current displayed in all pages to retain the current settings.
    • If yes, click Fill Suggested.
    • If no, enter information in the following fields:
      Field / Description

      Tuning Formula or Default Value

      (Default value is provided if there is no tuning formula)

      Physical Memory Allocated to Server (MB)

      Amount of physical memory allocated to each server node.

      Note: Ensure that the physical memory allocated to server nodes, container nodes, and maximum permanent generation size for both server nodes and container nodes should not exceed the physical memory allocated to Sterling B2B Integrator.

      tuning.properties Property:

      MEMORY_ASI

      Default value (MB): 1536

      A minimum of 1536 MB is allocated to each server node out of the total physical memory allocated to Sterling B2B Integrator.

      However, if there is additional physical memory available after allocating minimum memory to all the server nodes and the container nodes, the memory is split between server nodes and container nodes. By default, the server nodes are allocated with three-fourths out of the available memory and the container nodes are allocated with one-fourths out of the available memory. The additional memory is calculated using the following formula:

      ((((Physical memory allocated to Platform - (Number of server nodes * Minimum memory allocated to the server nodes)) - (Number of server nodes * Maximum permanent generation size allocated to server nodes)) - (Number of container nodes * Maximum permanent generation size allocated to container nodes)) – Memory allocated to the ops server)

      For example, let us consider that two server nodes and one container node is present. After allocating memory to the two server nodes and one container node, 200 MB additional memory is available, each server node is allocated 75 MB memory and the container node is allocated 50 MB memory. You can also change the additional memory allocation ratio. The additional memory allocation ratio is calculated using the following formula:

      (((Additional memory available - Physical memory allocated to container nodes) * 0.75)/Number of server nodes)

      Initial Heap Size (MB)

      Controls the initial size of a Java™ heap allocated to each server JVM.

      If this is tuned correctly, it can reduce the overhead associated with garbage collection by improving the server response time and throughput.

      If you see a large number of minor garbage collections, the default value set to this parameter might be too low. Try increasing it.

      Based on your operating system and architecture, the parameters are provided in the following list:
      • HP-UX 32-bit: (HP-UX.INIT_HEAP)
      • HP-UX 64-bit: (HP-UX-64.INIT_HEAP)
      • IBM® AIX® 32-bit: (AIX.INIT_HEAP)
      • IBM AIX 64-bit: (AIX-64.INIT_HEAP)
      • Sun Solaris 32-bit: (SunOS.INIT_HEAP)
      • Sun Solaris 64-bit: (SunOS-64.INIT_HEAP)
      • Linux® 32-bit: (Linux.INIT_HEAP)
      • Linux 64-bit: (Linux-64.INIT_HEAP)
      • Windows 32-bit: (Windows.INIT_HEAP)
      • Windows 64-bit: (Windows-64.INIT_HEAP)
      • IBM iSeries OS/400®: (OS400.INIT_HEAP)
      • IBM OS/390®: (OS390.INIT_HEAP)

      tuning.properties Property:

      [operating system].INIT_HEAP

      Based on your operating system and architecture, the formulae are provided in the following list:
      • HP-UX 32-bit:

        If memory allocated to the server node is greater than or equal to 3068 MB, it allocates 3068 MB. Else, if the memory allocated to server node is lesser than or equal to 512 MB, it allocates 512 MB. If the memory allocated is greater than 512 MB, but lesser than 3068 MB, it allocates the memory allocated to each server node.

      • HP-UX 64-bit:

        if (MEMORY_ASI >= 3068, MEMORY_ASI, if (MEMORY_ASI <= 512, 512, MEMORY_ASI))

      • IBM AIX 32-bit:

        (0.5 * Physical memory allocated to server node)

      • IBM AIX 64-bit:

        if (MEMORY_ASI >= 3328, MEMORY_ASI, if (MEMORY_ASI <= 1024, 512, round(0.5 * MEMORY_ASI)))

      • Sun Solaris 32-bit:

        If memory allocated to the server node is greater than or equal to 3900 MB, it allocates 3900 MB. Else, if the memory allocated to server node is lesser than or equal to 512 MB, it allocates 512 MB. If the memory allocated is greater than 512 MB, but lesser than 3900 MB, it allocates the memory allocated to each server node.

      • Sun Solaris 64-bit:

        if (MEMORY_ASI >= 3900, MEMORY_ASI, if (MEMORY_ASI <= 512, 512, MEMORY_ASI))

       
      • Linux 32-bi:

        (0.5 * Physical memory allocated to server node)

      • Linux 64-bit:

        =if (MEMORY_ASI >= 2036, MEMORY_ASI, if (MEMORY_ASI <= 1024, 512, round(0.5 * MEMORY_ASI)))

      • Windows 32-bit:

        if (MEMORY_ASI >= 1536, 768, if (MEMORY_ASI <= 1024, 512, round(0.5 * MEMORY_ASI)))

      • Windows 64-bit:

        if (MEMORY_ASI >= 1536, MEMORY_ASI, if (MEMORY_ASI <= 1024, 512, round(0.5 * MEMORY_ASI)))

      • IBM iSeries OS/400:

        If memory allocated to the server node is greater than or equal to 2048 MB, it allocates 2048 MB. Else, if the memory allocated to server node is lesser than or equal to 512 MB, it allocates 512 MB. If the memory allocated is greater than 512 MB, but lesser than 2048 MB, it allocates the memory allocated to each server node.

      • IBM OS/390:

        If memory allocated to the server node is greater than or equal to 2048 MB, it allocates 2048 MB. Else, if the memory allocated to server node is lesser than or equal to 512 MB, it allocates 512 MB. If the memory allocated is greater than 512 MB, but lesser than 2048 MB, it allocates the memory allocated to each server node.

      Maximum Heap Size (MB)

      Controls the maximum size of a Java heap allocated to each server JVM.

      If this parameter is tuned correctly, it can:
      • Reduce the overhead associated with the garbage collection and the risk of encountering an Out-Of-Memory (OOM) condition
      • Improve the server response time and throughput

      If you see a large number of garbage collections, try increasing the value. Based on the Operation System (OS), and whether it is a 32-bit JVM or 64-bit JVM, and the available memory, the maximum value that you can go up to will change.

      Based on your operating system and architecture, the parameters are provided in the following list:
      • HP-UX 32-bit: (HP-UX.MAX_HEAP)
      • HP-UX 64-bit: (HP-UX-64.MAX_HEAP)
      • IBM AIX 32-bit: (AIX.MAX_HEAP)
      • IBM AIX 64-bit: (AIX-64.MAX_HEAP)
      • Sun Solaris 32-bit: (SunOS.MAX_HEAP)
      • Sun Solaris 64-bit: (SunOS-64.MAX_HEAP)
      • Linux 32-bit: (Linux.MAX_HEAP)
      • Linux 64-bit: (Linux-64.MAX_HEAP)
      • Windows 32-bit: (Windows.MAX_HEAP)
      • Windows 64-bit: (Windows-64.MAX_HEAP)
      • IBM iSeries OS/400: (OS400.MAX_HEAP)
      • IBM OS/390: (OS390.MAX_HEAP)

      tuning.properties Property:

      [operating system].MAX_HEAP

      Based on your operating system and architecture, the formulae are provided in the following list:
      • HP-UX 32-bit:

        If memory allocated to the server node is greater than or equal to 3068 MB, it allocates 3068 MB. Else, if the memory allocated to server node is lesser than or equal to 512 MB, it allocates 512 MB. If the memory allocated is greater than 512 MB, but lesser than 3068 MB, it allocates the memory allocated to each server node.

      • HP-UX 64-bit:

        if (MEMORY_ASI >= 3068, MEMORY_ASI, if (MEMORY_ASI <= 512, 512, MEMORY_ASI))

      • IBM AIX 32-bit:

        If memory allocated to the server node is greater than or equal to 3328 MB, it allocates 3328 MB. Else, if the memory allocated to server node is lesser than or equal to 512 MB, it allocates 512 MB. If the memory allocated is greater than 512 MB, but lesser than 3328 MB, it allocates the memory allocated to each server node.

      • IBM AIX 64-bit:

        if (MEMORY_ASI >= 3328, MEMORY_ASI, if (MEMORY_ASI <= 512, 512, MEMORY_ASI))

       
      • Sun Solaris 32-bit:

        If memory allocated to the server node is greater than or equal to 3900 MB, it allocates 3900 MB. Else, if the memory allocated to server node is lesser than or equal to 512 MB, it allocates 512 MB.

      • Sun Solaris 64-bit:

        if (MEMORY_ASI >= 3900, MEMORY_ASI, if (MEMORY_ASI <= 512, 512, can set a maximum heap limit of 4 GB for MEMORY_ASI))

      • Linux 32-bit:

        If memory allocated to the server node is greater than or equal to 2036 MB, it allocates 2036 MB. Else, if the memory allocated to server node is lesser than or equal to 512 MB, it allocates 512 MB. If the memory allocated is greater than 512 MB, but lesser than 2036 MB, it allocates the memory allocated to each server node.

      • Linux 64-bit:

        if (MEMORY_ASI >= 2036, MEMORY_ASI, if (MEMORY_ASI <= 512, 512, MEMORY_ASI))

       
      • Windows 32-bit:

        if (MEMORY_ASI >= 1280, 1280, if (MEMORY_ASI <= 512, 512, MEMORY_ASI))

      • Windows 64-bit:

        if (MEMORY_ASI >= 1536, MEMORY_ASI, if (MEMORY_ASI <= 512, 512, MEMORY_ASI))

      • IBM iSeries OS/400:

        If memory allocated to the server node is greater than or equal to 2048 MB, it allocates 2048 MB. Else, if the memory allocated to server node is lesser than or equal to 512 MB, it allocates 512 MB. If the memory allocated is greater than 512 MB, but lesser than 2048 MB, it allocates the memory allocated to each server node.

      • IBM OS/390:

        If memory allocated to the server node is greater than or equal to 2048 MB, it allocates 2048 MB. Else, if the memory allocated to server node is lesser than or equal to 512 MB, it allocates 512 MB. If the memory allocated is greater than 512 MB, but lesser than 2048 MB, it allocates the memory allocated to each server node.

      Initial Size of New (Nursery) Heap (MB)

      Controls the initial size of the new heap area allocated to each server JVM.

      It is used with the throughput/parallel collector instead of the JVM built-in tuning the parameter provides.

      Based on your operating system and architecture, the parameters are provided in the following list:
      • HP-UX 32-bit: (HP-UX.INIT_AGE)
      • HP-UX 64-bit: (HP-UX-64.INIT_AGE)
      • IBM AIX 32-bit: (AIX.INIT_AGE)
      • IBM AIX 64-bit: (AIX-64.INIT_AGE)
      • Sun Solaris 32-bit: (SunOS.INIT_AGE)
      • Sun Solaris 64-bit: (SunOS-64.INIT_AGE)
      • Linux 32-bit: (Linux.INIT_AGE)
      • Linux 64-bit: (Linux-64.INIT_AGE)
      • Windows 32-bit: (Windows.INIT_AGE)
      • Windows 64-bit: (Windows-64.INIT_AGE)
      • IBM iSeries OS/400: (OS400.INIT_AGE)
      • IBM OS/390: (OS390.INIT_AGE)

      tuning.properties Property:

      [operating system].INIT_AGE

      (0.33333 * Initial size of heap memory allocated to the server node)

      AIX 64-bit: AIX-64.INIT_AGE=256

      Linux 64-bit: Linux-64.INIT_AGE=256

      Windows 32-bit: Windows.INIT_AGE=round(0.33333 * Windows.INIT_HEAP)

      HP 64-bit: HP-UX-64.INIT_AGE=round(0.33333 * HP-UX-64.INIT_HEAP)

      Sun 64--bit: SunOS-64.INIT_AGE=round(0.33333 * SunOS-64.INIT_HEAP)

      Windows 64-bit: Windows-64.INIT_AGE=round(0.33333 * Windows-64.INIT_HEAP)

      Maximum Size of New (Nursery) Heap (MB)

      Controls the maximum size of the new heap area allocated to each server JVM.

      Based on your operating system and architecture, the parameters are provided in the following list:
      • HP-UX 32-bit: (HP-UX.MAX_AGE)
      • HP-UX 64-bit: (HP-UX-64.MAX_AGE)
      • IBM AIX 32-bit: (AIX.MAX_AGE)
      • IBM AIX 64-bit: (AIX-64.MAX_AGE)
      • Sun Solaris 32-bit: (SunOS.MAX_AGE)
      • Sun Solaris 64-bit: (SunOS-64.MAX_AGE)
      • Linux 32-bit: (Linux.MAX_AGE)
      • Linux 64-bit: (Linux-64.MAX_AGE)
      • Windows 32-bit: (Windows.MAX_AGE)
      • Windows 64-bit: (Windows-64.MAX_AGE)
      • IBM iSeries OS/400: (OS400.MAX_AGE)
      • IBM OS/390: (OS390.MAX_AGE)

      tuning.properties Property:

      [operating system].MAX_AGE

      (0.5 * Maximum size of heap memory allocated to the server node)

      AIX 64-bit: AIX-64.MAX_AGE=512

      Linux 64-bit: Linux-64.MAX_AGE=512

      Windows 32-bit: Windows.MAX_AGE=round(0.33333 * Windows.MAX_HEAP)

      HP 64-bit: HP-UX-64.MAX_AGE=round(0.33333 * HP-UX-64.MAX_HEAP)

      Sun 64-bit: SunOS-64.MAX_AGE=round(0.33333 * SunOS-64.MAX_HEAP)

      Windows 64-bit: Windows-64.MAX_AGE=round(0.33333 * Windows-64.MAX_HEAP)

      Maximum Permanent Generation Size (MB)

      Controls the maximum size of the permanent generation heap allocated to the server JVM. It stores all the class code and class-like data.

      The value of the parameter should be large enough to fit all the classes that are concurrently loaded. Sometimes, it is difficult to determine the actual value of this parameter because generally, this region is smaller and expands slowly, and the utilization is commonly observed at 99-100 percent of its current capacity. If you have not configured this region correctly, the JVM might fail with the error.

      Based on your operating system and architecture, the parameters are provided in the following list:
      • HP-UX 32-bit: (HP-UX.MAX_PERM_SIZE)
      • HP-UX 64-bit: (HP-UX-64.MAX_PERM_SIZE)
      • IBM AIX 32-bit: (AIX.MAX_PERM_SIZE)
      • IBM AIX 64-bit: (AIX-64.MAX_PERM_SIZE)
      • Sun Solaris 32-bit: (SunOS.MAX_PERM_SIZE)
      • Sun Solaris 64-bit: (SunOS-64.MAX_PERM_SIZE)
      • Linux 32-bit: (Linux.MAX_PERM_SIZE)
      • Linux 64-bit: (Linux-64.MAX_PERM_SIZE)
      • Windows 32-bit: (Windows.MAX_PERM_SIZE)
      • Windows 64-bit: (Windows-64.MAX_PERM_SIZE)
      • IBM iSeries OS/400: (OS400.MAX_PERM_SIZE)
      • IBM OS/390: (OS390.MAX_PERM_SIZE)

      tuning.properties Property:

      [operating system].MAX_PERM_SIZE

      Based on your operating system and architecture, Sterling B2B Integrator allocates the following values (in MB):

      • HP-UX (32-bit and 64-bit): 512
      • IBM AIX (32-bit and 64-bit): 384
      • Sun Solaris (32-bit and 64-bit): 384
      • Linux (32-bit and 64-bit): 384
      • Windows 32-bit: 256
      • Windows 64-bit: 384
      • IBM iSeries OS/400: 384
      • IBM OS/390: 384
      Thread Stack Size (KB)

      Controls the maximum Java stack size for any thread.

      tuning.properties Property:

      [operating system].STATIC_STACK

      Based on your operating system and architecture (in KB):

      • HP-UX 32-bit: 384
      • HP-UX 64-bit: 512
      • IBM AIX (32-bit and 64-bit): 256
      • Sun Solaris (32-bit and 64-bit): 256
      • Linux (32-bit and 64-bit): 256
      • IBM iSeries OS/400 (32-bit and 64-bit): 256
      • IBM OS/390 (32-bit and 64-bit): 256
      • Windows (32-bit and 64-bit): 256
      Enable Heap Dump on Out of Memory

      Select True from the drop-down list if you want to generate a heapdump when the server JVM encounters an out of memory error.

      Heapdumps are useful for troubleshooting memory-related issues since they contain all the live objects used by the Java application. With this information, the objects that are using large amounts of memory can be identified. The contents of a heapdump can also help a user understand why objects cannot be freed by the Garbage Collector.

      By default, the dump file is generated from where the JVM was started (the install_dir/bin directory).

      If you select False from the drop-down list, heapdumps are not generated when the server JVM encounters an out of memory error.

      tuning.properties Property:

      ENABLE_HEAP_DUMP_OOB

      Default value: True

      Enable Heap Dump on Sigquit/Ctrl-break
      Note: This field is not supported in the 1.6 version of the Sun JDK. It will display if you are using the IBM JDK.
      Select True from the drop-down list if you want to request a heapdump for the server JVM using Sigquit command or pressing Ctrl+Break for server JVM.

      By default, the dump file is generated from where the JVM was started (the install_dir/bin directory).

      If you select False from the drop-down list, heapdumps are not generated if you run Sigquit command or press Ctrl+Break.

      tuning.properties Property:

      ENABLE_HEAP_DUMP_SGTQCRTLBRK

      Default value: True

      Enable VerboseGC

      Select True from the drop-down list if you want to generate verbose garbage collection data for server JVM.

      JVM Verbose garbage collection (GC) statistics are critical. It is recommended to enable verbose garbage collection when you are debugging your instance. These statistics can be used to understand the behavior of the JVM heap management and the efficiency of the JVM.

      If you select False from the drop-down list, verbose garbage collection will be disabled.

      tuning.properties Property:

      ENABLE_VERBOSE_GC

      Default value: False

      JVM Arguments Prefix

      Determines the arguments set as JVM parameters before other JVM flags are set for server JVM.

      Ensure that you enter correct values in this field. Else, the server JVM might fail to start.

      For example, -XX:SurvivorRatio parameter optimizes the object creation and object preservation ratio.

      tuning.properties Property:

      JVM_ARGS_PREFIX

      Default value: BLANK

      JVM Arguments Suffix

      Determines the arguments set as JVM parameters after other JVM flags are set for server JVM.

      Ensure that you enter correct values in this field. Else, the server JVM might fail to start.

      For example, -Xnoclassgc parameter disables dynamic class unloading.

      tuning.properties Property:

      JVM_ARGS_SUFFIX

      Default value: BLANK

      Click Next.

  7. In the JVM Parameters for Container Nodes page that is displayed, decide whether you want to use the current settings or the suggested settings.
    • If yes, click Fill Suggested.
    • If no, enter information in the following fields:
      Field / Description

      Tuning Formula or Default Value

      (Default value is provided if there is no tuning formula)

      Physical Memory Allocated to Container (MB)

      Amount of physical memory allocated to each container node.

      Ensure that the physical memory allocated to server nodes, container nodes, and maximum permanent generation size for both server nodes and container nodes should not exceed the physical memory allocated to Sterling B2B Integrator.

      If you add a container to the system after the initial installation, you will have to ensure that the proper amount of memory has been allocated to the container nodes, using this field.

      tuning.properties Property:

      MEMORY_CONTAINER

      Default value (MB): 512

      A minimum of 512 MB is allocated to each container node out of the total physical memory allocated to Sterling B2B Integrator.

      However, if there is additional physical memory available after allocating minimum memory to all the server nodes and the container nodes, the memory is split between server nodes and container nodes. By default, the server nodes are allocated with three-fourths out of the available memory and the container nodes are allocated with one-fourths out of the available memory. The additional memory is calculated using the following formula:

      ((((Physical memory allocated to Platform - (Number of server nodes * Minimum memory allocated to the server nodes)) - (Number of server nodes * Maximum permanent generation size allocated to server nodes)) - (Number of container nodes * Maximum permanent generation size allocated to container nodes)) – Memory allocated to the ops server)

      For example, let us consider that two server nodes and one container node is present. After allocating memory to the two server nodes and one container node, 200 MB additional memory is available, each server node is allocated 75 MB memory and the container node is allocated 50 MB memory. You can also change the additional memory allocation ratio. The additional memory allocation ratio is calculated using the following formula:

      (((Additional memory available - Physical memory allocated to container nodes) * 0.25)/Number of container nodes)

      Initial Heap Size (MB)

      Controls the initial size of a Java heap allocated to the container JVM.

      Based on your operating system and architecture, the parameters are provided in the following list:
      • HP-UX 32-bit: (HP-UX.INIT_HEAP_CONTAINER)
      • HP-UX 64-bit: (HP-UX-64.INIT_HEAP_CONTAINER)
      • IBM AIX 32-bit: (AIX.INIT_HEAP_CONTAINER)
      • IBM AIX 64-bit: (AIX-64.INIT_HEAP_CONTAINER)
      • Sun Solaris 32-bit: (SunOS.INIT_HEAP_CONTAINER)
      • Sun Solaris 64-bit: (SunOS-64.INIT_HEAP_CONTAINER)
      • Linux 32-bit: (Linux.INIT_HEAP_CONTAINER)
      • Linux 64-bit: (Linux-64.INIT_HEAP_CONTAINER)
      • Windows 32-bit: (Windows.INIT_HEAP_CONTAINER)
      • Windows 64-bit: (Windows-64.INIT_HEAP_CONTAINER)
      • IBM iSeries OS/400: (OS400.INIT_HEAP_CONTAINER)
      • IBM OS/390: (OS390.INIT_HEAP_CONTAINER)

      tuning.properties Property:

      [operating system].INIT_HEAP_CONTAINER

      Based on your operating system and architecture, the formulae are provided in the following list:
      • HP-UX 32-bit:

        If memory allocated to the container node is greater than or equal to 3068 MB, it allocates 3068 MB. Else, if the memory allocated to container node is lesser than or equal to 512 MB, it allocates the memory assigned to the container node.

      • HP-UX 64-bit:

        if (MEMORY_CONTAINER >= 3068, 3068, if (MEMORY_CONTAINER <= 512, 512, MEMORY_CONTAINER))

      • IBM AIX 32-bit:

        if (MEMORY_CONTAINER >= 3068, MEMORY_CONTAINER, if (MEMORY_CONTAINER <= 512, 512, MEMORY_CONTAINER))

      • IBM AIX 64-bit:

        if (MEMORY_CONTAINER >= 3328, MEMORY_CONTAINER, if (MEMORY_CONTAINER <= 512, 512, MEMORY_CONTAINER))

      • Sun Solaris 32-bit:

        if (MEMORY_CONTAINER >= 3900, 3900, if (MEMORY_CONTAINER <= 512, 512, MEMORY_CONTAINER))

      • Sun Solaris 64-bit:

        if (MEMORY_CONTAINER >= 1536, MEMORY_CONTAINER, if (MEMORY_CONTAINER <= 1024, 1024, MEMORY_CONTAINER))

       
      • Linux 32-bit:

        (0.5 * Physical memory allocated to container node)

      • Linux 64-bit:

        if (MEMORY_CONTAINER >= 2036, MEMORY_CONTAINER, if (MEMORY_CONTAINER <= 512, 512, MEMORY_CONTAINER))

      • Windows 32-bit:

        (0.5 * Physical memory allocated to container node)

      • Windows 64-bit:

        if (MEMORY_CONTAINER >= 1536, 768, if (MEMORY_CONTAINER <= 512, MEMORY_CONTAINER, round(0.5 * MEMORY_CONTAINER)))

      • IBM iSeries OS/400:

        If memory allocated to the container node is greater than or equal to 2048 MB, it allocates 2048 MB. Else, if the memory allocated to container node is lesser than or equal to 512 MB, it allocates the memory assigned to the container node.

      • IBM OS/390:

        If memory allocated to the container node is greater than or equal to 2048 MB, it allocates 2048 MB. Else, if the memory allocated to container node is lesser than or equal to 512 MB, it allocates the memory assigned to the container node.

      Maximum Heap Size (MB)

      Controls the maximum size of a Java heap allocated to the container JVM.

      Based on your operating system and architecture, the parameters are provided in the following list:
      • HP-UX 32-bit: (HP-UX.MAX_HEAP_CONTAINER)
      • HP-UX 64-bit: (HP-UX-64.MAX_HEAP_CONTAINER)
      • IBM AIX 32-bit: (AIX.MAX_HEAP_CONTAINER)
      • IBM AIX 64-bit: (AIX-64.MAX_HEAP_CONTAINER)
      • Sun Solaris 32-bit: (SunOS.MAX_HEAP_CONTAINER)
      • Sun Solaris 64-bit: (SunOS-64.MAX_HEAP_CONTAINER)
      • Linux 32-bit: (Linux.MAX_HEAP_CONTAINER)
      • Linux 64-bit: (Linux-64.MAX_HEAP_CONTAINER)
      • Windows 32-bit: (Windows.MAX_HEAP_CONTAINER)
      • Windows 64-bit: (Windows-64.MAX_HEAP_CONTAINER)
      • IBM iSeries OS/400: (OS400.MAX_HEAP_CONTAINER)
      • IBM OS/390: (OS390.MAX_HEAP_CONTAINER)

      tuning.properties Property:

      [operating system].MAX_HEAP_CONTAINER

      Based on your operating system and architecture, the formulae are provided in the following list:
      • HP-UX 32-bit:

        If memory allocated to the container node is greater than or equal to 3068 MB, it allocates 3068 MB. Else, if the memory allocated to container node is lesser than or equal to 512 MB, it allocates the memory assigned to the container node.

      • HP-UX 64-bit:

        if (MEMORY_CONTAINER >= 3068, MEMORY_CONTAINER, if (MEMORY_CONTAINER <= 512, 512, MEMORY_CONTAINER))

      • IBM AIX 32-bit:

        If memory allocated to the container node is greater than or equal to 3328 MB, it allocates 3328 MB. Else, if the memory allocated to server node is lesser than or equal to 512 MB, it allocates the memory assigned to the container node.

      • IBM AIX 64-bit:

        if (MEMORY_CONTAINER >= 3328, MEMORY_CONTAINER, if (MEMORY_CONTAINER <= 512, 512, MEMORY_CONTAINER))

      • Sun Solaris 32-bit:

        If memory allocated to the container node is greater than or equal to 3900 MB, it allocates 3900 MB. Else, if the memory allocated to container node is lesser than or equal to 512 MB, it allocates the memory assigned to the container node.

      • Sun Solaris 64-bit:

        if (MEMORY_CONTAINER >= 3900, MEMORY_CONTAINER, if (MEMORY_CONTAINER <= 512, 512, MEMORY_CONTAINER))

       
      • Linux 32-bit:

        If memory allocated to the container node is greater than or equal to 2036 MB, it allocates 2036 MB. Else, if the memory allocated to container node is lesser than or equal to 512 MB, it allocates the memory assigned to the container node.

      • Linux 64-bit:

        if (MEMORY_CONTAINER >= 2036, MEMORY_CONTAINER, if (MEMORY_CONTAINER <= 512, 512, MEMORY_CONTAINER))

      • Windows 32-bit:

        If memory allocated to the container node is greater than or equal to 1536 MB, it allocates 1536 MB. Else, if the memory allocated to container node is lesser than or equal to 512 MB, it allocates the memory assigned to the container node.

      • Windows 64-bit:

        if (MEMORY_CONTAINER >= 1536, MEMORY_CONTAINER, if (MEMORY_CONTAINER <= 512, 512, MEMORY_CONTAINER))

      • IBM iSeries OS/400:

        If memory allocated to the container node is greater than or equal to 2048 MB, it allocates 2048 MB. Else, if the memory allocated to container node is lesser than or equal to 512 MB, it allocates the memory assigned to the container node.

      • IBM OS/390:

        If memory allocated to the container node is greater than or equal to 2048 MB, it allocates 2048 MB. Else, if the memory allocated to container node is lesser than or equal to 512 MB, it allocates the memory assigned to the container node.

      Initial Size of New (Nursery) Heap (MB)

      Controls the initial size of the new heap area allocated to the container JVM.

      Based on your operating system and architecture, the parameters are provided in the following list:
      • HP-UX 32-bit: (HP-UX.INIT_AGE_CONTAINER)
      • HP-UX64-bit: (HP-UX-64.INIT_AGE_CONTAINER)
      • IBM AIX 32-bit: (AIX.INIT_AGE_CONTAINER)
      • IBM AIX 64-bit: (AIX-64.IN IT_AGE_CONTAINER)
      • Sun Solaris 32-bit: (SunOS.INIT_AGE_CONTAINER)
      • Sun Solaris 64-bit: (SunOS-64.INIT_AGE_CONTAINER)
      • Linux 32-bit: (Linux.INIT_AGE_CONTAINER)
      • Linux 64-bit: (Linux-64.INIT_AGE_CONTAINER)
      • Windows 32-bit: (Windows.IN IT_AGE_CONTAINER)
      • Windows 64-bit: (Windows-64.INIT_AGE_CONTAINER)
      • IBM iSeries OS/400: (OS400.INIT_AGE_CONTAINER)
      • IBM OS/390(OS390.INIT_AGE_CONTAINER)

      tuning.properties Property:

      [operating system].INIT_AGE_CONTAINER

      (0.33333 * Initial size of heap memory allocated to the container node)

      • HP 32-bit: HP-UX.INIT_AGE_CONTAINER=round(0.33333 * HP-UX.INIT_HEAP_CONTAINER)
      • HP 64-bit: HP-UX-64.INIT_AGE_CONTAINER=round(0.33333 * HP-UX-64.INIT_HEAP_CONTAINER)
      • AIX 32-bit: AIX.INIT_AGE_CONTAINER=round(0.33333 * AIX.INIT_HEAP_CONTAINER)
      • AIX 64-bit: AIX-64.INIT_AGE_CONTAINER=round(0.33333 * AIX-64.INIT_HEAP_CONTAINER)
      • Sun 32-bit: SunOS.INIT_AGE_CONTAINER=round(0.33333 * SunOS.INIT_HEAP_CONTAINER)
      • Sun 64-bit: SunOS-64.INIT_AGE_CONTAINER=round(0.33333 * SunOS-64.INIT_HEAP_CONTAINER)
      • Linux 32-bit: Linux.INIT_AGE_CONTAINER=round(0.33333 * Linux.INIT_HEAP_CONTAINER)
      • Linux 64-bit: Linux-64.INIT_AGE_CONTAINER=round(0.33333 * Linux-64.INIT_HEAP_CONTAINER)
      • Windows 32-bit: Windows.INIT_AGE_CONTAINER=round(0.33333 * Windows.INIT_HEAP_CONTAINER)
      • Windows 64-bit: Windows-64.INIT_AGE_CONTAINER=round(0.33333 * Windows-64.INIT_HEAP_CONTAINER)
      Maximum Size of New (Nursery) Heap (MB)

      Controls the maximum size of the new heap area allocated to the container JVM.

      Based on your operating system and architecture the parameters are provided in the following list:
      • HP-UX 32-bit: (HP-UX.MAX_AGE_CONTAINER)
      • HP-UX 64-bit: (HP-UX-64.MAX_AGE_CONTAINER)
      • IBM AIX 32-bit: (AIX.MAX_AGE_CONTAINER)
      • IBM AIX 64-bit: (AIX-64.MAX_AGE_CONTAINER)
      • Sun Solaris 32-bit: (SunOS.MAX_AGE_CONTAINER)
      • Sun Solaris 64-bit: (SunOS-64.MAX_AGE_CONTAINER)
      • Linux 32-bit: (Linux.MAX_AGE_CONTAINER)
      • Linux 64-bit: (Linux-64.MAX_AGE_CONTAINER)
      • Windows 32-bit: (Windows.MAX_AGE_CONTAINER)
      • Windows 64-bit: (Windows-64.MAX_AGE_CONTAINER)
      • IBM iSeries OS/400: (OS400.MAX_AGE_CONTAINER)
      • IBM OS/390: (OS390.MAX_AGE_CONTAINER)

      tuning.properties Property:

      [operating system].MAX_AGE_CONTAINER

      (0.5 * Maximum size of heap memory allocated to the container node)

      • HP 32-bit: HP-UX.MAX_AGE_CONTAINER=round(0.33333 * HP-UX.MAX_HEAP_CONTAINER)
      • HP 64-bit: HP-UX-64.MAX_AGE_CONTAINER=round(0.33333 * HP-UX-64.MAX_HEAP_CONTAINER)
      • AIX 32-bit: AIX.MAX_AGE_CONTAINER=round(0.33333* AIX.MAX_HEAP_CONTAINER)
      • AIX 64-bit: AIX-64.MAX_AGE_CONTAINER=round(0.33333* AIX-64.MAX_HEAP_CONTAINER)
      • Sun 32-bit: SunOS.MAX_AGE_CONTAINER=round(0.33333 * SunOS.MAX_HEAP_CONTAINER)
      • Sun 64-bit: SunOS-64.MAX_AGE_CONTAINER=round(0.33333 * SunOS-64.MAX_HEAP_CONTAINER)
      • Linux 32-bit: Linux.MAX_AGE_CONTAINER=round(0.33333 * Linux.MAX_HEAP_CONTAINER)
      • Linux 64-bit: Linux-64.MAX_AGE_CONTAINER=round(0.33333 * Linux-64.MAX_HEAP_CONTAINER)
      • Windows 32-bit: Windows.MAX_AGE_CONTAINER=round(0.33333 * Windows.MAX_HEAP_CONTAINER)
      • Windows 64-bit: Windows-64.MAX_AGE_CONTAINER=round(0.33333 * Windows-64.MAX_HEAP_CONTAINER)
      Maximum Permanent Generation Size (MB)

      Controls the maximum size of the permanent generation heap (stores all the class code and class-like data) allocated to the container JVM.

      Based on your operating system and architecture, the parameters are provided in the following list:
      • HP-UX 32-bit: (HP-UX.MAX_PERM_SIZE_CONTAINER)
      • HP-UX 64-bit: (HP-UX-64.MAX_PERM_SIZE_CONTAINER)
      • IBM AIX 32-bit: (AIX.MAX_PERM_SIZE_CONTAINER)
      • IBM AIX 64-bit: (AIX-64.MAX_PERM_SIZE_CONTAINER)
      • Sun Solaris 32-bit: (SunOS.MAX_PERM_SIZE_CONTAINER)
      • Sun Solaris 64-bit: (SunOS-64.MAX_PERM_SIZE_CONTAINER)
      • Linux 32-bit: (Linux.MAX_PERM_SIZE_CONTAINER)
      • Linux 64-bit: (Linux-64.MAX_PERM_SIZE_CONTAINER)
      • Windows 32-bit: (Windows.MAX_PERM_SIZE_CONTAINER)
      • Windows 64-bit: (Windows-64.MAX_PERM_SIZE_CONTAINER)
      • IBM iSeries OS/400: (OS400.MAX_PERM_SIZE_CONTAINER)
      • IBM OS/390: (OS390.MAX_PERM_SIZE_CONTAINER)

      tuning.properties Property:

      [operating system].MAX_PERM_SIZE_CONTAINER

      Based on your operating system and architecture, Sterling B2B Integrator allocates the following values (in MB):

      • HP-UX (32-bit and 64-bit): 192
      • IBM AIX (32-bit and 64-bit): 128
      • Sun Solaris (32-bit and 64-bit): 128
      • Linux (32-bit and 64-bit): 128
      • Windows (32-bit and 64-bit): 128
      • IBM iSeries OS/400: 128
      • IBM OS/390: 128
      Thread Stack Size (KB)

      Controls the maximum Java stack size for any thread.

      tuning.properties Property:

      [operating system].STATIC_STACK_CONTAINER

      Based on your operating system and architecture (in KB):

      • HP-UX (32-bit and 64-bit): 384
      • IBM AIX (32-bit and 64-bit): 256
      • Sun Solaris (32-bit and 64-bit): 256
      • Linux (32-bit and 64-bit): 256
      • IBM iSeries OS/400 (32-bit and 64-bit): 256
      • IBM OS/390 (32-bit and 64-bit): 256
      • Windows (32-bit and 64-bit): 256
      Enable Heap Dump on Out of Memory

      Select True from the drop-down list if you want to generate a heapdump when the container JVM encounters an out of memory error.

      Heapdumps are useful for troubleshooting memory-related issues since they contain all the live objects used by the Java application. With this information, the objects that are using large amounts of memory can be identified. The contents of a heapdump can also help a user understand why objects cannot be freed by the Garbage Collector.

      By default, the dump file is generated from where the JVM was started (the install_dir/bin directory).

      If you select False from the drop-down list, heapdumps are not generated when the container JVM encounters an out of memory error.

      tuning.properties Property:

      ENABLE_HEAP_DUMP_OOB_CONTAINER

      Default value: True

      Enable Heap Dump on Sigquit/Ctrl-break
      Note: This field is not supported in the 1.6 version of the Sun JDK. It will display if you are using the IBM JDK.
      Select True from the drop-down list if you want to request a heapdump for the container JVM using Sigquit command or pressing Ctrl+Break for container JVM.

      By default, the dump file is generated from where the JVM was started (the install_dir/bin directory).

      If you select False from the drop-down list, heapdumps are not generated if you run Sigquit command or press Ctrl+Break .

      tuning.properties Property:

      ENABLE_HEAP_DUMP_SGTQCRTLBRK_CONTAINER

      Default value: True

      Enable VerboseGC

      Select True from the drop-down list if you want to generate verbose garbage collection data for container JVM.

      JVM Verbose garbage collection (GC) statistics are critical. It is recommended to enable verbose garbage collection when you are debugging your instance. These statistics can be used to understand the behavior of the JVM heap management and the efficiency of the JVM.

      If you select False from the drop-down list, verbose garbage collection will be disabled.

      tuning.properties Property:

      ENABLE_VERBOSE_GC_CONTAINER

      Default value: False

      JVM Arguments Prefix

      Determines the arguments set as JVM parameters before other JVM flags are set for container JVM.

      Ensure that you enter correct values in this field. Else, the container JVM might fail to start.

      For example, -Xalwaysclassgc parameter enables dynamic class unloading on every instance of garbage collection.

      tuning.properties Property:

      JVM_ARGS_PREFIX_CONTAINER

      Default value: BLANK

      JVM Arguments Suffix

      Determines the arguments set as JVM parameters after other JVM flags are set for container JVM.

      Ensure that you enter correct values in this field. Else, the container JVM might fail to start.

      For example, -Xlp parameter enables large page support.

      tuning.properties Property:

      JVM_ARGS_SUFFIX_CONTAINER

      Default value: BLANK

      Click Next.

  8. In the BP Queue page that is displayed, decide whether you want to use the current settings or the suggested settings.
    • If yes, click Fill Suggested.
    • If no, enter information in the following fields:
      Field / Description

      Tuning Formula or Default Value

      (Default value is provided if there is no tuning formula)

      Number of Processor Cores

      Number of processor cores in the system, where each core is an independent processing engine.

      tuning.properties Property:

      PROCESSORS

      Not Applicable

      Desired Global Threads

      Number of active business processes that can run concurrently. This field changes the JMS_LISTNERS property in the tuning.properties file in the install_dir/properties directory.

      Typically, you require higher values with more CPUs, and lower values with fewer CPUs. Too many threads cause thrashing, in which the hard disk is used a lot for virtual memory, and performance slows down.

      tuning.properties Property:

      JMS_LISTNERS

      JMS_LISTNERS = (PROCESSORS * 4)

      In memory cache size (MB) for small contexts

      Amount of memory allocated to the business process queue. After Sterling B2B Integrator reaches this limit, it writes all the messages, except active messages, to disk. This field changes the JMS_PAGING_HIGH property in the tuning.properties file in the install_dir/properties directory.

      Increasing this value too much reduces the amount of memory available for the other components of Sterling B2B Integrator, such as caches and general processing.

      tuning.properties Property:

      NOAPP.JMS_PAGING_HIGH

      NOAPP.JMS_PAGING_HIGH = 100

      Disk cache size (MB) Maximum

      Maximum amount of disk space used to store the business process context when it is being moved from memory. This limit ensures that Sterling B2B Integrator does not consume all the available disk space. This field changes the JMS_PAGING_MAX property in the tuning.properties file in the install_dir/properties directory.

      tuning.properties Property:

      NOAPP.JMS_PAGING_MAX

      NOAPP.JMS_PAGING_MAX = round(2 * Maximum Java heap size allocated to the server JVM)

      Memory Cache Threshold (MB)

      Amount of threshold memory size for caching a context in the in-memory cache versus the disk cache.

      The distribution of context sizes tends to look vaguely like an “M” with one cluster of small contexts and another cluster of larger contexts. If this value is set large, the value for memory cache size should also be large. A moderate multiple of the disk block size seems to work very well in many cases.

      tuning.properties Property:

      BP_SIZE

      Default value: 16384

      Use Shadow Cache

      Select True from the drop-down list if you want to enable shadow cache.

      It is used to retain business process objects in the memory as long as JVM permits. When the thread is available for the business process to run, the object is retrieved from the memory instead of the disk.

      Use Shadow Cache plays an important role during load balancing in a cluster environment. It uses soft reference for caching workflow context objects.

      If you select False from the drop-down list, shadow cache will be disabled and space will not be allocated to retain business process objects in the memory.

      tuning.properties Property:

      USE_SHADOW_CACHE

      Default value: True

      Shadow Cache Size (MB) Maximum

      Amount of soft reference in memory to retain business process objects in the memory as long as JVM permits. When the thread is available for the business process to run, the object is retrieved from the memory instead of the disk.

      You can set maximum shadow cache size, but it is used only if you enable shadow cache.

      tuning.properties Property:

      MAX_SHADOW_CACHE_SIZE

      Default value: 1

      Distribution Cache Maximum

      Determines the maximum number of business processes in queue on node2. If the number of business processes on node2 queue exceeds this number, node1 will not transfer any more business processes to node2.

      tuning.properties Property:

      DISTRIBUTION_CACHE_MAX

      Default value: 5000

      Distribution Cache Minimum

      Determines the number of business processes that must be in queue before this node will make any processes eligible for distribution.

      tuning.properties Property:

      DISTRIBUTION_CACHE_MIN

      DISTRIBUTION_CACHE_MIN = (PROCESSORS * 4)

      Broadcast Interval (ms)

      Determines how often (in milleseconds) a multicast message is sent out by a node about the current state of the node.

      The multicast message provides load factor and current status information about a node to all other nodes in the cluster.

      Clustering uses the JGroups communication toolkit, which supports the following communication protocols, which can be configured during deployment:
      • UDP (User Datagram Protocol) (IP multicast)
      • TCP

      tuning.properties Property:

      MULTICAST_INTERVAL

      Default value: 6000

      Switch Interval (ms)

      Determines the time interval (in milliseconds) that a business process must be queued after distribution to a node before the business process is eligible for distribution to another node again.

      This is for load balancing in a cluster environment.

      tuning.properties Property:

      SWITCH_INTERVAL

      Default value: 180000

      Workflow in transit list timeout (ms)

      Allows the business process to transfer from one node to another without the Recover process interrupting the business process. In a cluster, when a business process is switched to another node due to a heavy load, the workflow id will be "seen" by the Recover process as still in the queue on this node for the amount of time (in milliseconds) specified by this parameter. This allows the business process to finish transfering to the other node without the Recover process interrupting the business process.

      Increase this value if the Recover process is interrupting business processes during a heavy load in a clustered environment. This may make the UI list the business process as 'in queue' but the business process can actually be running. This will not interfere with the running result. It may only delay displaying the business process state on the UI.

      Setting this value to 0 will prevent this functionality from being used and will keep an extra thread that performs part of this functionality from being started.

      tuning.properties Property:

      WF_IN_TRANSIT_TIMEOUT_LIST

      Default value: 20000

      Click Next.

  9. In the Cache page that is displayed, decide whether you want to use the current settings or the suggested settings.
    • If yes, click Fill Suggested.
    • If no, enter information in the following fields:
      Field / Description

      Tuning Formula or Default Value

      (Default value is provided if there is no tuning formula)

      Translation Maps

      The number of translation maps that can exist in the cache. This field changes the MAP_CACHE property in the tuning.properties file in the install_dir/properties directory.

      Note: Increasing the cache size for items that are not used frequently may degrade performance. Increase the cache size for items that are used frequently to improve performance.

      tuning.properties Property:

      MAP_CACHE

      If memory allocated to the server node is lesser than or equal to 768 MB, 10 translation maps can exist in the cache. Else, if the memory allocated to server node is lesser than or equal to 1024 MB but greater than 768 MB, 50 translation maps can exist in the cache. If the memory allocated to the server node is greater than 1024 MB, then 100 translation maps can exist in the cache.

      Envelopes

      The number of envelopes that can exist in the cache. This field changes the ENVELOPE_CACHE property in the tuning.properties file in the install_dir/properties directory.

      Note: Increasing the cache size for items that are not used frequently may degrade performance. Increase the cache sizes for items that are used frequently in order to improve performance.

      tuning.properties Property:

      ENVELOPE_CACHE

      If memory allocated to the server node is lesser than or equal to 768 MB, 50 envelopes can exist in the cache. Else, if the memory allocated to server node is lesser than or equal to 1024 MB but greater than 768 MB, 250 envelopes can exist in the cache. If the memory allocated to the server node is greater than 1024 MB, then 500 envelopes can exist in the cache.

      Other EDI

      The number of EDI objects that can exist in the cache. This field changes the EDI_CACHE property in the tuning.properties file in the install_dir/properties directory.

      Note: Increasing the cache size for items that are not used frequently may degrade performance. Increase the cache sizes for items that are used frequently to improve performance.

      tuning.properties Property:

      EDI_CACHE

      If memory allocated to the server node is lesser than or equal to 768 MB, 25 EDI objects can exist in the cache. Else, if the memory allocated to server node is lesser than or equal to 1024 MB but greater than 768 MB, 50 EDI objects can exist in the cache. If the memory allocated to the server node is greater than 1024 MB, then 100 EDI objects can exist in the cache.

      Workflow Definition

      The number of workflow definition objects that can exist in the cache. This field changes the WFD_CACHE property in the tuning.properties file in the install_dir/properties directory.

      tuning.properties Property:

      WFD_CACHE

      If memory allocated to the server node is lesser than or equal to 768 MB, 50 workflow definition objects can exist in the cache. Else, if the memory allocated to server node is lesser than or equal to 1024 MB but greater than 768 MB, 100 workflow definition objects can exist in the cache. If the memory allocated to the server node is greater than 1024 MB, then 120 workflow definition objects can exist in the cache.

      User Cache

      The number of user definition objects that can exist in the cache. This field changes the USER_CACHE property in the tuning.properties file in the install_dir/properties directory.

      tuning.properties Property:

      USER_CACHE

      If memory allocated to the server node is lesser than or equal to 768 MB, 50 user definition objects can exist in the cache. Else, if the memory allocated to server node is lesser than or equal to 1024 MB but greater than 768 MB, 100 user definition objects can exist in the cache. If the memory allocated to the server node is greater than 1024 MB, then 120 user definition objects can exist in the cache.

      Group Cache

      The number of user group definition objects that can exist in the cache. This field changes the GROUP_CACHE property in the tuning.properties file in the install_dir/properties directory.

      tuning.properties Property:

      GROUP_CACHE

      If memory allocated to the server node is lesser than or equal to 768 MB, 50 user group definition objects can exist in the cache. Else, if the memory allocated to server node is lesser than or equal to 1024 MB but greater than 768 MB, 100 user group definition objects can exist in the cache. If the memory allocated to the server node is greater than 1024 MB, then 120 user group definition objects can exist in the cache.

      Permission Cache

      The number of permission definition objects that can exist in the cache.

      Permission cache controls the number of cache protectors and stores information on user permissions. This field changes the PERM_CACHE property in the tuning.properties file in the install_dir/properties directory.

      tuning.properties Property:

      PERM_CACHE

      If memory allocated to the server node is lesser than or equal to 768 MB, 1000 permission definition objects can exist in the cache. Else, if the memory allocated to server node is lesser than or equal to 1024 MB but greater than 768 MB, 2000 permission definition objects can exist in the cache. If the memory allocated to the server node is greater than 1024 MB, then 2400 permission definition objects can exist in the cache.

      Click Next.

  10. In the Purge Settings page that is displayed, decide whether you want to use the current settings or the suggested settings.
    • If yes, click Fill Suggested.
    • If no, enter information in the following fields:
      Field / Description

      Tuning Formula or Default Value

      (Default value is provided if there is no tuning formula)

      Number Of Purge Deadlock Retries

      Controls the number of repeated attempts to start the purge process before aborting.

      tuning.properties Property:

      PURGE.DEADLOCK_RETRIES

      Default value: 30

      Maximum Purge Threads

      Controls the maximum number of threads that can be allocated to the purge process.

      tuning.properties Property:

      PURGE.MAX_PURGE_THREADS

      Default value: 1

      Purge Documents on Disk

      Select True from the drop-down list to purge the documents on file system disk space, along with database disk space.

      It is recommended to purge documents on the disk, else the disk space may get filled up.

      For more information about purging, refer to Purge Service documentation.

      If you select False from the drop-down list, the documents are purged only in the database disk space.

      tuning.properties Property:

      PURGE.PURGE_DOCS_ON_DISK

      Default value: True

      Click Next.

  11. In the Database Connection Pool page that is displayed, decide whether you want to use the current settings or the suggested settings.

    Note: Sterling B2B Integrator restart is not required if you modify settings in this page.
    • If yes, click Fill Suggested.
    • If no, enter information in the following fields and click Next.

      Transactional pool connections are used by the workflow engine to manage database operations during a workflow step. Commands issued to a transactional connection are not committed to the database until the end of the workflow step, allowing rollback if the workflow step fails. Non-transactional pool connections are used when rollback is not required.

      The pool size must be large enough to process business processes without waiting for a connection. In addition, if you have many File System adapters, you may have to increase the value of this property to improve performance.

      Database connection pool values are initially displayed by obtaining the values from jdbc.properties file and jdbc_customer.properties file. When you set the connection pool properties, such as initial connections, maximum connections, and buffer size, the performance tuning utility updates system_overrrides.properties file, which will be created if it does not exist.

      Field / Description

      Tuning Formula or Default Value

      (Default value is provided if there is no tuning formula)

      Default Document Storage
      Determines the storage type for document objects constructed without a storageType property. Valid values in the New field at the top of the table:
      • FS - Stores the document data on the local file system
      • DB - (Default) Stores the document data in the database

      tuning.properties Property:

      jdbcService.defaultDocumentStorageType

      jdbcService.defaultDocumentStorageType = DB

      Connection Pool Name

      Determines the database connection pool name. A database connection pool is created to manage multiple connections where each connection connects to the same database.

      You can create custom connection pools apart from those present in Sterling B2B Integrator. If you create your own custom connection pools, you should add the connection pool name in language properties file.

      The following connection pool types can be created:
      • UI

      • Archive

      • Default

      • Select

      • Non-transactional - Number of connections that are reserved and available for general data requests (for example, retrieving data) when Sterling B2B Integrator starts. If Sterling B2B Integrator uses all the connections concurrently, it creates a new connection until it reaches the maximum number of connections. When Sterling B2B Integrator reaches the value specified in this field, it must wait for a connection to be returned to the pool before processing the data request.

        When a connection is no longer in use, the connection is returned to the available connection pool and can be reused.

      • Local

      Not applicable

      Initial Connections

      Determines the initial number of connections to be reserved in the database connection pool.

      Based on the connection pool, the parameters are provided in the following list:
      • Local: (jdbcService.dbPool_local.initsize)
      • Select: (jdbcService.dbPool_Select.initsize)

      • Non-transactional: (jdbcService.dbPool_NoTrans.initsize)
      • Default: (jdbcService.dbPool.initsize)
      • Archive: jdbcService.dbArchivePool.initsize)
      • UI: (jdbcService.dbUIPool.initsize)
      Depending on the database, replace the db with the database name. For example, if you are using Oracle as your database, enter oracle. Default values are provided in the following list:
      • Local: jdbcService.dbPool_local.initsize = 1
      • Select: jdbcService.dbPool_Select.initsize = 0
      • Non-transactional: jdbcService.dbPool_NoTrans.initsize = 1
      • Default: jdbcService.dbPool.initsize = 1
      • Archive: jdbcService.dbArchivePool.initsize = 1
      • UI: jdbcService.dbUIPool.initsize = 4
      Maximum Connections

      Determines the maximum number of connections to be reserved in the database connection pool.

      Based on the connection pool, the parameters are provided in the following list:
      • Local: (jdbcService.dbPool_local.maxsize)
      • Select: (jdbcService.dbPool_Select.maxsize)
      • Non-transactional: (jdbcService.dbPool_NoTrans.maxsize)
      • Default: (jdbcService.dbPool.maxsize)
      • Archive: (jdbcService.dbArchivePool.maxsize)
      • UI: (jdbcService.dbUIPool.maxsize)
      Depending on the database, replace the db with the database name. For example, if you are using Oracle as your database, enter oracle. Default values are provided in the following list:
      • Local: jdbcService.dbPool_local.maxsize = 30
      • Select: jdbcService.dbPool_Select.maxsize = 20
      • Non-transactional: jdbcService.dbPool_NoTrans.maxsize = 30
      • Default: jdbcService.dbPool.maxsize = 30
      • Archive: jdbcService.dbArchivePool.maxsize = 20
      • UI: jdbcService.dbUIPool.maxsize = 20
      Buffer Size

      Determines the number of additional connections reserved by the database connection pool. These additional connections are released when there is an unexpected demand for more connections. The buffer connections are created in addition to the maximum connections reserved.

      Based on the connection pool, the parameters are provided in the following list:
      • Local: (jdbcService.dbPool_local.buffersize = 500)
      • Select: (jdbcService.dbPool_Select.buffersize = 500)
      • Non-transactional: (jdbcService.dbPool_NoTrans.buffersize = 500)
      • Default: (jdbcService.dbPool.buffersize = 500)
      • Archive: (jdbcService.dbArchivePool.buffersize = 500)
      • UI: (jdbcService.dbUIPool.buffersize = 500)
      Depending on the database, replace the db with the database name. For example, if you are using Oracle as your database, enter oracle. Default values are provided in the following list:
      • Local: jdbcService.dbPool_local.buffersize = 500
      • Select: jdbcService.dbPool_Select.buffersize = 500
      • Non-transactional: jdbcService.dbPool_NoTrans.buffersize = 500
      • Default: jdbcService.dbPool.buffersize = 500
      • Archive: jdbcService.dbArchivePool.buffersize = 500
      • UI: jdbcService.dbUIPool.buffersize = 500

      Click Next.

    If you have purchased additional adapters, you may have to increase the database pools to reduce the chances of a business process or adapter having to wait for a database connection.

  12. In the Queue Settings page that is displayed, decide whether you want to use the current settings or the suggested settings.

    Note: Sterling B2B Integrator restart is not required if you modify settings in this page.
    • If yes, click Fill Suggested.
    • If no, enter information in the fields in the following columns:
      Field / Description

      Tuning Formula or Default Value

      (Default value is provided if there is no tuning formula)

      Queue Name

      Name of the queue. Nine queues (Queue 1 to Queue 9) enable flexible management of your workload.

      Not applicable

      Initial Steps in the first Execution Cycle

      Number of steps executed before returning a business process to the queue on its first execution cycle. This field changes the ASYNC_BP property in the tuning.properties file in the install_dir/properties directory.

      The parameters for each queue are provided as follows:
      • Queue [queue number]:

        (NOAPP.INITIAL_CYCLES_[queue number])

      tuning.properties Property:

      NOAPP.INITIAL_CYCLES_[queue number]

      The default values for each queue are provided in the following list:
      • Queue 1:

        NOAPP.INITIAL_CYCLES_1 = ASYNC_BP

      • Queue 2:

        NOAPP.INITIAL_CYCLES_2 = ASYNC_BP

      • Queue 3:

        NOAPP.INITIAL_CYCLES_3 = ASYNC_BP

      • Queue 4:

        NOAPP.INITIAL_CYCLES_4 = ASYNC_BP

      • Queue 5:

        NOAPP.INITIAL_CYCLES_5 = ASYNC_BP

      • Queue 6:

        NOAPP.INITIAL_CYCLES_6 = ASYNC_BP

      • Queue 7:

        NOAPP.INITIAL_CYCLES_7 = ASYNC_BP

      • Queue 8:

        NOAPP.INITIAL_CYCLES_8 = 10

      • Queue 9:

        NOAPP.INITIAL_CYCLES_9 = ASYNC_BP

      Number of Steps in the Execution Cycle

      Number of business process steps that are run before returning to the queue. This field changes the BP_STEPS property in the tuning.properties file in the install_dir/properties directory.

      If your business processes contain loops, you may have to increase this property to improve performance. If you find that you have to increase this number, you must streamline your business processes to remove unnecessary loops.

      If you set this value too low, your business processes may not be able to complete processing before they are returned to the queue, allowing another business process to complete some or all of its processing. This slows processing time and causes bottlenecks in Sterling B2B Integrator.

      The parameters for each queue are provided as follows:
      • Queue [queue number]:

        (NOAPP.EXEC_CYCLE_[queue number])

      tuning.properties Property:

      NOAPP.EXEC_CYCLE_[queue number]

      The default values for each queue are provided in the following list:
      • Queue 1:

        NOAPP.EXEC_CYCLE_1 = 1000

      • Queue 2:

        NOAPP.EXEC_CYCLE_2 = 100

      • Queue 3:

        NOAPP.EXEC_CYCLE_3 = 100

      • Queue 4:

        NOAPP.EXEC_CYCLE_4 = BP_STEPS

      • Queue 5:

        NOAPP.EXEC_CYCLE_5 = BP_STEPS

      • Queue 6:

        NOAPP.EXEC_CYCLE_6 = 10

      • Queue 7:

        NOAPP.EXEC_CYCLE_7 = 5

      • Queue 8:

        NOAPP.EXEC_CYCLE_8 = 2

      • Queue 9:

        NOAPP.EXEC_CYCLE_9 = 50

      Minimum Threads

      Minimum number of threads available for the queue. The threads will be honored even if they are higher than MaxThreads (global maximum queue threads). The minimum number of threads cannot be higher than the maximum number. The fairness calculation does not apply for minimum threads.

      The parameters for each queue are provided as follows:
      • Queue [queue number]:

        (NOAPP.MIN_POOL_SIZE_[queue number])

      tuning.properties Property:

      NOAPP.MIN_POOL_SIZE_[queue number]

      The default values for each queue are provided in the following list:
      • Queue 1:

        NOAPP.MIN_POOL_SIZE_1 = 0

      • Queue 2:

        NOAPP.MIN_POOL_SIZE_2 = 0

      • Queue 3:

        NOAPP.MIN_POOL_SIZE_3 = 0

      • Queue 4:

        NOAPP.MIN_POOL_SIZE_4 = 1

      • Queue 5:

        NOAPP.MIN_POOL_SIZE_5 = 1

      • Queue 6:

        NOAPP.MIN_POOL_SIZE_6 = JMS_LISTNERS

      • Queue 7:

        NOAPP.MIN_POOL_SIZE_7 = (2 * JMS_LISTNERS)

      • Queue 8:

        NOAPP.MIN_POOL_SIZE_8 = (2 * JMS_LISTNERS)

      • Queue 9:

        NOAPP.MIN_POOL_SIZE_9 = 2

      Maximum Threads

      Maximum number of threads available for the queue.

      The parameters for each queue are provided as follows:
      • Queue [queue number]:

        (NOAPP.MAX_POOL_SIZE_[queue number])

      tuning.properties Property:

      NOAPP.MAX_POOL_SIZE_[queue number]

      The default values for each queue are provided in the following list:
      • Queue 1:

        NOAPP.MAX_POOL_SIZE_1 = 1

      • Queue 2:

        NOAPP.MAX_POOL_SIZE_2 = (round( JMS_LISTNERS / 4) + 1)

      • Queue 3:

        NOAPP.MAX_POOL_SIZE_3 = (round( JMS_LISTNERS / 2) + 1)

      • Queue 4:

        NOAPP.MAX_POOL_SIZE_4 = JMS_LISTNERS

      • Queue 5:

        NOAPP.MAX_POOL_SIZE_5 = (2 * JMS_LISTNERS)

      • Queue 6:

        NOAPP.MAX_POOL_SIZE_6 = JMS_LISTNERS

      • Queue 7:

        NOAPP.MAX_POOL_SIZE_7 = (2 * JMS_LISTNERS)

      • Queue 8:

        NOAPP.MAX_POOL_SIZE_8 = (2 * JMS_LISTNERS)

      • Queue 9:

        NOAPP.MAX_POOL_SIZE_9 = 4

      Resource Allocation

      Amount of resources to allocate to a specific queue for fair share scheduling. For example, if you have only two queues configured, queue 1 for a few small business processes, and queue 2 for many large business processes, you can set the amount of resources available for each queue by a percentage. You can set queue 1 with a resource allocation of 10 and queue 2 with a resource allocation of 90. This ensures that queue 2 has more resources for processing, which in turn improves processing time and ensures efficient use of system resources. This value can be different for each queue.

      Note: Set the resource allocations according to the percentage of use for each queue and the importance of processing completed on each queue. If you have higher priority items on one queue, increase the resource allocation to that queue in order to increase processing capability. Apply a lower percentage of resources to lower priority queues or less used queues in order to keep resources free for higher priority processing.
      The parameters for each queue are provided as follows:
      • Queue [queue number]:

        (NOAPP.RESOURCE_ALLOCATION_[queue number])

      tuning.properties Property:

      NOAPP.RESOURCE_ALLOCATION_[queue number]

      The default values for each queue are provided in the following list:
      • Queue 1:

        NOAPP.RESOURCE_ALLOCATION_1 = 10

      • Queue 2:

        NOAPP.RESOURCE_ALLOCATION_2 = 20

      • Queue 3:

        NOAPP.RESOURCE_ALLOCATION_3 = 40

      • Queue 4:

        NOAPP.RESOURCE_ALLOCATION_4 = 50

      • Queue 5:

        NOAPP.RESOURCE_ALLOCATION_5 = 50

      • Queue 6:

        NOAPP.RESOURCE_ALLOCATION_6 = 60

      • Queue 7:

        NOAPP.RESOURCE_ALLOCATION_7 = 90

      • Queue 8:

        N OAPP.RESOURCE_ALLOCATION_8 = 120

      • Queue 9:

        NOAPP.RESOURCE_ALLOCATION_9 = 50

      Click Next.

  13. In the Confirm page that is displayed, click View all settings to review the changes you made to the performance configuration. The All Settings pop-up window is displayed.

    Click Close to close the All Settings pop-up window.

    The Confirm page displays both the properties modified, properties that require restart and properties that do not require restart.

  14. In the Confirm page, perform one of the following tasks:

    • To change your performance configurations, click Back.
    • To abandon the performance configurations you carried out, click Cancel.
    • To save the performance configurations you carried out, click Finish.
  15. From the Administration menu, select Operations > System > Troubleshooter.
  16. From the System Troubleshooting page, click Soft Stop. This runs the softstop script, allowing all active business processes to complete on a node before stopping the system. The script is run through a series of interactive steps in the UI. For more information about the softstop process, refer to Completing a Soft Stop of Sterling B2B Integrator from the System Troubleshooter.
  17. In the tuningFormulas.properties file, change the TUNING_PROPS_UPDATED property to TRUE.
  18. From the install_dir/bin directory, run one of the following commands:
    • (UNIX or Linux) setupfiles.sh
    • (Windows) setupfiles.cmd

    The performance configuration changes populate the initial setup files that are used during startup.

  19. From the install_dir/bin directory, start Sterling B2B Integrator by running one of the following commands:
    • (UNIX or Linux) run.sh
    • (Windows) startWindowsService.cmd

    Sterling B2B Integrator starts and the updated performance configuration settings are applied.