Wiki Markup |
---|
{scrollbar} |
In order for XA transactions to work properly,
Excerpt |
---|
each Geronimo instance connecting to a resource manager such as an XA capable database or jms needs to have a globally unique and permanent Id. |
In Geronimo this id is a byte sequence configured in the XidFactory service in the transaction plugin. Do not change this while the server is running or while there are any in-doubt transactions anywhere in your system. This is the server identity as far as the xa system is concerned. For instance if a server becomes permanently unavailable due to hardware failure you can recover in-doubt transactions it is responsible for by setting up another server with the same apps and the dead server's TmId.
How to set the TmId (Geronimo 2.1.2, 2.2, and later)
Edit the line
Code Block |
---|
TmId=71,84,77,73,68 |
in var/config/config-substitutions.properties to contain a unique byte sequence.
How to set the TmId (Geronimo 2.1.0 and 2.1.1)
Modify the var/config/config.xml file to look more like this (add the XidFactory element):
Code Block |
---|
<module name="org.apache.geronimo.configs/transaction/2.1.1/car"> <gbean name="XidFactory"> <attribute name="tmId">71,84,77,73,68</attribute> </gbean> <gbean name="ResourceBindings"> <attribute name="format">${ResourceBindingsFormat}</attribute> <attribute name="nameInNamespace">${ResourceBindingsNameInNamespace}</attribute> <attribute name="namePattern">${ResourceBindingsNamePattern}</attribute> <attribute name="abstractNameQuery">${ResourceBindingsQuery}</attribute> </gbean> </module> |
Again, use a unique byte sequence.