Integration runtime configuration typeIntegration server configuration type

WorkdirOverride type

Use the WorkdirOverride type to create configurations that contain a list of overrides to apply to one or more co-related BAR files in your integration server or integration runtime work directory before the integration server or integration runtime is started.

Summary of key details for the configuration type

File name or type Contains secrets Path extracted/imported to Maximum allowed per integration server or integration runtime
TXT Yes /home/aceuser/initial-config/workdir_overrides Multiple

Creating the file for a configuration object of type WorkdirOverride

The WorkdirOverride type requires a TXT file that lists one or more overrides that you want to apply to one or more BAR files that you are deploying to an integration server or integration runtime. The specified overrides are used to run ibmint apply overrides commands against your integration server or integration runtime work directory to replace configurable values in the BAR deployment descriptor (typically broker.xml) with the new values in the TXT file. For more information, see ibmint apply overrides command.

To create a WorkdirOverride file, complete the following steps:

  1. Create a text file with a preferred name (filename.txt) to contain the overrides to apply.
  2. Add a line to the file for each override that you want to apply. You can add multiple override entries for multiple BAR files.
    Tip: To view the properties that you want to override for any Toolkit or Designer BAR file, extract the contents of the compressed FlowName.appzip or flow_name.appzip file that is archived in the BAR file. The properties are specified in the broker.xml file within the META-INF subdirectory, and are shown in the following format:

    <ConfigurableProperty uri="xxxx"/>

    Location of the broker.xml file within a sample BAR file


    Each override that you specify must conform to one of the following syntaxes:

    • FlowName#NodeName.PropertyName=NewPropertyValue (or FlowName#PropertyName=NewPropertyValue for message flow properties)
      Where:
      • FlowName is the name of the message flow without either the .msgflow or .cmf extension (for example, in_out_simple_mq). If the message flow is within a subdirectory, the subdirectory is included as a subdir. prefix in FlowName (for example, gen.CustomerDatabaseV1 or gen.Customer_API).
      • NodeName is the optional name of the node whose property is overridden (for example, InputNode or HTTP Input).
      • PropertyName is the name of the property to be overridden (for example, queueName or URLSpecifier).
      • NewPropertyValue is the value to assign to that property (for example, PRODUCTION_QUEUE_NAME or /Customer_API/*).
    • OldPropertyValue=NewPropertyValue

      This syntax does a global search and replace on the property value OldPropertyValue. It overrides the value of OldPropertyValue in the deployment descriptor with NewPropertyValue.

    • FlowName#NodeName.PropertyName (or FlowName#PropertyName for message flow properties)

      This syntax removes any override that is applied to the property of the supplied name.

    The following example shows the contents of a broker.xml file that was extracted from the CustomerDatabaseV1.appzip archive within a BAR file named CustomerDatabaseV1.bar:

    <?xml version="1.0" encoding="UTF-8"?><Broker>
    <CompiledApplication>
    <ConfigurableProperty uri="startMode"/>
    <ConfigurableProperty uri="javaIsolation"/>
    </CompiledApplication>
    <CompiledMessageFlow name="getAllCustomers" type="subflow">
    <ConfigurableProperty uri="getAllCustomers#Compute.dataSource"/>
    <ConfigurableProperty uri="getAllCustomers#Compute.connectDatasourceBeforeFlowStarts"/>
    <ConfigurableProperty uri="getAllCustomers#Compute.validateMaster"/>
    </CompiledMessageFlow>
    <CompiledMessageFlow name="addCustomer" type="subflow"/>
    <CompiledMessageFlow name="getCustomer" type="subflow"/>
    <CompiledMessageFlow name="deleteCustomer" type="subflow">
    <ConfigurableProperty uri="deleteCustomer#Java Compute.javaClassLoader"/>
    <ConfigurableProperty uri="deleteCustomer#Java Compute.validateMaster"/>
    </CompiledMessageFlow>
    <CompiledMessageFlow name="gen.CustomerDatabaseV1">
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#additionalInstances"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#notificationThresholdMsgsPerSec"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#maximumRateMsgsPerSec"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#processingTimeoutSec"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#processingTimeoutAction"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#wlmPolicy"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#commitCount"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#commitInterval"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#coordinatedTransaction"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#consumerPolicySet"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#providerPolicySet"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#consumerPolicySetBindings"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#providerPolicySetBindings"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#securityProfileName"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#monitoringProfile"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#startMode"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#startInstancesWhenFlowStarts"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#HTTP Input.URLSpecifier"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#HTTP Input.useHTTPS"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#HTTP Input.decompressInputMessage"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#HTTP Input.timeoutForClient"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#HTTP Input.faultFormat"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#HTTP Input.validateMaster"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#HTTP Input.securityProfileName"/>
    <ConfigurableProperty uri="gen.CustomerDatabaseV1#HTTP Reply.validateMaster"/>
    </CompiledMessageFlow>
    <CompiledMessageFlow name="updateCustomer" type="subflow"/>
    </Broker>

    The following example shows the contents of a TXT file that is created to override the values of three properties (in the broker.xml file) when the CustomerDatabaseV1.bar file is extracted to the integration server or integration runtime work directory:

    gen.CustomerDatabaseV1#additionalInstances=2
    gen.CustomerDatabaseV1#HTTP Input.URLSpecifier=/production/v1*
    gen.CustomerDatabaseV1#HTTP Input.faultFormat=HTML
  3. Save and close the filename.txt file.

After you create the file, you can use it to create a configuration object as described in Configuration reference: Creating an instance from the Red Hat OpenShift web console and Creating an instance from the Red Hat OpenShift CLI or Kubernetes CLI.

When you deploy one or more BAR files that use a configuration object of type WorkdirOverride, the following command runs to apply the overrides to the relevant BAR files in the work directory before the integration server or integration runtime is started:

ibmint apply overrides /home/aceuser/initial-config/workdir-overrides/filename.txt --work-directory /home/aceuser/ace-server
The logs indicate that the overrides are applied, as shown in the following example.
2021-05-18T19:37:16.850Z Applying workdir overrides to the integration server
BIP1138I: Applying overrides using runtime ibmint apply overrides...
BIP1140I: Overriding property gen.CustomerDatabaseV1#HTTP Input.URLSpecifier with '/production/v1*' in '/home/aceuser/ace-server/run/CustomerDatabaseV1/META-INF/broker.xml' ...
BIP8071I: Successful command completion.
2021-05-18T19:37:17.836Z Workdir overrides applied to the integration server complete