![Integration server configuration type Integration server configuration type](icn_cue_integrationserver.png)
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 work directory before the integration server 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 |
---|---|---|---|
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. The
specified overrides will be used to run ibmint apply overrides commands against
your integration server work directory, to replace configurable values in the BAR deployment
descriptor (typically broker.xml) with the new values in the TXT file. For
information about the ibmint apply overrides command, 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’s 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 fields 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 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.
When you deploy one or more BAR files that use a configuration object of type
WorkdirOverride
, the following command will run to apply the overrides to the
relevant BAR files in the work directory before the integration server is started:
ibmint apply overrides /home/aceuser/initial-config/workdir-overrides/filename.txt --work-directory /home/aceuser/ace-server
The logs should indicate that the overrides have been applied. For 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