TIBCO BusinessWorks remote deployment using DomainUtility or AppManage

This is a guest post from RubiX colleague Maarten van Alphen, Systems Integration Specialist with extensive kowledge and experience with TIBCO software. Check out his profile for more information.

For our TIBCO BusinessWorks Continuous Deployment setup, it was a requirement to be able to deploy EAR files to a DTAP environment from a local workstation. There are two tools and methods available in order to achieve this: DomainUtility tool or AppManage. The main prerequisite is that firewall configuration should allow traffic over the specific ports.

Method 1: DomainUtility

This is extensively documented by TIBCO in the supplied software documentation. Main drawback is that the workstation is discoverable as a machine in all the TIBCO domain environments.

Method 2: AppManage

Copy the following files, containing domain settings, from the remote machine to your local machine:
  • <tibco_home>/tra/domain/<domain>/AdministrationDomain.properties
  • <tibco_home>/tra/domain/<domain>/AuthorizationDomain.properties
  • <tibco_home>/tra/domain/<domain>/hawkagent.cfg
Copy these files to a folder on your local machine (or deployment server): <tibco_home>/tra/domain/<domain>/
Please note that this path could be something other that TIBCO’s structure, but for clarity sake we will be reusing it.
Next step is to add the domain to “DomainHome.properties” file: <tibco_home>/tra/domain/DomainHome.properties
Add the following lines:
<domain>.TIBCO_ADMIN_DOMAIN_HOME=<tibco_home>/administrator/domain
<domain>.TIBCO_TRA_DOMAIN_HOME=<tibco_home>/tra/domain

<tibco_home> is the location of TIBCO software on the local machine (not the remote machine, the server you are deploying to).

You can now use AppManage on the local machine and use the added domain as target destination. Make sure you have the right credentials. Another catch is to make sure that the machine name isn’t always mentioned in the files which confuses Hawk and makes deployment to a remote machine impossible. So make sure that regarding TCP connections, the machine name is explicitly mentioned, for example: tcp:<machine>:port instead of tcp:port.