Applications

An application is a container for all the resources that are required to create a solution. An application can contain IBM® Integration Bus resources, such as flows, message definitions, libraries, and JAR files.

At design time, you define references to the following items:
  • Zero or more message flow dependencies (such as a Java™ project or message set).
  • Zero or more libraries that contain reusable resources.

You use applications to group all the resources that are required to deliver an integration solution, enabling easier development and management. If you are developing resources for multiple integration solutions in the IBM Integration Toolkit, then consider grouping your resources into applications. The use of a shared or static library helps organization by grouping reusable resources together. A shared library can also be used by other applications, services, shared libraries, or integration projects.

Applications typically contain message flows. If the message flow requires only one or two additional resources, such as one schema file and one ESQL file, consider storing all resources at the application level. But when you require multiple resources for your solution, or resources that might be shared with other solutions, consider putting the resources that your message flow requires into a shared library. That shared library can then be referenced by the application.

Applications provide runtime isolation whereby resources inside the application are not visible to other resources, such as message flows, libraries, or other applications that are running outside the application. Consider using applications if you need to ensure that updates to one group of deployed resources do not affect another group. For example, use an application when you want to control which flows pick up the latest version of an ESQL module. For examples of how to use applications to achieve runtime isolation, see Runtime isolation and resource sharing with applications and libraries.

Java isolation in applications

Versions 8 and 9 of IBM Integration Bus did not support Java isolation in applications. All Java that was deployed to the execution group was loaded into a single class loader, which was used by all JavaCompute nodes in all applications. This behavior precluded the use of duplicate classes.

When you create an application in Version 10 or later, Java isolation is enabled by default. For each application, a Java class loader is built that contains only the Java that is deployed in that application and any included static libraries.

You can enable and disable Java isolation for individual applications by setting the Java Isolation configuration property on the Manage tab of the BAR file editor. To see whether Java isolation is enabled for the applications that have been deployed to an integration server, use the web user interface or the mqsilist command. For example:
mqsilist integrationNodeName -e integrationServerName -d 2

Viewing applications

Applications are shown in the Application Development view. Resources that are contained in an application are also shown, whether an application refers to them directly or indirectly.

Applications are represented by the application icon Icon for an application.

Applications that have been deployed to an integration server are displayed directly beneath the integration server in the IBM Integration Toolkit and the web user interface. Libraries that are referenced by applications are displayed directly beneath the application. Shared libraries are contained in a Referenced Libraries folder, and static libraries are contained in an Included Libraries folder. You can also view deployed applications by using the IBM Integration API or the mqsilist command; for example:
mqsilist integrationNodeName -e integrationServerName -k applicationName
This command specifies whether the application is running, and on which integration server. You can also see the deployed objects that are contained in that application, and a list of shared libraries that are referenced by the application.

You can also specify how an application or message flow is started after it is deployed, or after the integration node, integration server, or containing application is restarted. You can choose to start an application or flow manually, or for it to be started automatically. You can also choose to maintain the existing state of an application or library. You can configure the run state by using the BAR File editor, as described in Editing configurable properties in a BAR file. You can also use the mqsiapplybaroverride command, as described in Setting the start mode of message flows and applications at run time.

If you focus on an application, the Application Development view shows only that application. When viewing projects, you can also filter resources by using working sets.

For detailed instructions about how to manage your resources by using applications, see Managing message flow resources.