The EDB PostgreSQL module provides two-phase commit support using PostgreSQL-provided SQL calls, and ensures that any database
connections made using this switch module all participate in a single XA transaction.
PostgreSQL Server configuration for XA
Important: Before you can use the EDB PostgreSQL RM Switch Module, you must configure the PostgreSQL Server by changing the value of
the max_prepared_transactions property from its default value of 0 (zero) to a value greater than 0. After making this change,
you must restart the postgresql server before proceeding. For additional details about the max_prepared_transactions configuration
property, see your PostgreSQL product documentation.
Windows Environments
- Source Code
- The EDB PostgreSQL RM switch module COBOL source file,
ESPGSQLXA.CBL is located by default in the
%ProgramFiles(x86)%\Micro Focus\Enterprise Developer\src\enterpriseserver\xa directory.
Note: If you prefer to supply user credentials programatically rather than in the xa_open string, instructions for doing so are
provided in the COBOL source file in the
Customization section.
- Build Requirements
- To build the EDB PostgreSQL RM switch module, you must have the Windows Software Development Kit (SDK) installed for your
version of Windows.
Before building this switch module, ensure that your LIB environment variable contains the path to the
odbc32.lib file, located in a subdirectory under your Windows SDK LIB directory.
- Building the Switch Module
-
- Method 1
-
- Start an
Enterprise Developer command prompt, 32-bit or 64-bit depending on the application, running as an administrator.
- Change to the
%ProgramFiles(x86)%\Micro Focus\Enterprise Developer\src\enterpriseserver\xa directory (default location).
- Enter
build pg [directives]
- Method 2
-
- Start an
Enterprise Developer command prompt, 32-bit or 64-bit depending on the application.
- Copy all files from the
%ProgramFiles(x86)%\Micro Focus\Enterprise Developer\src\enterpriseserver\xa directory (default location) to any location where you have WRITE permission.
- Change to the directory containing the copied files.
- Enter
build pg [directives]
- Build Output
- The build process produces two binary switch module files from the
ESPGSQLXA.CBL COBOL source file:
Binary File
|
Type
|
ESPGSQLXA_S.DLL
|
static
|
ESPGSQLXA.DLL
|
dynamic
|
You can register an RM switch module with
Enterprise Server dynamically, or register it statically depending on which binary file you use. We recommend that you use the dynamic switch
module option, as this ensures that only active databases used in the global transaction participate in the TM/RM XA flow.
UNIX Environments
- Source Code
- The EDB PostgreSQL RM switch module COBOL source file,
ESPGSQLXA.CBL is located by default in the
$COBDIR/src/enterpriseserver/xa directory.
Note: If you prefer to supply user credentials programatically rather than in the xa_open string, instructions for doing so are
provided in the COBOL source file in the
Customization section.
- Build Requirements
- The build script uses the current effective working mode to determine how to build the switch module.
- Building the Switch Module
- The
$COBDIR/src/enterpriseserver/xa directory contains the
build script file that you can use to build the switch module.
- Copy all files from the
$COBDIR/src/enterpriseserver/xa directory (default location) to any location where you have WRITE permission.
- Change to the directory containing the copied files.
- Enter
build pg
- Build Output
- The build process produces four binary RM switch module files from the
ESPGSQLXA.CBL COBOL source file:
ESPGSQLXA.so |
32-bit |
dynamic |
ESPGSQLXA64.so |
64-bit |
dynamic |
ESPGSQLXA_S.so |
32-bit |
static |
ESPGSQLXA64_S.so |
64-bit |
static
|
You can register an RM switch module with
Enterprise Server dynamically, or register it statically depending on which binary file you use. We recommend that you use the dynamic switch
module option, as this ensures that only active databases used in the global transaction participate in the TM/RM XA flow.
All Environments
- Additional Resources
- For more information on using the EDB PostgreSQL RM switch module, including the xa_open string definition, see
EDB PostgreSQL xa_open string.
Creating an XA Resource
Your enterprise server region requires an XA resource for each datastore that contains one or more transactional files. If
the database containing the datastore is also used by other COBOL applications, additional XA resources are required. Refer
to
Working with Multiple XARs for details on how to handle such situations.
- In the table of servers on the Home page of Enterprise Server Administration, click
Edit
to the left in the row for the enterprise server region that references the transactional data file.
- Click the
XA Resources tab.
- Specify the following XAR details:
Option
|
Description
|
ID
|
Unique ID for the XAR.
|
Name
|
Unique name for the XAR.
|
Module
|
Specify the location of the RM switch module executable file (.dll on Windows or
.so on UNIX platforms). This is database specific:
esmssql.dll/.so for MSSQL and Azure SQL,
ESPGSQLXA.dll/.so for PostgreSQL, and
ESDB2XA.dll/.so for Db2. Refer to
Building RM Switch Modules for more information.
|
Open string
|
DSN=<datastore-dsn>
where
<datastore-dsn> is the ODBC data source name of the datastore you are configuring.
Note: These are only the mandatory options required, with the addition of
USRPASS=userid.password if you are using a PostgreSQL database. You can also specify further options as required, as detailed in
To Define an XA Resource (XAR) for an Enterprise Server Region.
|
- Select
Enabled.
- Click
OK.
The XA resource should be effective immediately.