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:
- Create a text file with a preferred name (filename.txt) to contain the overrides to apply.
- 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"/>
Each override that you specify must conform to one of the following syntaxes:FlowName#NodeName.PropertyName=NewPropertyValue
(orFlowName#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 ofOldPropertyValue
in the deployment descriptor withNewPropertyValue
.FlowName#NodeName.PropertyName
(orFlowName#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
- 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
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