How to start an Impaired application in BusinessWorks and BusinessWorks Container Edition

Emmanuel Marchiset
3 min readFeb 4, 2024

Since the early days of BusinessWorks 6.X, applications using resources that cannot be properly initialized are considered to be impaired and cannot start.

Generally, this is because one of the Shared Resources used by an application cannot start without error, this can be for example a JMS connection resource that cannot connect to the target EMS server because it is unavailable, or an HTTP Connector resource that cannot initialize because the port it is using is already opened by another application.

This behavior allows to make sure an application start only in a consistent state but in some cases, it is useful to start an application even if some of its Components or Process Starters are not available (for debugging purpose or to allow running an application in a production environment even if some part of it are not active).

Since BusinessWorks 6.9.1 a property has been introduced to force an application to start even if it is impaired. The property name is:

bw.independent.component.startup

To enable applications to start even if they are impaired you then have to do the following:

. Go to the target appnode directory:
<TIBCO_HOME>/bw/6.X/domains/<DOMAIN_NAME>/appnodes/<APPSPACE_NAME>/<APPNODE_NAME>

. Edit the config.ini file to add the property and set it to true:

bw.independent.component.startup=true

bw.independent.component.startup property added in config.ini file

. restart the appnode

Useful things to know

I tested this with a JMS Receive Message Process Starter and it is working fine:

. If the EMS server is down while the application is started the corresponding Components (or Process Starters) are disabled, and you can see this in the TEA or using the bwagent REST API:

An application running with its JMS Component disabled

. Then once the EMS server is restarted you can re-enable the JMS components in the TEA or using the bwagent REST API :

Enabling a Component or Process Starter in the TEA

. And check the Component is now enabled:

An application running with its JMS Component re-enabled

I also tested with a Rendezvous Subscriber Process Starter and a Receive Email Process Starter and it is working fine.

I didn’t found a way to get an application to be in an Impaired state because of a problem with a File Poller Process Starter or a TCP Receiver Process Starter.

Limitations

I also tested this with a REST Binding Component using an HTTP Connector resource and unfortunately it is not working with both BusinessWorks 6.9.1 and BusinessWorks 6.10. I got also the same behavior for HTTP Receive Process starters. I reported this to TIBCO support.

Reference elements

Extract from the TIBCO Documentation:

bw.independent.component.startup property documentation

TIBCO support knowledge base article on Impaired applications:
https://support.tibco.com/s/article/Tibco-KnowledgeArticle-Article-41342

Additional elements

You can also have a look to this article from my colleague Alexandre Vasquez:
https://medium.com/coderbyte/tibfaqs-how-to-solve-an-impaired-status-on-your-businessworks-application-326c23a3f624

--

--

Emmanuel Marchiset

I work as an Architect at TIBCO Software on Integration products. Opinions here are my own.