Best Practices

To successfully configure the Sterling Order Management System Software environment, it is highly recommended to follow the given best practices.

Essentials best practices

Integrate the essential best practices into your daily operations to maximize the performance of your Sterling Order Management System Containers. For more information, see Essential Best Practices: IBM Sterling Order Management Containers.

Installation locale code and database timezone

The installation locale code is by default set to en_US_EST. To match with the other timezones and avoid any timezone calculation errors, set the locale code and database to en_US_UTC timezone.

Custom logging

Configure the envVars and jvmArgs as shown in the following example:

envVars:
      - groupName: EnvironmentVariables
        propertyList:
          LOG_DIR: /shared/logs/${OM_POD_NAME}
          LIBERTY_LOG_DIR: /shared/logs/${OM_POD_NAME}
          MESSAGE_FILE_NAME: ${LOG_DIR}/${OM_POD_NAME}_message.log
          TRACE_FILE_NAME: ${LOG_DIR}/${OM_POD_NAME}_trace.log
jvmArgs:
      - groupName: BaseJVMArgs
        propertyList:
          - -DJVM=${OM_POD_NAME}
          - -DLOG_DIR=${LOG_DIR}
          - -XX:HeapDumpPath=${LOG_DIR}
          - -Xdump:heap+java:events=user
          - -Xgcpolicy:gencon
          - -Xverbosegclog:${LOG_DIR}/${OM_POD_NAME}_verbosegc_%Y%m%d.%H%M%S.%pid.txt
Custom log4j1
Important: The log4j1 utility is deprecated from Fix Pack 30 release. Hence, this section will be soon obsolete.

Custom ConfigMaps can be created and mounted with the contents of a custom log4j1 file in the classpath of the application and agent servers as following:

additionalMounts:
    configMaps:
      - name: log4j-custom
        mountPath: /opt/ssfs/runtime/properties/resources/log4jconfig.custom.configmap.xml
        subPath: log4jconfig.custom.configmap.xml
      - name: log4j-custom
        mountPath: /config/dropins/smcfs.ear/properties.jar/resources/log4jconfig.custom.configmap.xml
        subPath: log4jconfig.custom.configmap.xml
The following is then needed in customer_overrides:
yfs.log4j.configuration: /resources/log4jconfig.custom.configmap.xml

Extraction of application logs from pods

After you deploy the Sterling Order Management System Software by using the Operator, extract the application logs from the pods. For more information, see Extracting application logs from pods.

Memory settings

In addition to defining server profiles with memory settings, one must also pass the heap size to the JVM directly. In the following example, one would have to ensure the server profile and the jvmArgs match for a given application or agent server.

serverProfiles:
    - name: ProfileSmall
      resources:
        requests:
          cpu: 200m
          memory: 512Mi
        limits:
          cpu: 1000m
          memory: 1Gi
    - name: ProfileMedium
      resources:
        requests:
          cpu: 500m
          memory: 1Gi
        limits:
          cpu: 2000m
          memory: 2Gi
    - name: ProfileLarge
      resources:
        requests:
          cpu: 500m
          memory: 2Gi
        limits:
          cpu: 4000m
          memory: 4Gi
    - name: ProfileHuge
      resources:
        requests:
          cpu: 500m
          memory: 4Gi
        limits:
          cpu: 4000m
          memory: 8Gi
    - name: ProfileColossal
      resources:
        requests:
          cpu: 500m
          memory: 4Gi
        limits:
          cpu: 4000m
          memory: 16Gi
jvmArgs:
       - groupName: BaseJVMArgs
        propertyList:
          - ...
          - ...
        derivatives:
          - groupName: SmallJVMArgs
            propertyList:
              - -Xms512m
              - -Xmx1024m
          - groupName: MediumJVMArgs
            propertyList:
              - -Xms1024m
              - -Xmx2048m
          - groupName: LargeJVMArgs
            propertyList:
              - -Xms2048m
              - -Xmx4096m
          - groupName: HugeJVMArgs
            propertyList:
              - -Xms4096m
              - -Xmx8192m          
          - groupName: ColossalJVMArgs
            propertyList:
              - -Xms4096m
              - -Xmx16384m

Integrating extensions with your environment

During a fresh install of Sterling Order Management System Software through operators with database extensions, it is recommended to mount the extensions as following:
additionalMounts:
    storages:
      - name: <pvc_name>
        mountPath: /opt/ssfs/runtime/extensions

Hardware Recommendations

The database and JMS instances are recommended to be outside of the cluster and running on bare metal machines.