Planning and Designing XARs

Note: This topic does not apply to WebSphere MQ.

For a great majority of the applications that use XARs, the process of implementing an XAR is simple and straightforward, requiring only that you define the XAR in Enterprise Server. For more information about defining an XAR, see To define an XAR for an enterprise server region.

However, for a more complicated application, you need to plan ahead and design the required XAR(s) to accommodate the complexity of such an application. This can require modification and recompilation of application source code, and compilation of XAR switch module source code, which is provided with our Enterprise Developer product. For more information on this process, see the Planning and Designing XARs topic in your Enterprise Developer documentation.

After building a Micro Focus RM switch module in Enterprise Developer, you can include it in an XAR definition in Enterprise Server. An XAR definition includes an xa_open string, which is where you include specific RM syntax for the underlying RM.

In addition to the RM-specific xa_open string syntax, we provide several options that enable you to fine-tune your XAR definitions to yield maximum efficiency when running applications on Enterprise Server.

XARs support the following RM switch module types:

Before configuring an XAR for an enterprise server region, we suggest that you consider the following:

Does the application require more than one XAR?
This depends on what database(es) the application accesses, and how the application interacts with it.
Do any applications require more than one XAR of the same RM switch module type?
If your application does not require more than one XAR of the same RM switch module type, then you are ready to define your XAR(s) in your enterprise server region .

However, in some scenarios, more than one XAR of the same type might be required for a CICS or Web services application. This likely requires recompilation of application source code. See Working with Multiple XARs in your Enterprise Developer documentation for more information.

Is the application coded to use distinct XARs?
Typically, the SQL code of CICS transaction or Web Services requests are stored in distinct source code modules – some modules used with only one database, and others used with another. Code constructed in this fashion can be compiled for each program module using the XAID compiler directive option set to the value of the appropriate XAR ID. This eliminates the need to change code.
Is it best to use a static or dynamic RM switch module in an XAR?
This depends on how the XAR is accessed by the application(s). See RM Switch Module Registration for more information.
Should transactions be run locally or globally?
This depends on the types of transactions executed. See the LocalTX=(T|F) section in SQL xa_open string Configuration Options for more information.
When and how should user credentials be obtained and applied?
You can configure an XAR to use xa_open-supplied user credentials, or to determine user credentials based on the current user. For more information, see User Impersonation for CICS and JCL and the UserP=(T|F) section in SQL xa_open string Configuration Options.
Are any of the required XARs used in batch jobs only?
If so, consider identifying these XARs as batch-only resources, which can save considerable overhead, and eliminate the need to recompile using the XAID compiler directive option. For more information, see the BatchOnly=(T|F) section in SQL xa_open string Configuration Options.

For more information about configuring an XAR, see To configure an XAR for an enterprise server region.

Important: If you are using a dynamically registered RM switch module for either IBM DB2 or Oracle, and you plan to use User Impersonation, you must recompile your application source code with the XAID compiler directive option before deploying the application to Enterprise Server. See XAID for more information.
Note: The WebSphere MQ module provided is a built module, not a source code file. It is available in both your development and deployment environments. See the WebSphere MQ topic for more information.