ultraesb menu icon

Installing UltraESB-X

Version: 17.07

Installing Java

UltraESB-X requires Oracle Java Runtime Environment version 8 or a higher. You can download the suitable Oracle JRE distribution for your operating system from Java downloads page. You can follow the instructions provided on the downloads page to install Java in your system.

Extracting UltraESB-X Distribution

Download either the full or minimal UltraESB-X distribution based on your requirements and extract the bundle to a file system location of your choice. We will refer this location as $ULTRA_HOME in the rest of this installation guide.

Configuring server.xml

The $ULTRA_HOME/conf/server.xml file is the main configuration file of UltraESB-X which contains the configurations of the core framework entities such as Integration Platform and Environment.

Configuring Scale-First Executor Service

The Scale-First Executor Service is the main worker thread pool executor service of UltraESB-X. It can be configured as below.

<bean class="org.adroitlogic.x.core.exec.ScaleFirstExecutorService">
    <constructor-arg name="name" value="platform"/>
    <constructor-arg name="coreSize" value="20"/>
    <constructor-arg name="maxSize" value="100"/>
    <constructor-arg name="keepAliveTime" value="5"/>
    <constructor-arg name="timeUnit" value="SECONDS"/>


A unique name for the executor service. In a case where more than one Scale-First executor service in use, this name can be used to distinguish each executor service in metrics, etc.


The minimum number of workers to keep alive in the thread pool (without allowing to time out, etc).


The maximum number of workers to allowed in the thread pool.


Timeout for idle threads to wait for work when there are more than coreSize of threads present in the pool.


Time unit to be used for the keepAliveTime parameter. This should be a value of the java.util.concurrent.TimeUnit enum.

Configuring In-memory Integration Flow Tracer

The In-memory Integration Flow Tracer is used to trace messages going through the Integration Flows. This is intended to be used only for development and testing purposes and should never be used in a Production Environment. Using Integration Flow tracer in a Production Environment can significantly degrade the performance and stability.

<bean id="integrationFlowTracer"
    <property name="tracingEnabled" value="true"/>
    <property name="maxPayloadSizeKbs" value="100"/>


Whether to enable tracing for this Integration Flow Tracer. Set true to enable tracing or false to disable.


The maximum size in kilo bytes, up to which limit the payloads of the messages should be traced.

Configuring Integration Platform

The Integration Platform is the messaging engine of UltraESB-X. It can be configured as below.

<bean class="org.adroitlogic.x.core.IntegrationPlatform">
    <property name="executorService">
        <bean class="org.adroitlogic.x.core.exec.ScaleFirstExecutorService">
    <property name="scheduledThreadPool">
        <bean class="java.util.concurrent.ScheduledThreadPoolExecutor">
            <constructor-arg value="10"/>
    <property name="globalResponseTimeout" value="5000"/>
    <property name="globalEgressTimeout" value="5000"/>
    <property name="integrationFlowTracer" ref="integrationFlowTracer"/>


The executor service to be used as the main worker thread pool of UltraESB-X. The Scale-First Executor service configured before can be used for this.


The instance of java.util.concurrent.ScheduledThreadPoolExecutor to be used for scheduling tasks such as response timeouts and egress timeouts.


The global value in milliseconds, after which the message contexts originated from IN-OUT type Ingress connectors should expire. If a response timeout is not specified in the Ingress connector, this value will be used.


The global timeout value in milliseconds, upto which the OUT-IN type Egress connectors wait for an egress response. If an egress timeout is not specified in the Egress connector, this value will be used.


The instance of In-memory Integration Flow Tracer to be used for message tracing. Such an Integration Flow Tracer should never be used in a Production environment.

Configuring Environment

The Environment properties of UltraESB-X can be configured as below.

<bean id="environment" class="org.adroitlogic.x.core.Environment">
    <constructor-arg name="nodeName" value="localhost"/>
    <property name="mode" value="TEST"/>
    <property name="projectBaseDir" value="projects"/>
    <property name="tmpDir" value="tmp"/>


A unique name to identify this instance of UltraESB-X from other instances in a clustered deployment, in metrics reporting and etc.


The environment mode of this UltraESB-X instance. Depending on the use of this UltraESB-X instance, this property can have one of the following values of org.adroitlogic.x.api.XEnvironment.Mode enum.

  • PROD

  • TEST

  • DEV


The modes IDE and UNIT_TEST are reserved for the use of Ultra Studio and unit test executions respectively, hence should not be used in any other environments.


The base directory to be used for Ultra Project deployments (location where the .xpr files should be placed)


A directory to be used as the temporary file location by UltraESB-X for tasks such as extracting the project archives.

Enabling Metrics, Management server and Clustering

In UltraESB-X full distribution, the metrics, management server and clustering can be enabled/disabled by adding the following Spring import statements respectively to the server.xml file.

<import resource="metrics/metrics.xml"/>
<import resource="management/management.xml"/>
<import resource="cluster/cluster.xml"/>

Please refer Project-X documentation for detailed configuration guides for these aspects.

The UltraESB-X distribution comes with a limited-time evaluation license key included, which can be found in the $ULTRA_HOME/conf/license/license.key.properties file. Also you will need to have a client key in the file $ULTRA_HOME/conf/license/client.key.properties file which will be either included in the bundle or sent to you by email when the distribution bundle is downloaded.

And there is also another configuration file $ULTRA_HOME/conf/license/license.conf.properties which contains a few configuration parameters related to licensing such as URL of the remote license server and the number of days before which UltraESB-X should issue warnings regarding license expiration.

Once all 3 of these files are present, you can start the UltraESB-X instance. At the first time it starts, it will automatically connect to the remote license server and retrieve the license details related to your license key. As these details will be saved in a file named $ULTRA_HOME/conf/license/license.properties, it should be ensured that the UltraESB-X process has write permissions to the $ULTRA_HOME/conf/license/ directory.

Applying a new license key

If you receive a new license key from Adroitlogic for Production use etc., you can apply it by the following steps.

  1. Open license.key.properties file and replace the existing license key with the new key

  2. If you receive a new client key as well, open client.key.properties file and replace the existing client key with the new key

  3. If there is a license.properties file already present, remove it

  4. Restart UltraESB-X

Running UltraESB-X

After the above configurations are done, your UltraESB-X instance is all set to be run. First navigate to the $ULTRA_HOME/bin directory, open the ultraesbx.sh file and set the following properties.

# Name of the user to run as
# Location of the UltraESB installation
# Location of Java JDK/JRE with the unlimited strength policy files applied - where required.
export JAVA_HOME=/opt/jdk

Further the $ULTRA_HOME/conf/wrapper.conf file can be used to alter/set other runtime configurations such as VM options. Then UltraESB-X can be started/stopped as follows.

$ sh ultraesbx.sh start
Starting ultraesb

$ sh ultraesbx.sh status
AdroitLogic - UltraESB is running (2124).

$ sh ultraesbx.sh stop
Stopping ultraesb
ultraesb stopped successfully

$ sh ultraesbx.sh status
AdroitLogic - UltraESB is not running.
In this topic
In this topic
Contact Us