[jboss-cvs] JBossAS SVN: r76625 - in projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide: ja-JP and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Aug 4 21:25:24 EDT 2008


Author: mospina
Date: 2008-08-04 21:25:24 -0400 (Mon, 04 Aug 2008)
New Revision: 76625

Added:
   projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/
   projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Appendix.po
   projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Architecture_of_the_Recovery_Manager.po
   projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Author_Group.po
   projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Book_Info.po
   projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/How_JBossTS_managers_the_OTS_Recovery_Protocol.po
   projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Preface.po
   projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Revision_History.po
   projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Transactions_Failure_Recovery_Guide.po
   projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/
   projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Appendix.pot
   projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Architecture_of_the_Recovery_Manager.pot
   projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Author_Group.pot
   projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Book_Info.pot
   projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/How_JBossTS_managers_the_OTS_Recovery_Protocol.pot
   projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Preface.pot
   projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Revision_History.pot
   projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Transactions_Failure_Recovery_Guide.pot
   projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/messages.mo
Modified:
   projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/Makefile
Log:
Adding po files for Japanese translation

Modified: projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/Makefile
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/Makefile	2008-08-04 23:07:21 UTC (rev 76624)
+++ projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/Makefile	2008-08-05 01:25:24 UTC (rev 76625)
@@ -6,6 +6,7 @@
 BRAND		= JBoss
 
 #OTHER_LANGS	= as-IN bn-IN de-DE es-ES fr-FR gu-IN hi-IN it-IT ja-JP kn-IN ko-KR ml-IN mr-IN or-IN pa-IN pt-BR ru-RU si-LK ta-IN te-IN zh-CN zh-TW
+OTHER_LANGS	= ja-JP
 TRANSLATIONS	= $(XML_LANG) $(OTHER_LANGS)
 
 COMMON_CONFIG  = /usr/share/publican

Added: projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Appendix.po
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Appendix.po	                        (rev 0)
+++ projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Appendix.po	2008-08-05 01:25:24 UTC (rev 76625)
@@ -0,0 +1,20 @@
+# Language ja-JP translations for Transactions_Failure_Recovery_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Transactions_Failure_Recovery_Guide 0.1\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-08-05 01:23+0000\n"
+"PO-Revision-Date: 2008-08-05 01:23+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr ""

Added: projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Architecture_of_the_Recovery_Manager.po
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Architecture_of_the_Recovery_Manager.po	                        (rev 0)
+++ projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Architecture_of_the_Recovery_Manager.po	2008-08-05 01:25:24 UTC (rev 76625)
@@ -0,0 +1,1469 @@
+# Language ja-JP translations for Transactions_Failure_Recovery_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Transactions_Failure_Recovery_Guide 0.1\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-08-05 01:23+0000\n"
+"PO-Revision-Date: 2008-08-05 01:23+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:6
+#, no-c-format
+msgid "Architecture of the Recovery Manager"
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:8
+#, no-c-format
+msgid "Crash Recovery Overview"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:9
+#, no-c-format
+msgid ""
+"The main architectural components within Crash Recovery are illustrated in "
+"the diagram below:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:17
+#, no-c-format
+msgid ""
+"The Recovery Manager is a daemon process responsible for performing crash "
+"recovery. Only one Recovery Manager runs per node. The Object Store provides "
+"persistent data storage for transactions to log data. During normal "
+"transaction processing each transaction will log persistent data needed for "
+"the commit phase to the Object Store. On successfully committing a "
+"transaction this data is removed, however if the transaction fails then this "
+"data remains within the Object Store."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:20
+#, no-c-format
+msgid "The Recovery Manager functions by:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:25
+#, no-c-format
+msgid ""
+"Periodically scanning the Object Store for transactions that may have "
+"failed. Failed transactions are indicated by the presence of log data after "
+"a period of time that the transaction would have normally been expected to "
+"finish."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:30
+#, no-c-format
+msgid ""
+"Checking with the application process which originated the transaction "
+"whether the transaction is still in progress or not."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:35
+#, no-c-format
+msgid ""
+"Recovering the transaction by re-activating the transaction and then "
+"replaying phase two of the commit protocol."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:40
+#, no-c-format
+msgid ""
+"The following sections describe the architectural components in more detail"
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:46
+#, no-c-format
+msgid "Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:47
+#, no-c-format
+msgid ""
+"On initialization the Recovery Manager first loads in configuration "
+"information via a properties file. This configuration includes a number of "
+"recovery activators and recovery modules, which are then dynamically loaded."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:50
+#, no-c-format
+msgid ""
+"Since the version 3.0 of JBossTS, the Recovery Manager is not specifically "
+"tied to an Object Request Broker or ORB. Hence, the OTS recovery protocol is "
+"not implicitly enabled. To enable such protocol, we use the concept of "
+"recovery activator, defined with the interface "
+"<interfacename>RecoveryActivator</interfacename>, which is used to "
+"instantiate a recovery class related to the underlying communication "
+"protocol. For instance, when used with OTS, the "
+"<interfacename>RecoveryActivitor</interfacename> has the responsibility to "
+"create a RecoveryCoordinator object able to respond to the replay_completion "
+"operation."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:53
+#, no-c-format
+msgid ""
+"All <interfacename>RecoveryActivator</interfacename> instances inherit the "
+"same interface. They are loaded via the following recovery extension "
+"property:"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:56
+#, no-c-format
+msgid ""
+"&lt;property  \n"
+"                   name=\"com.arjuna.ats.arjuna.recovery."
+"recoveryActivator_&lt;number&gt;\" value=\"RecoveryClass\" /&gt;"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:57
+#, no-c-format
+msgid ""
+"For instance the <interfacename>RecoveryActivator</interfacename> provided "
+"in the distribution of JTS/OTS, which shall not be commented, is as follow:"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:60
+#, no-c-format
+msgid ""
+"&lt;property \n"
+"        name=\"com.arjuna.ats.arjuna.recovery.recoveryActivator_1\" value="
+"\"com.arjuna.ats.internal.jts.orbspecific.recovery.RecoveryEnablement/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:61
+#, no-c-format
+msgid ""
+"When loaded all <interfacename>RecoveryActivator</interfacename> instances "
+"provide the method <methodname>startRCservice</methodname> invoked by the "
+"Recovery Manager and used to create the appropriate Recovery Component able "
+"to receive recovery requests according to a particular transaction protocol. "
+"For instance the RecoveryCoordinator defined by the OTS protocol."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:64
+#, no-c-format
+msgid ""
+"Each recovery module is used to recover a different type of transaction/"
+"resource, however each recovery module inherits the same basic behavior."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:67
+#, no-c-format
+msgid ""
+"Recovery consists of two separate passes/phases separated by two timeout "
+"periods. The first pass examines the object store for potentially failed "
+"transactions; the second pass performs crash recovery on failed "
+"transactions. The timeout between the first and second pass is known as the "
+"backoff period. The timeout between the end of the second pass and the start "
+"of the first pass is the recovery period. The recovery period is larger than "
+"the backoff period."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:70
+#, no-c-format
+msgid ""
+"The Recovery Manager invokes the first pass upon each recovery module, "
+"applies the backoff period timeout, invokes the second pass upon each "
+"recovery module and finally applies the recovery period timeout before "
+"restarting the first pass again."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:73
+#, no-c-format
+msgid ""
+"The recovery modules are loaded via the following recovery extension "
+"property:"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:76
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;number&gt;=&lt;"
+"RecoveryClass&gt;"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:77
+#, no-c-format
+msgid ""
+"The backoff period and recovery period are set using the following "
+"properties:"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:80
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod        (default 10 "
+"secs)\n"
+"com.arjuna.ats.arjuna.recovery.periodicRecovery                (default 120 "
+"secs)"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:81
+#, no-c-format
+msgid "The following java classes are used to implement the Recovery Manager:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:86
+#, no-c-format
+msgid "package <package>com.arjuna.ats.arjuna.recovery</package>:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:91
+#, no-c-format
+msgid ""
+"RecoveryManager: The daemon process that starts up by instantiating an "
+"instance of the RecoveryManagerImple class."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:96
+#, no-c-format
+msgid "RecoveryEnvironment: Properties used by the recovery manager."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:101
+#, no-c-format
+msgid ""
+"RecoveryConfiguration: Specifies the name of the Recovery Manager property "
+"file. (for instance, RecoveryManager-properties.xml)"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:108
+#, no-c-format
+msgid "package <package>com.arjuna.ats.internal.ts.arjuna.recovery</package>:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:113
+#, no-c-format
+msgid ""
+"RecoveryManagerImple: Creates and starts instances of the "
+"RecActivatorLoader, the PeriodicRecovery thread and the ExpiryEntryMonitor "
+"thread."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:118
+#, no-c-format
+msgid ""
+"RecActivatorLoader: Dynamically loads in the RecoveryActivator specified in "
+"the Recovery Manager property file. Each RecoveryActicator is specified as a "
+"recovery extension in the properties file."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:123
+#, no-c-format
+msgid ""
+"PeriodicRecovery: Thread which loads each recovery module, then calls the "
+"first pass method for each module, applies the backoff period timeout, calls "
+"the second pass method for each module and applies the recovery period "
+"timeout."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:128
+#, no-c-format
+msgid ""
+"RecoveryClassLoader: Dynamically loads in the recovery modules specified in "
+"the Recovery Manager property file. Each module is specified as a recovery "
+"extension in the properties file (for instance, com.arjuna.ats.arjuna."
+"recovery.recoveryExtension1= com.arjuna.ats.internal.ts.arjuna.recovery."
+"AtomicActionRecoveryModule)."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:136
+#, no-c-format
+msgid ""
+"By default, the recovery manager listens on the first available port on a "
+"given machine. If you wish to control the port number that it uses, you can "
+"specify this using the com.arjuna.ats.arjuna.recovery.recoveryPort attribute."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:141
+#, no-c-format
+msgid "Embedding the Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:142
+#, no-c-format
+msgid ""
+"In some situations it may be required to embed the RecoveryManager in the "
+"same process as the transaction service. In this case you can create an "
+"instance of the RecoveryManager through the manager method on com.arjuna.ats."
+"arjuna.recovery.RecoveryManager. A RecoveryManager can be created in one of "
+"two modes, selected via the parameter to the manager method:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:148
+#, no-c-format
+msgid ""
+"INDIRECT_MANAGEMENT: the manager runs periodically but can also be "
+"instructed to run when desired via the scan operation or through the "
+"RecoveryDriver class to be described below."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:153
+#, no-c-format
+msgid ""
+"DIRECT_MANAGEMENT: the manager does not run periodically and must be driven "
+"directly via the scan operation or RecoveryDriver."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:159
+#, no-c-format
+msgid "Managing recovery directly"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:160
+#, no-c-format
+msgid ""
+"As already mentioned, recovery typically happens at periodic intervals. If "
+"you require to drive recovery directly, then there are two options, "
+"depending upon how the RecoveryManager has been created."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:165
+#, no-c-format
+msgid "Seperate Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:166
+#, no-c-format
+msgid ""
+"You can either use the com.arjuna.ats.arjuna.tools.RecoveryMonitor program "
+"to send a message to the Recovery Manager instructing it to perform "
+"recovery, or you can create an instance of the com.arjuna.ats.arjuna."
+"recovery.RecoveryDriver class to do likewise. There are two types of "
+"recovery scan available:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:172
+#, no-c-format
+msgid ""
+"ASYNC_SCAN: here a message is sent to the RecoveryManager to instruct it to "
+"perform recovery, but the response returns before recovery has completed."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:177
+#, no-c-format
+msgid ""
+"SYNC: here a message is sent to the RecoveryManager to instruct it to "
+"perform recovery, and the response occurs only when recovery has completed."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:183
+#, no-c-format
+msgid "In process Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:184
+#, no-c-format
+msgid ""
+"You can invoke the scan operation on the RecoveryManager. This operation "
+"returns only when recovery has completed. However, if you wish to have an "
+"asynchronous interaction pattern, then the RecoveryScan interface is "
+"provided:"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:188
+#, no-c-format
+msgid ""
+"public interface RecoveryScan\n"
+"{\n"
+"        public void completed ();\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:189
+#, no-c-format
+msgid ""
+"An instance of an object supporting this interface can be passed to the scan "
+"operation and its completed method will be called when recovery finishes. "
+"The scan operation returns immediately, however."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:195
+#, no-c-format
+msgid "Recovery Modules"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:196
+#, no-c-format
+msgid ""
+"As stated before each recovery module is used to recover a different type of "
+"transaction/resource, but each recovery module must implement the following "
+"RecoveryModule interface, which defines two methods: "
+"<methodname>periodicWorkFirstPass</methodname> and "
+"<methodname>periodicWorkSecondPass</methodname> invoked by the Recovery "
+"Manager."
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:199
+#, no-c-format
+msgid ""
+"public interface RecoveryModule\n"
+"{\n"
+"        /**\n"
+"        * Called by the RecoveryManager at start up, and then\n"
+"        * PERIODIC_RECOVERY_PERIOD seconds after the completion, for all   \n"
+"        * RecoveryModules of the second pass\n"
+"        */\n"
+"        public void periodicWorkFirstPass ();\n"
+"        \n"
+"        /**\n"
+"        * Called by the RecoveryManager RECOVERY_BACKOFF_PERIOD seconds\n"
+"        * after the completion of the first pass\n"
+"        */\n"
+"        public void periodicWorkSecondPass ();\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:201
+#, no-c-format
+msgid "JBossTS Recovery Module Classes"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:202
+#, no-c-format
+msgid ""
+"JBossTS provides a set of recovery modules that are responsible to manage "
+"recovery according to the nature of the participant and its position in a "
+"transactional tree. The provided classes (that all implements the "
+"<interfacename>RecoveryModule</interfacename> interface) are:"
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:209
+#, no-c-format
+msgid "com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:210
+#, no-c-format
+msgid "Recovers AtomicAction transactions."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:217
+#, no-c-format
+msgid "com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:218
+#, no-c-format
+msgid "Recovers Transactional Objects for Java."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:225
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions.TransactionRecoveryModule"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:226
+#, no-c-format
+msgid ""
+"Recovers JTS Transactions. This is a generic class from which TopLevel and "
+"Server transaction recovery modules inherit, respectively"
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:233
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"TopLevelTransactionRecoveryModule"
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:240
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"ServerTransactionRecoveryModule"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:246
+#, no-c-format
+msgid ""
+"To illustrate the behavior of a recovery module, the following pseudo code "
+"describes the basic algorithm used for Atomic Action transactions and "
+"Transactional Objects for java."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:250
+#, no-c-format
+msgid "AtomicAction pseudo code"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:251
+#, no-c-format
+msgid "First Pass:"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:255
+#, no-c-format
+msgid ""
+"&lt; create a transaction vector for transaction Uids. &gt;\n"
+"&lt; read in all transactions for a transaction type AtomicAction. &gt;\n"
+"while &lt; there are transactions in the vector of transactions. &gt;\n"
+"do\n"
+"        &lt; add the transaction to the vector of transactions. &gt;\n"
+"end while."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:256
+#: Architecture_of_the_Recovery_Manager.xml:265
+#, no-c-format
+msgid "Second Pass:"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:259
+#, no-c-format
+msgid ""
+"while &lt; there are transactions in the transaction vector &gt;\n"
+"do\n"
+"        if &lt; the intention list for the transaction still exists &gt;\n"
+"        then\n"
+"                &lt; create new transaction cached item &gt;\n"
+"                &lt; obtain the status of the transaction &gt;\n"
+"                                        \n"
+"                if         &lt; the transaction is not in progress &gt;\n"
+"                then\n"
+"                        &lt; replay phase two of the commit protocol &gt;\n"
+"                endif.\n"
+"        endif.\n"
+"end while."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:261
+#, no-c-format
+msgid "Transactional Object pseudo code"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:262
+#, no-c-format
+msgid "First Pass"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:264
+#, no-c-format
+msgid ""
+"&lt; Create a hash table for uncommitted transactional objects. &gt;\n"
+"&lt; Read in all transactional objects within the object store. &gt;\n"
+"while &lt; there are transactional objects &gt;\n"
+"do\n"
+"        if         &lt; the transactional object has an Uncommited status in "
+"the object store &gt;\n"
+"        then\n"
+"                &lt; add the transactional Object o the hash table for "
+"uncommitted transactional objects&gt;\n"
+"        end if.\n"
+"end while."
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:268
+#, no-c-format
+msgid ""
+"while &lt; there are transactions in the hash table for uncommitted "
+"transactional objects &gt;\n"
+"do\n"
+"        if &lt; the transaction is still in the Uncommitted state &gt;\n"
+"        then\n"
+"                if &lt; the transaction is not in the Transaction Cache "
+"&gt;\n"
+"                then\n"
+"                        &lt; check the status of the transaction with the "
+"original application process &gt;\n"
+"                        if &lt; the status is Rolled Back or the application "
+"process is inactive &gt;\n"
+"                                &lt; rollback the transaction by removing "
+"the Uncommitted status from the Object Store &gt;\n"
+"                        endif.\n"
+"                endif.\n"
+"        endif.\n"
+"end while."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:270
+#, no-c-format
+msgid "A Recovery Module for XA Resources"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:271
+#, no-c-format
+msgid ""
+"To manage recovery, we have seen in the previous chapter that the Recovery "
+"Manager triggers a recovery process by calling a set of recovery modules "
+"that implements the two methods defined by the "
+"<interfacename>RecoveryModule</interfacename> interface."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:275
+#, no-c-format
+msgid ""
+"To enable recovery of participants controlled via the <interfacename>XA</"
+"interfacename> interface, a specific recovery module named XARecoveryModule "
+"is provided. The XARecoveryModule, defined in the packages <package>com."
+"arjuna.ats.internal.jta.recovery.arjunacore</package> and <package>com."
+"arjuna.ats.internal.jta.recovery.jts</package>, handles recovery of "
+"<interfacename>XA</interfacename> resources (for example, databases) used in "
+"JTA."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:279
+#, no-c-format
+msgid ""
+"JBossTS supports two JTA implementations: a purely local version (no "
+"distributed transactions) and a version layered on the JTS. Recovery for the "
+"former is straightforward. In the following discussion we shall implicitly "
+"consider on the JTS implementation."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:283
+#, no-c-format
+msgid ""
+"Its behavior consists of two aspects: <emphasis>transaction-initiated</"
+"emphasis> and <emphasis>resource-initiated</emphasis> recovery. Transaction-"
+"initiated recovery is possible where the particular transaction branch had "
+"progressed far enough for a JTA Resource Record to be written in the "
+"ObjectStore, as illustrated in Figure 2."
+msgstr ""
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:290
+#, no-c-format
+msgid "JTA/JDBC information stored in the ObjectStore"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:292
+#, no-c-format
+msgid ""
+"A JTA Resource record contains the information needed to link the "
+"transaction, as known to the rest of JBossTS, to the database. Resource-"
+"initiated recovery is necessary for branches where a failure occurred after "
+"the database had made a persistent record of the transaction, but before the "
+"JTA ResourceRecord was persisted. Resource-initiated recovery is also "
+"necessary for datasources for which it is not possible to hold information "
+"in the JTA Resource record that allows the recreation in the RecoveryManager "
+"of the XAConnection/XAResource that was used in the original application."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:296
+#, no-c-format
+msgid ""
+"When running XA recovery it is necessary to tell JBossTS which types of Xid "
+"it can recover. Each Xid that JBossTS creates has a unique node identifier "
+"encoded within it and JBossTS will only recover transactions and states that "
+"match a specified node identifier. The node identifier to use should be "
+"provided to JBossTS via a property that starts with the name <property>com."
+"arjuna.ats.jta.xaRecoveryNode</property>; multiple values may be provided. A "
+"value of ‘*’ will force JBossTS to recover (and possibly rollback) all "
+"transactions irrespective of their node identifier and should be used with "
+"caution. The contents of <property>com.arjuna.ats.jta.xaRecoveryNode</"
+"property> should be alphanumeric and match the values of <property>com."
+"arjuna.ats.arjuna.xa.nodeIdentifier</property>."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:300
+#, no-c-format
+msgid ""
+"Transaction-initiated recovery is automatic. The XARecoveryModule finds the "
+"JTA Resource Record that need recovery, then uses the normal recovery "
+"mechanisms to find the status of the transaction it was involved in (i.e., "
+"it calls replay_completion on the RecoveryCoordinator for the transaction "
+"branch), (re)creates the appropriate XAResource and issues commit or "
+"rollback on it as appropriate. The XAResource creation will use the same "
+"information, database name, username, password etc., as the original "
+"application."
+msgstr ""
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:307
+#, no-c-format
+msgid "Transaction-Initiated Recovery and XA Recovery"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:309
+#, no-c-format
+msgid ""
+"Resource-initiated recovery has to be specifically configured, by supplying "
+"the Recovery Manager with the appropriate information for it to interrogate "
+"all the databases (XADataSources) that have been accessed by any JBossTS "
+"application. The access to each XADataSource is handled by a class that "
+"implements the <interfacename>com.arjuna.ats.jta.recovery."
+"XAResourceRecovery</interfacename> interface, as illustrated in Figure 4. "
+"Instances of classes that implements the XAResourceRecovery interface are "
+"dynamically loaded, as controlled by properties with names beginning "
+"<property>com.arjuna.ats.jta.recovery.XAResourceRecovery</property>."
+msgstr ""
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:316
+#, no-c-format
+msgid "Resource-initiated recovery and XA Recovery"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:319
+#, no-c-format
+msgid ""
+"JBossTS 3.3 <interfacename>XAConnectionRecovery</interfacename> was "
+"deprecated in favor of <interfacename>XAResourceRecovery</interfacename>. "
+"Although the old interface still exists at the moment, users are encouraged "
+"to migrate to the new interface."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:323
+#, no-c-format
+msgid ""
+"The XARecoveryModule will use the XAResourceRecovery implementation to get a "
+"XAResource to the target datasource. On each invocation of "
+"periodicWorkSecondPass, the recovery module will issue an XAResource.recover "
+"request – this will (as described in the XA specification) return a list of "
+"the transaction identifiers (Xid’s) that are known to the datasource and are "
+"in an indeterminate (in-doubt) state. The list of these in-doubt Xid’s "
+"received on successive passes (i.e. periodicWorkSecondPass-es) is compared. "
+"Any Xid that appears in both lists, and for which no JTA ResourceRecord was "
+"found by the intervening transaction-initiated recovery is assumed to belong "
+"to a transaction that was involved in a crash before any JTA ResourceRecord "
+"was written, and a rollback is issued for that transaction on the XAResource."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:326
+#, no-c-format
+msgid ""
+"This double-scan mechanism is used because it is possible the Xid was "
+"obtained from the datasource just as the original application process was "
+"about to create the corresponding JTA_ResourceRecord. The interval between "
+"the scans should allow time for the record to be written unless the "
+"application crashes (and if it does, rollback is the right answer)."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:329
+#, no-c-format
+msgid ""
+"An <classname>XAResourceRecovery</classname> implementation class can be "
+"written to contain all the information needed to perform recovery to some "
+"datasource. Alternatively, a single class can handle multiple datasources. "
+"The constructor of the implementation class must have an empty parameter "
+"list (because it is loaded dynamically), but the interface includes an "
+"initialise method which passes in further information as a string. The "
+"content of the string is taken from the property value that provides the "
+"class name: everything after the first semi-colon is passed as the value of "
+"the string. The use made of this string is determined by the "
+"<classname>XAResourceRecovery</classname> implementation class."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:332
+#, no-c-format
+msgid ""
+"For further details on the way to implement a class that implements the "
+"interface <interfacename>XAResourceRecovery</interfacename>, read the JDBC "
+"chapter of the JTA Programming Guide. An implementation class is provided "
+"that supports resource-initiated recovery for any XADataSource. This class "
+"could be used as a template to build your own implementation class."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:336
+#, no-c-format
+msgid "Writing a Recovery Module"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:337
+#, no-c-format
+msgid ""
+"In order to recover from failure, we have seen that the Recovery Manager "
+"contacts recovery modules by invoking periodically the methods "
+"<methodname>periodicWorkFirstPass</methodname> and "
+"<methodname>periodicWorkSecondPass</methodname>. Each Recovery Module is "
+"then able to manage recovery according to the type of resources that need to "
+"be recovered. The JBoss Transaction product is shipped with a set of "
+"recovery modules (TOReceveryModule, XARecoveryModule…), but it is possible "
+"for a user to define their own recovery module to fit their application. The "
+"following basic example illustrates the steps needed to build such recovery "
+"module"
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:340
+#, no-c-format
+msgid "A basic scenario"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:341
+#, no-c-format
+msgid ""
+"This basic example does not aim to present a complete process to recover "
+"from failure, but mainly to illustrate the way to implement a recovery "
+"module."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:343
+#, no-c-format
+msgid ""
+"The application used here consists to create an atomic transaction, to "
+"register a participant within the created transaction and finally to "
+"terminate it either by commit or abort. A set of arguments are provided:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:348
+#, no-c-format
+msgid "to decide to commit or abort the transaction,"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:353
+#, no-c-format
+msgid "to decide generating a crash during the commitment process."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:358
+#, no-c-format
+msgid "The code of the main class that control the application is given below"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:361
+#, no-c-format
+msgid ""
+"package com.arjuna.demo.recoverymodule;\n"
+"        \n"
+"import com.arjuna.ats.arjuna.AtomicAction;\n"
+"import com.arjuna.ats.arjuna.coordinator.*;\n"
+"        \n"
+"public class TestRecoveryModule\n"
+"{\n"
+"        public static void main(String args[])\n"
+"        {\n"
+"                try \n"
+"                {\n"
+"                        AtomicAction tx = new AtomicAction();\n"
+"                        tx.begin(); // Top level begin\n"
+"        \n"
+"                        // enlist the participant \n"
+"                        tx.add(SimpleRecord.create());\n"
+"        \n"
+"                        System.out.println(\"About to complete the "
+"transaction \");\n"
+"                        for (int i = 0; i &lt; args.length; i++)\n"
+"                        {\n"
+"                                if ((args[i].compareTo(\"-commit\") == 0))\n"
+"                                _commit = true;\n"
+"                                if ((args[i].compareTo(\"-rollback\") == "
+"0))\n"
+"                                _commit = false;\n"
+"                                if ((args[i].compareTo(\"-crash\") == 0))\n"
+"                                _crash = true;\n"
+"                        }\n"
+"                        if (_commit)\n"
+"                                tx.commit();  // Top level commit\n"
+"                        else \n"
+"                                tx.abort();  // Top level rollback\n"
+"                        } catch(Exception e) {\n"
+"                        e.printStackTrace();\n"
+"                }\n"
+"        }\n"
+"        protected static boolean _commit = true;\n"
+"        protected static boolean _crash = false;\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:362
+#, no-c-format
+msgid "The registered participant has the following behavior:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:367
+#, no-c-format
+msgid ""
+"During the prepare phase, it writes a simple message - <emphasis>I’m "
+"prepared</emphasis>- on the disk such The message is written in a well known "
+"file."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:372
+#, no-c-format
+msgid ""
+"During the commit phase, it writes another message - <emphasis>I’m "
+"committed</emphasis>- in the same file used during prepare."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:377
+#, no-c-format
+msgid ""
+"If it receives an abort message, it removes from the disk the file used for "
+"prepare if any."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:382
+#, no-c-format
+msgid ""
+"If a crash has been decided for the test, then it crashes during the commit "
+"phase – the file remains with the message <emphasis>I’m prepared</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:387
+#, no-c-format
+msgid ""
+"The main portion of the code illustrating such behavior is described "
+"hereafter."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:391
+#, no-c-format
+msgid "The location of the file given in variable filename can be changed"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:395
+#, no-c-format
+msgid ""
+"package com.arjuna.demo.recoverymodule;\n"
+"        \n"
+"import com.arjuna.ats.arjuna.coordinator.*;\n"
+"import java.io.File;\n"
+"        \n"
+"public class SimpleRecord extends AbstractRecord {\n"
+"        public String filename = \"c:/tmp/RecordState\";\n"
+"        public SimpleRecord() {\n"
+"                System.out.println(\"Creating new resource\");\n"
+"        }\n"
+"        \n"
+"        public static AbstractRecord create()\n"
+"        {\n"
+"                return new SimpleRecord() ;\n"
+"        }\n"
+"        \n"
+"        public int topLevelAbort()\n"
+"        {\n"
+"                try {\n"
+"                        File fd = new File(filename);\n"
+"                        if (fd.exists()){\n"
+"                                if (fd.delete())\n"
+"                                        System.out.println(\"File Deleted"
+"\");\n"
+"                        }\n"
+"        }\n"
+"        catch(Exception ex){…}\n"
+"                return TwoPhaseOutcome.FINISH_OK;\n"
+"        }\n"
+"        \n"
+"        public int topLevelCommit()\n"
+"        {\n"
+"                if (TestRecoveryModule._crash)\n"
+"                        System.exit(0);\n"
+"                try  {\n"
+"                        java.io.FileOutputStream file = new    \n"
+"                                java.io.FileOutputStream(filename);\n"
+"                        java.io.PrintStream pfile = new java.io.PrintStream"
+"(file);\n"
+"                        pfile.println(\"I'm Committed\");\n"
+"                        file.close();\n"
+"                }\n"
+"                catch (java.io.IOException ex) {...}\n"
+"                return TwoPhaseOutcome.FINISH_OK ;\n"
+"        }\n"
+"        \n"
+"        public int topLevelPrepare()\n"
+"        {\n"
+"                try {\n"
+"                        java.io.FileOutputStream file = new\n"
+"                                java.io.FileOutputStream(filename);\n"
+"                        java.io.PrintStream pfile = new java.io.PrintStream"
+"(file);\n"
+"                        pfile.println(\"I'm prepared\");\n"
+"                        file.close();\n"
+"                }\n"
+"                catch (java.io.IOException ex)  {...}\n"
+"                return  TwoPhaseOutcome.PREPARE_OK ;\n"
+"        }\n"
+"        …\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:396
+#, no-c-format
+msgid ""
+"The role of the Recovery Module in such application consists to read the "
+"content of the file used to store the status of the participant, to "
+"determine that status and print a message indicating if a recovery action is "
+"needed or not."
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:399
+#, no-c-format
+msgid ""
+"package com.arjuna.demo.recoverymodule;\n"
+"        \n"
+"import com.arjuna.ats.arjuna.recovery.RecoveryModule;\n"
+"        \n"
+"public class SimpleRecoveryModule implements RecoveryModule\n"
+"{\n"
+"        public String filename = \"c:/tmp/RecordState\";\n"
+"        public SimpleRecoveryModule ()\n"
+"        {\n"
+"                System.out.println(\"The SimpleRecoveryModule is loaded\");\n"
+"        };\n"
+"        \n"
+"        public void periodicWorkFirstPass ()\n"
+"        {\n"
+"                try\n"
+"                {\n"
+"                        java.io.FileInputStream file = new \n"
+"                                java.io.FileInputStream(filename);\n"
+"                        java.io.InputStreamReader input = new \n"
+"                                java.io.InputStreamReader(file);\n"
+"                        java.io.BufferedReader reader = new java.io."
+"BufferedReader(input);\n"
+"                        String stringState = reader.readLine();\n"
+"                        if (stringState.compareTo(\"I'm prepared\") == 0)\n"
+"                                System.out.println(\"The transaction is in "
+"the prepared state\");\n"
+"                        file.close();\n"
+"                }\n"
+"                catch (java.io.IOException ex)\n"
+"                { System.out.println(\"Nothing found on the Disk\"); }\n"
+"        }\n"
+"        \n"
+"        public void periodicWorkSecondPass ()\n"
+"        {\n"
+"                try\n"
+"                {\n"
+"                        java.io.FileInputStream file = new \n"
+"                                java.io.FileInputStream(filename);\n"
+"                        java.io.InputStreamReader input = new \n"
+"                                java.io.InputStreamReader(file);\n"
+"                        java.io.BufferedReader reader = new java.io."
+"BufferedReader(input);\n"
+"                        String stringState = reader.readLine();\n"
+"                        if (stringState.compareTo(\"I'm prepared\") == 0)\n"
+"                        {\n"
+"                                System.out.println(\"The record is still in "
+"the prepared state – Recovery is needed\");\n"
+"                        }\n"
+"                        else if (stringState.compareTo(\"I'm Committed\") == "
+"0)\n"
+"                        {\n"
+"                                System.out.println(\"The transaction has "
+"completed and committed\");     \n"
+"                        }\n"
+"                        file.close();\n"
+"                }\n"
+"                catch (java.io.IOException ex)\n"
+"                { System.out.println(\"Nothing found on the Disk - Either "
+"there was \n"
+"                        no transaction or it as been rolled back\"); }\n"
+"        }\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:400
+#, no-c-format
+msgid ""
+"The recovery module should now be deployed in order to be called by the "
+"Recovery Manager. To do so, we just need to add an entry in the "
+"<filename>RecoveryManager-properties.xml</filename> by adding a new property "
+"as follow:"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:403
+#, no-c-format
+msgid ""
+"&lt;property\n"
+"                 name=\"com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;"
+"i&gt;\"\n"
+"        value=\"com.arjuna.demo.recoverymodule.SimpleRecoveryModule\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:404
+#, no-c-format
+msgid ""
+"Where &lt;i&gt; represent the new occurrence number that follows the last "
+"that already exists in the file. Once started, the Recovery Manager will "
+"automatically load the added Recovery module."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:408
+#, no-c-format
+msgid ""
+"The source of the code can be retrieved under the trailmap directory of the "
+"JBossTS installation."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:413
+#, no-c-format
+msgid "Another scenario"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:414
+#, no-c-format
+msgid ""
+"As mentioned, the basic application presented above does not present the "
+"complete process to recover from failure, but it was just presented to "
+"describe how the build a recovery module. In case of the OTS protocol, let’s "
+"consider how a recovery module that manages recovery of OTS resources can be "
+"configured."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:418
+#, no-c-format
+msgid ""
+"To manage recovery in case of failure, the OTS specification has defined a "
+"recovery protocol. Transaction’s participants in a doubt status could use "
+"the RecoveryCoordinator to determine the status of the transaction. "
+"According to that transaction status, those participants can take "
+"appropriate decision either by roll backing or committing. Asking the "
+"RecoveryCoordinator object to determine the status consists to invoke the "
+"replay_completion operation on the RecoveryCoordinator."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:421
+#, no-c-format
+msgid ""
+"For each OTS Resource in a doubt status, it is well known which "
+"RecoveyCoordinator to invoke to determine the status of the transaction in "
+"which the Resource is involved – It’s the RecoveryCoordinator returned "
+"during the Resource registration process. Retrieving such "
+"RecoveryCoordinator per resource means that it has been stored in addition "
+"to other information describing the resource."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:424
+#, no-c-format
+msgid ""
+"A recovery module dedicated to recover OTS Resources could have the "
+"following behavior. When requested by the recovery Manager on the first pass "
+"it retrieves from the disk the list of resources that are in the doubt "
+"status. During the second pass, if the resources that were retrieved in the "
+"first pass still remain in the disk then they are considered as candidates "
+"for recovery. Therefore, the Recovery Module retrieves for each candidate "
+"its associated RecoveryCoordinator and invokes the replay_completion "
+"operation that the status of the transaction. According to the returned "
+"status, an appropriate action would be taken (for instance, rollback the "
+"resource is the status is aborted or inactive)."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:429
+#, no-c-format
+msgid "TransactionStatusConnectionManager"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:430
+#, no-c-format
+msgid ""
+"The TransactionStatusConnectionManager object is used by the recovery "
+"modules to retrieve the status of transactions and acts like a proxy for "
+"TransactionStatusManager objects. It maintains a table of "
+"TransactionStatusConnector obects each of which connects to a "
+"TransactionStatusManager object in an Application Process."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:433
+#, no-c-format
+msgid ""
+"The transactions status is retrieved using the getTransactionStatus methods "
+"which take a transaction Uid and if available a transaction type as "
+"parameters. The process Uid field in the transactions Uid parameter is used "
+"to lookup the target TransactionStatusManagerItem host/port pair in the "
+"Object Store. The host/port pair are used to make a TCP connection to the "
+"target TransactionStatusManager object by a TransactionStatusConnector "
+"object. The TransactionStatusConnector passes the transaction Uid/"
+"transaction type to the TransactionStatusManager in order to retrieve the "
+"transactions status."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:438
+#, no-c-format
+msgid "Expired Scanner Thread"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:439
+#, no-c-format
+msgid ""
+"When the Recovery Manager initialises an expiry scanner thread "
+"ExpiryEntryMonitor is created which is used to remove long dead items from "
+"the ObjectStore. A number of scanner modules are dynamically loaded which "
+"remove long dead items for a particular type."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:442
+#, no-c-format
+msgid ""
+"Scanner modules are loaded at initialisation and are specified as properties "
+"beginning with"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:445
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScanner&lt;Scanner Name&gt;=&lt;Scanner "
+"Class&gt;"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:446
+#, no-c-format
+msgid ""
+"All the scanner modules are called periodically to scan for dead items by "
+"the ExpiryEntryMonitor thread. This period is set with the property:"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:449
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.expiryScanInterval"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:450
+#, no-c-format
+msgid ""
+"All scanners inherit the same behaviour from the java interface "
+"<interfacename>ExpiryScanner</interfacename> as illustrated in diagram below:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:458
+#, no-c-format
+msgid ""
+"A scan method is provided by this interface and implemented by all scanner "
+"modules, this is the method that gets called by the scanner thread."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:461
+#, no-c-format
+msgid ""
+"The ExpiredTransactionStatusManagerScanner removes long dead "
+"TransactionStatusManagerItems from the Object Store. These items will remain "
+"in the Object Store for a period of time before they are deleted. This time "
+"is set by the property:"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:464
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:465
+#, no-c-format
+msgid "(default 12 hours)"
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:470
+#, no-c-format
+msgid "Application Process"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:471
+#, no-c-format
+msgid ""
+"This represents the user transactional program. A Local transaction (hash) "
+"table, maintained within the running application process keeps trace of the "
+"current status of all transactions created by that application process, The "
+"Recovery Manager needs access to the transaction tables so that it can "
+"determine whether a transaction is still in progress, if so then recovery "
+"does not happen."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:474
+#, no-c-format
+msgid ""
+"The transaction tables are accessed via the TransactionStatusManager object. "
+"On application program initialisation the host/port pair that represents the "
+"TransactionStatusManager is written to the Object Store in '../Recovery/"
+"TransactionStatusManager’ part of the Object Store file hierarchy and "
+"identified by the process Uid of the application process."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:477
+#, no-c-format
+msgid ""
+"The Recovery Manager uses the TransactionStatusConnectionManager object to "
+"retrieve the status of a transaction and a TransactionStatusConnector object "
+"is used to make a TCP connection to the TransactionStatusManager."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:482
+#, no-c-format
+msgid "TransactionStatusManager"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:483
+#, no-c-format
+msgid ""
+"This object acts as an interface for the Recovery Manager to obtain the "
+"status of transactions from running HPTS application processes. One "
+"TransactionStatusManager is created per application process by the class com."
+"arjuna.ats.arjuna.coordinator.InitAction. Currently a tcp connection is used "
+"for communication between the RecoveryManager and TransactionStatusManager. "
+"Any free port is used by the TransactionStatusManager by default, however "
+"the port can be fixed with the property:"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:486
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:487
+#, no-c-format
+msgid ""
+"On creation the TransactionStatusManager obtains a port which it stores with "
+"the host in the Object Store as a TransactionStatusManagerItem. A Listener "
+"thread is started which waits for a connection request from a "
+"TransactionStatusConnector. When a connection is established a Connection "
+"thread is created which runs a Service (AtomicActionStatusService) which "
+"accepts a transaction Uid and a transaction type (if available) from a "
+"TransactionStatusConnector, the transaction status is obtained from the "
+"local thransaction table and returned back to the TransactionStatusConnector."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:492
+#, no-c-format
+msgid "Object Store"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:493
+#, no-c-format
+msgid ""
+"All objects are stored in a file path which is equivalent to their class "
+"inheritance. Thus AtomicAction transactions are stored in file path ../"
+"StateManager/BasicAction/AtomicAction."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:496
+#, no-c-format
+msgid ""
+"All objects are identified by a unique identifier Uid. One of the values of "
+"which is a process id in which the object was created. The Recovery Manager "
+"uses the process id to locate transaction status manager items when "
+"contacting the originator application process for the transaction status."
+msgstr ""

Added: projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Author_Group.po
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Author_Group.po	                        (rev 0)
+++ projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Author_Group.po	2008-08-05 01:25:24 UTC (rev 76625)
@@ -0,0 +1,20 @@
+# Language ja-JP translations for Transactions_Failure_Recovery_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Transactions_Failure_Recovery_Guide 0.1\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-08-05 01:23+0000\n"
+"PO-Revision-Date: 2008-08-05 01:23+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Book_Info.po
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Book_Info.po	                        (rev 0)
+++ projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Book_Info.po	2008-08-05 01:25:24 UTC (rev 76625)
@@ -0,0 +1,46 @@
+# Language ja-JP translations for Transactions_Failure_Recovery_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Transactions_Failure_Recovery_Guide 0.1\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-08-05 01:23+0000\n"
+"PO-Revision-Date: 2008-08-05 01:23+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "Transactions Failure Recovery Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "JBoss Enterprise Application Platform"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:11
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss "
+"Transactions Failure Recovery Guide"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:18
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:24
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/How_JBossTS_managers_the_OTS_Recovery_Protocol.po
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/How_JBossTS_managers_the_OTS_Recovery_Protocol.po	                        (rev 0)
+++ projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/How_JBossTS_managers_the_OTS_Recovery_Protocol.po	2008-08-05 01:25:24 UTC (rev 76625)
@@ -0,0 +1,692 @@
+# Language ja-JP translations for Transactions_Failure_Recovery_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Transactions_Failure_Recovery_Guide 0.1\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-08-05 01:23+0000\n"
+"PO-Revision-Date: 2008-08-05 01:23+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:6
+#, no-c-format
+msgid "How JBossTS manages the OTS Recovery Protocol"
+msgstr ""
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:10
+#, no-c-format
+msgid "Recovery Protocol in OTS-Overview"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:11
+#, no-c-format
+msgid ""
+"To manage recovery in case of failure, the OTS specification has defined a "
+"recovery protocol. Transaction’s participants in a doubt status could use "
+"the RecoveryCoordinator to determine the status of the transaction. "
+"According to that transaction status, those participants can take "
+"appropriate decision either by roll backing or committing."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:14
+#, no-c-format
+msgid ""
+"A reference to a RecoveryCoordinator is returned as a result of successfully "
+"calling register_resource on the transaction Coordinator. This object, which "
+"is implicitly associated with a single Resource, can be used to drive the "
+"Resource through recovery procedures in the event of a failure occurring "
+"during the transaction."
+msgstr ""
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:21
+#, no-c-format
+msgid "Resource and RecoveryCoordinator relationship."
+msgstr ""
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:26
+#, no-c-format
+msgid "RecoveryCoordinator in JBossTS"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:27
+#, no-c-format
+msgid ""
+"On each resource registration a RecoveryCoordinator Object is expected to be "
+"created and returned to the application that invoked the register_resource "
+"operation. Behind each CORBA object there should be an object implementation "
+"or Servant object, in POA terms, which performs operations made on a "
+"RecoveryCoordinator object. Rather than to create a RecoveryCoordinator "
+"object with its associated servant on each register_resource, JBossTS "
+"enhances performance by avoiding the creation of servants but it relies on a "
+"default RecoveryCoordinator object with it’s associated default servant to "
+"manage all replay_completion invocations."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:30
+#, no-c-format
+msgid ""
+"In the next sections we first give an overview of the Portable Object "
+"Adapter architecture, then we describe how this architecture is used to "
+"provide RecoveryCoordinator creation with optimization as explained above."
+msgstr ""
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:34
+#, no-c-format
+msgid "Understanding POA"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:35
+#, no-c-format
+msgid ""
+"Basically, the Portable Object Adapter, or POA is an object that intercepts "
+"a client request and identifies the object that satisfies the client "
+"request. The Object is then invoked and the response is returned to the "
+"client."
+msgstr ""
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:43
+#, no-c-format
+msgid "Overview of the POA."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:45
+#, no-c-format
+msgid ""
+"The object that performs the client request is referred as a servant, which "
+"provides the implementation of the CORBA object requested by the client. A "
+"servant provides the implementation for one or more CORBA object references. "
+"To retreive a servant, each POA maintains an Active Object Map that maps all "
+"objects that have been activated in the POA to a servant. For each incoming "
+"request, the POA looks up the object reference in the Active Object Map and "
+"tries to find the responsible servant. If none is found, the request is "
+"either delegated to a default servant, or a servant manager is invoked to "
+"activate or locate an appropriate servant. In addition to the name space for "
+"the objects, which are identified by Object Ids, a POA also provides a name "
+"space for POAs. A POA is created as a child of an existing POA, which forms "
+"a hierarchy starting with the root POA."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:48
+#, no-c-format
+msgid ""
+"Each POA has a set of policies that define its characteristics. When "
+"creating a new POA, the default set of policies can be used or different "
+"values can be assigned that suit the application requirements. The POA "
+"specification defines:"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:53
+#, no-c-format
+msgid ""
+"<emphasis>Thread policy:</emphasis> Specifies the threading model to be used "
+"by the POA. Possible values are:"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:58
+#, no-c-format
+msgid ""
+"ORB_CTRL_MODEL (default): The POA is responsible for assigning requests to "
+"threads."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:63
+#, no-c-format
+msgid "SINGLE_THREAD_MODEL: The POA processes requests sequentially"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:70
+#, no-c-format
+msgid ""
+"<emphasis>Lifespan policy:</emphasis> Specifies the lifespan of the objects "
+"implemented in the POA. The lifespan policy can have the following values:"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:75
+#, no-c-format
+msgid ""
+"TRANSIENT (Default) Objects implemented in the POA cannot outlive the "
+"process in which they are first created. Once the POA is deactivated, an "
+"OBJECT_NOT_EXIST exception occurs when attempting to use any object "
+"references generated by the POA."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:80
+#, no-c-format
+msgid ""
+"PERSISTENT Objects implemented in the POA can outlive the process in which "
+"they are first created."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:87
+#, no-c-format
+msgid ""
+"Object ID Uniqueness policy: Allows a single servant to be shared by many "
+"abstract objects. The Object ID Uniqueness policy can have the following "
+"values:"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:92
+#, no-c-format
+msgid "UNIQUE_ID (Default): Activated servants support only one Object ID."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:97
+#, no-c-format
+msgid ""
+"MULTIPLE_ID: Activated servants can have one or more Object IDs. The Object "
+"ID must be determined within the method being invoked at run time."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:104
+#, no-c-format
+msgid ""
+"ID Assignment policy: Specifies whether object IDs are generated by server "
+"applications or by the POA. The ID Assignment policy can have the following "
+"values:"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:109
+#, no-c-format
+msgid "USER_ID is for persistent objects, and"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:114
+#, no-c-format
+msgid "SYSTEM_ID is for transient objects."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:121
+#, no-c-format
+msgid ""
+"Servant Retention policy: Specifies whether the POA retains active servants "
+"in the Active Object Map. The Servant Retention policy can have the "
+"following values:"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:126
+#, no-c-format
+msgid ""
+"RETAIN (Default) The POA tracks object activations in the Active Object Map. "
+"RETAIN is usually used with ServantActivators or explicit activation methods "
+"on POA."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:131
+#, no-c-format
+msgid ""
+"NON_RETAIN The POA does not retain active servants in the Active Object Map. "
+"NON_RETAIN is typically used with ServantLocators."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:138
+#, no-c-format
+msgid ""
+"Request Processing policy: Specifies how requests are processed by the POA."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:143
+#, no-c-format
+msgid ""
+"USE_ACTIVE_OBJECT_MAP (Default): If the Object ID is not listed in the "
+"Active Object Map, an OBJECT_NOT _EXIST exception is returned. The POA must "
+"also use the RETAIN policy with this value."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:148
+#, no-c-format
+msgid ""
+"USE_DEFAULT_SERVANT: If the Object ID is not listed in the Active Object Map "
+"or the NON_RETAIN policy is set, the request is dispatched to the default "
+"servant. If no default servant has been registered, an OBJ_ADAPTER exception "
+"is returned. The POA must also use the MULTIPLE_ID policy with this value."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:153
+#, no-c-format
+msgid ""
+"USE_SERVANT_MANAGER: If the Object ID is not listed in the Active Object Map "
+"or the NON_RETAIN policy is set, the servant manager is used to obtain a "
+"servant."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:160
+#, no-c-format
+msgid ""
+"Implicit Activation policy: Specifies whether the POA supports implicit "
+"activation of servants. The Implicit Activation policy can have the "
+"following values:"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:165
+#, no-c-format
+msgid ""
+"IMPLICIT_ACTIVATION: The POA supports implicit activation of servants. "
+"Servants can be activated by converting them to an object reference with "
+"<methodname>org.omg.PortableServer.POA.servant_to_reference()</methodname> "
+"or by invoking <methodname>_this()</methodname> on the servant. The POA must "
+"also use the SYSTEM_ID and RETAIN policies with this value."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:170
+#, no-c-format
+msgid ""
+"NO_IMPLICIT_ACTIVATION (Default): The POA does not support implicit "
+"activation of servants."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:177
+#, no-c-format
+msgid ""
+"It appears that to redirect replay_completion invocations to a default "
+"servant we need to create a POA with the Request Processing policy assigned "
+"with the value set to USE_DEFAULT_SERVANT. However to reach that default "
+"Servant we should first reach the POA that forward the request to the "
+"default servant. Indeed, the ORB uses a set of information to retrieve a "
+"POA; these information are contained in the object reference used by the "
+"client. Among these information there are the IP address and the port number "
+"where resides the server and also the POA name. To perform replay_completion "
+"invocations, the solution adopted by JBossTS is to provide one Servant, per "
+"machine, and located in the RecoveryManager process, a separate process from "
+"client or server applications. The next section explains how the indirection "
+"to a default Servant located on a separate process is provided for ORBIX and "
+"for JacORB."
+msgstr ""
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:182
+#, no-c-format
+msgid "The default RecoveryCoordinator in Orbix"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:183
+#, no-c-format
+msgid ""
+"Within Orbix, objects are located by the Location Deamon. To avoid the "
+"overhead of using the location daemon, Orbix provides a mechanism named "
+"<emphasis>Direct Persistence</emphasis> allowing generating persistent "
+"object references. This mechanism is in fact a proprietary policy named, "
+"DIRECT_PERSISTENCE. A POA with policies of PERSISTENT and DIRECT_PERSISTENCE "
+"generates IORs that contain a well-known address for the server process. A "
+"POA that uses direct persistence must also tell each transport mechanism "
+"such as IIOP where in the configuration file it can find the well-known "
+"address that it should use. This is done by creating a "
+"<code>WellKnownAddressingPolicy</code> object and setting its value to the "
+"configuration scope that contains the well-known address."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:186
+#, no-c-format
+msgid ""
+"To specify the address used by the <code>WellKnownAddressingPolicy</code> "
+"object, JBossTS uses the Orbix mechanism that allows specifying an ORB/POA "
+"names. The following configuration modifications are necessary to define the "
+"well-know address of the RecoveryCoordinator performing replay_completion "
+"invocation."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:190
+#, no-c-format
+msgid ""
+"Note that this configuration is also necessary to support transaction "
+"context propagation and interposition."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:194
+#, no-c-format
+msgid ""
+"A new orb name domain called arjuna should be created within the main Orbix "
+"2000 domain being used by the application. It requires the following format:"
+msgstr ""
+
+#. Tag: screen
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:197
+#, no-c-format
+msgid ""
+"arjuna\n"
+"{\n"
+"        portable_interceptor\n"
+"        {\n"
+"                orb_plugins = [\"local_log_stream\", \"iiop_profile\", \"giop"
+"\", \"iiop\", \"portable_interceptor\"];\n"
+"        \n"
+"                ots_recovery_coordinator\n"
+"                {\n"
+"                        recovery_coordinator:iiop:addr_list = [“&lt;name&gt;:"
+"&lt;port&gt;”];\n"
+"                };\n"
+"                        \n"
+"                ots_transaction\n"
+"                {\n"
+"                        transaction:iiop:addr_list = [“+&lt;name&gt;:&lt;"
+"port&gt;”];\n"
+"                };     \n"
+"                ots_context\n"
+"                {\n"
+"                        binding:client_binding_list = [\"OTS_Context\", "
+"\"OTS_Context+GIOP+SIOP\", \"GIOP+SIOP\", \"OTS_Context+GIOP+IIOP\", \"GIOP"
+"+IIOP\"];\n"
+"                        binding:server_binding_list = [\"OTS_Context\", "
+"\"\"];\n"
+"                };\n"
+"                                        \n"
+"                ots_interposition\n"
+"                {\n"
+"                        binding:client_binding_list = [\"OTS_Interposition"
+"\", \"OTS_Interposition+GIOP+SIOP\", \"GIOP+SIOP\", \"OTS_Interposition+GIOP"
+"+IIOP\", \"GIOP+IIOP\"];\n"
+"                        binding:server_binding_list = [\"OTS_Interposition"
+"\", \"\"];\n"
+"                };\n"
+"        };\n"
+"};"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:198
+#, no-c-format
+msgid ""
+"The &lt;name&gt; field should be substituted by the name of the machine on "
+"which JBossTS is being run. The &lt;port&gt; field should be an unused port "
+"on which the JBossTS recovery manager may listen for recovery requests."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:201
+#, no-c-format
+msgid ""
+"Because of the way in which Orbix works with persistent POAs, if you want "
+"crash recovery support for your applications you must use one of the Arjuna "
+"ORB names provided (context or interposition) when running your clients and "
+"services. When using transaction context propagation only, the<parameter>–"
+"ORBname arjuna.portable_interceptor.ots_context</parameter> parameter should "
+"be passed to the client and server. When using context propagation and "
+"interposition, the <parameter>–ORBname.arjuna.portable_interceptor."
+"ots_interposition</parameter> parameter should be used. For example:"
+msgstr ""
+
+#. Tag: screen
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:204
+#, no-c-format
+msgid "java mytest –ORBname arjuna.portable_interceptor.ots_context"
+msgstr ""
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:206
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:287
+#, no-c-format
+msgid "How it works"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:207
+#, no-c-format
+msgid ""
+"When the Recovery Manager is launched it seeks in the configuration the "
+"RecoveryActivator that need be loaded. Once done it invokes the "
+"<methodname>startRCservice</methodname> method of each loaded instances. As "
+"seen in in the previous chapter (Recovery Manager) the class to load that "
+"implements the <interfacename>RecoveryActivator</interfacename> interface is "
+"the class <classname>RecoveryEnablement</classname>. This generic class, "
+"located in the package <package>com.arjuna.ats.internal.jts.orbspecific."
+"recovery</package>, hides the nature of the ORB being used by the "
+"application. The following figure illustrates the behavior of the "
+"<interfacename>RecoveryActivator</interfacename> that leads to the creation "
+"of the default servant that performs all replay_invocations requests."
+msgstr ""
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:215
+#, no-c-format
+msgid ""
+"The Recovery Manager and the creation of the default servant for "
+"RecoveryCoordinator."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:218
+#, no-c-format
+msgid ""
+"There is one recovery Manager Process per machine, then one default servant "
+"per machine. Performing all replay_completion invocations means those made "
+"on the same machine."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:222
+#, no-c-format
+msgid ""
+"When started, the application, using JBossTS in library mode, is launched a "
+"child POA is created with the same policies as those defined within the "
+"Recovery Manager. This child POA is used to create object references, for "
+"RecoveryCoordinator CORBA objects, that need to be returned on "
+"register_resource invocations, as illustrated in figure below. The Object "
+"reference created has an Object ID that contains the transaction ID in "
+"progress and the Process Identifier of the application."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:226
+#, no-c-format
+msgid ""
+"If the Transaction Service is used in the stand-alone mode, the behavior to "
+"create object reference to RecoveryCoordinator objects is exactly the same; "
+"the process ID used in the Object ID is the Transaction Service process ID"
+msgstr ""
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:234
+#, no-c-format
+msgid ""
+"Resource registration and returned RecoveryCoordinator Object reference."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:236
+#, no-c-format
+msgid ""
+"Having the object reference of the RecoveryCoordinator, an application can "
+"use it to determine the status of the transaction for which that object "
+"reference is created. When a RecoveryCoordinator, according to POA policies "
+"assigned to the POA included in the object reference, the request is forward "
+"straightforward to the default servant defined in the Recovery Manager, as "
+"described in the figure below."
+msgstr ""
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:243
+#, no-c-format
+msgid ""
+"replay_completion invocation forwarded to the default RecoveryCoordinator ."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:245
+#, no-c-format
+msgid "The flow described in the figure can be depicted as follow:"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:250
+#, no-c-format
+msgid ""
+"The participant invokes the replay_completion operation on "
+"RecoveryCoordinator object using the object reference returned by the "
+"Transaction Server."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:255
+#, no-c-format
+msgid ""
+"The request is forwarded to the Recovery Manager process since the Well-"
+"known-address policy is used to retrieve."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:260
+#, no-c-format
+msgid "The child POA responsible to locate the servant is retrieved."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:265
+#, no-c-format
+msgid ""
+"After looking to the Active Object Map, the child POA invokes the default "
+"servant to perform the request. Note that the Object ID conveyed by the "
+"object reference is not retrieved in the AOP."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:270
+#, no-c-format
+msgid ""
+"The servant extracts from the request the Object ID that contains the "
+"Transaction ID and the process ID of the Transaction Server process. To "
+"determine if the process still alive, the TransactionStatusConnectionManager "
+"functionalities are used."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:275
+#, no-c-format
+msgid ""
+"According to the presence or not of the Transaction Server process and "
+"eventually the returned status, the servant returns the status of the "
+"transaction asked by the participant."
+msgstr ""
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:282
+#, no-c-format
+msgid "The default RecoveryCoordinator in JacOrb"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:283
+#, no-c-format
+msgid ""
+"JacORB does not define additional policies to redirect any request on a "
+"RecoveryCoordinator object to a default servant located in the Recovery "
+"Manager process. However it provides a set of APIs that allows building "
+"object references with specific IP address, port number and POA name in "
+"order to reach the appropriate default servant."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:288
+#, no-c-format
+msgid ""
+"When the Recovery Manager is launched it seeks in the configuration the "
+"RecoveryActivator that need be loaded. Once done it invokes the "
+"<methodname>startRCservice</methodname> method of each loaded instances. As "
+"seen in in the previous chapter (Recovery Manager ) the class to load that "
+"implements the <interfacename>RecoveryActivator</interfacename> interface is "
+"the class <classname>RecoveryEnablement</classname>. This generic class, "
+"located in the package <package>com.arjuna.ats.internal.jts.orbspecific."
+"recovery</package>, hides the nature of the ORB being used by the "
+"application (JacORB). The following figure illustrates the behavior of the "
+"<interfacename>RecoveryActivator</interfacename> that leads to the creation "
+"of the default servant that performs replay_completion invocations requests."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:292
+#, no-c-format
+msgid ""
+"In addition to the creation of the default servant, an object reference to a "
+"<code>RecoveryCoordinator</code> object is created and stored in the "
+"ObjectStore. As we will see this object reference will be used to obtain its "
+"IP address, port number and POA name and assign them to any "
+"<code>RecoveryCoordinator</code> object reference created on "
+"register_resource."
+msgstr ""
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:299
+#, no-c-format
+msgid ""
+"replay_completion invocation forwarded to the default RecoveryCoordinator."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:301
+#, no-c-format
+msgid ""
+"When an application registers a resource with a transaction, a "
+"<code>RecoveryCoordinator</code> object reference is expected to be "
+"returned. To build that object reference, the Transaction Service uses the "
+"RecoveryCoordinator object reference created within the Recovery Manager as "
+"a template. The new object reference contains practically the same "
+"information to retrieve the default servant (IP address, port number, POA "
+"name, etc.), but the Object ID is changed; now, it contains the Transaction "
+"ID of the transaction in progress and also the Process ID of the process "
+"that is creating the new <code>RecoveryCoordinator</code> object reference, "
+"as illustrated below."
+msgstr ""
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:308
+#, no-c-format
+msgid ""
+"Resource registration and returned RecoveryCoordinator Object reference "
+"build from a reference stored in the ObjectStore."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:310
+#, no-c-format
+msgid ""
+"Since a <code>RecoveryCoordintaor</code> object reference returned to an "
+"application contains all information to retrieve the POA then the default "
+"servant located in the Recovery Manager, all replay_completion invocation, "
+"per machine, are forwarded to the same default <code>RecoveryCoordinator</"
+"code> that is able to retreive the Object ID from the incoming request to "
+"extract the transaction identifier and the process identifier needed to "
+"determine the status of the requested transaction."
+msgstr ""

Added: projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Preface.po
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Preface.po	                        (rev 0)
+++ projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Preface.po	2008-08-05 01:25:24 UTC (rev 76625)
@@ -0,0 +1,20 @@
+# Language ja-JP translations for Transactions_Failure_Recovery_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Transactions_Failure_Recovery_Guide 0.1\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-08-05 01:23+0000\n"
+"PO-Revision-Date: 2008-08-05 01:23+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Revision_History.po
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Revision_History.po	                        (rev 0)
+++ projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Revision_History.po	2008-08-05 01:25:24 UTC (rev 76625)
@@ -0,0 +1,20 @@
+# Language ja-JP translations for Transactions_Failure_Recovery_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Transactions_Failure_Recovery_Guide 0.1\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-08-05 01:23+0000\n"
+"PO-Revision-Date: 2008-08-05 01:23+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: author
+#: Revision_History.xml:9
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/ja-JP/Transactions_Failure_Recovery_Guide.po
===================================================================

Added: projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Appendix.pot
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Appendix.pot	                        (rev 0)
+++ projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Appendix.pot	2008-08-05 01:25:24 UTC (rev 76625)
@@ -0,0 +1,21 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-08-05 01:23+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr ""

Added: projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Architecture_of_the_Recovery_Manager.pot
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Architecture_of_the_Recovery_Manager.pot	                        (rev 0)
+++ projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Architecture_of_the_Recovery_Manager.pot	2008-08-05 01:25:24 UTC (rev 76625)
@@ -0,0 +1,1470 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-08-05 01:23+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:6
+#, no-c-format
+msgid "Architecture of the Recovery Manager"
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:8
+#, no-c-format
+msgid "Crash Recovery Overview"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:9
+#, no-c-format
+msgid ""
+"The main architectural components within Crash Recovery are illustrated in "
+"the diagram below:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:17
+#, no-c-format
+msgid ""
+"The Recovery Manager is a daemon process responsible for performing crash "
+"recovery. Only one Recovery Manager runs per node. The Object Store provides "
+"persistent data storage for transactions to log data. During normal "
+"transaction processing each transaction will log persistent data needed for "
+"the commit phase to the Object Store. On successfully committing a "
+"transaction this data is removed, however if the transaction fails then this "
+"data remains within the Object Store."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:20
+#, no-c-format
+msgid "The Recovery Manager functions by:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:25
+#, no-c-format
+msgid ""
+"Periodically scanning the Object Store for transactions that may have "
+"failed. Failed transactions are indicated by the presence of log data after "
+"a period of time that the transaction would have normally been expected to "
+"finish."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:30
+#, no-c-format
+msgid ""
+"Checking with the application process which originated the transaction "
+"whether the transaction is still in progress or not."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:35
+#, no-c-format
+msgid ""
+"Recovering the transaction by re-activating the transaction and then "
+"replaying phase two of the commit protocol."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:40
+#, no-c-format
+msgid ""
+"The following sections describe the architectural components in more detail"
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:46
+#, no-c-format
+msgid "Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:47
+#, no-c-format
+msgid ""
+"On initialization the Recovery Manager first loads in configuration "
+"information via a properties file. This configuration includes a number of "
+"recovery activators and recovery modules, which are then dynamically loaded."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:50
+#, no-c-format
+msgid ""
+"Since the version 3.0 of JBossTS, the Recovery Manager is not specifically "
+"tied to an Object Request Broker or ORB. Hence, the OTS recovery protocol is "
+"not implicitly enabled. To enable such protocol, we use the concept of "
+"recovery activator, defined with the interface "
+"<interfacename>RecoveryActivator</interfacename>, which is used to "
+"instantiate a recovery class related to the underlying communication "
+"protocol. For instance, when used with OTS, the "
+"<interfacename>RecoveryActivitor</interfacename> has the responsibility to "
+"create a RecoveryCoordinator object able to respond to the replay_completion "
+"operation."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:53
+#, no-c-format
+msgid ""
+"All <interfacename>RecoveryActivator</interfacename> instances inherit the "
+"same interface. They are loaded via the following recovery extension "
+"property:"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:56
+#, no-c-format
+msgid ""
+"&lt;property  \n"
+"                   name=\"com.arjuna.ats.arjuna.recovery."
+"recoveryActivator_&lt;number&gt;\" value=\"RecoveryClass\" /&gt;"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:57
+#, no-c-format
+msgid ""
+"For instance the <interfacename>RecoveryActivator</interfacename> provided "
+"in the distribution of JTS/OTS, which shall not be commented, is as follow:"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:60
+#, no-c-format
+msgid ""
+"&lt;property \n"
+"        name=\"com.arjuna.ats.arjuna.recovery.recoveryActivator_1\" value="
+"\"com.arjuna.ats.internal.jts.orbspecific.recovery.RecoveryEnablement/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:61
+#, no-c-format
+msgid ""
+"When loaded all <interfacename>RecoveryActivator</interfacename> instances "
+"provide the method <methodname>startRCservice</methodname> invoked by the "
+"Recovery Manager and used to create the appropriate Recovery Component able "
+"to receive recovery requests according to a particular transaction protocol. "
+"For instance the RecoveryCoordinator defined by the OTS protocol."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:64
+#, no-c-format
+msgid ""
+"Each recovery module is used to recover a different type of transaction/"
+"resource, however each recovery module inherits the same basic behavior."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:67
+#, no-c-format
+msgid ""
+"Recovery consists of two separate passes/phases separated by two timeout "
+"periods. The first pass examines the object store for potentially failed "
+"transactions; the second pass performs crash recovery on failed "
+"transactions. The timeout between the first and second pass is known as the "
+"backoff period. The timeout between the end of the second pass and the start "
+"of the first pass is the recovery period. The recovery period is larger than "
+"the backoff period."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:70
+#, no-c-format
+msgid ""
+"The Recovery Manager invokes the first pass upon each recovery module, "
+"applies the backoff period timeout, invokes the second pass upon each "
+"recovery module and finally applies the recovery period timeout before "
+"restarting the first pass again."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:73
+#, no-c-format
+msgid ""
+"The recovery modules are loaded via the following recovery extension "
+"property:"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:76
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;number&gt;=&lt;"
+"RecoveryClass&gt;"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:77
+#, no-c-format
+msgid ""
+"The backoff period and recovery period are set using the following "
+"properties:"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:80
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod        (default 10 "
+"secs)\n"
+"com.arjuna.ats.arjuna.recovery.periodicRecovery                (default 120 "
+"secs)"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:81
+#, no-c-format
+msgid "The following java classes are used to implement the Recovery Manager:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:86
+#, no-c-format
+msgid "package <package>com.arjuna.ats.arjuna.recovery</package>:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:91
+#, no-c-format
+msgid ""
+"RecoveryManager: The daemon process that starts up by instantiating an "
+"instance of the RecoveryManagerImple class."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:96
+#, no-c-format
+msgid "RecoveryEnvironment: Properties used by the recovery manager."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:101
+#, no-c-format
+msgid ""
+"RecoveryConfiguration: Specifies the name of the Recovery Manager property "
+"file. (for instance, RecoveryManager-properties.xml)"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:108
+#, no-c-format
+msgid "package <package>com.arjuna.ats.internal.ts.arjuna.recovery</package>:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:113
+#, no-c-format
+msgid ""
+"RecoveryManagerImple: Creates and starts instances of the "
+"RecActivatorLoader, the PeriodicRecovery thread and the ExpiryEntryMonitor "
+"thread."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:118
+#, no-c-format
+msgid ""
+"RecActivatorLoader: Dynamically loads in the RecoveryActivator specified in "
+"the Recovery Manager property file. Each RecoveryActicator is specified as a "
+"recovery extension in the properties file."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:123
+#, no-c-format
+msgid ""
+"PeriodicRecovery: Thread which loads each recovery module, then calls the "
+"first pass method for each module, applies the backoff period timeout, calls "
+"the second pass method for each module and applies the recovery period "
+"timeout."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:128
+#, no-c-format
+msgid ""
+"RecoveryClassLoader: Dynamically loads in the recovery modules specified in "
+"the Recovery Manager property file. Each module is specified as a recovery "
+"extension in the properties file (for instance, com.arjuna.ats.arjuna."
+"recovery.recoveryExtension1= com.arjuna.ats.internal.ts.arjuna.recovery."
+"AtomicActionRecoveryModule)."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:136
+#, no-c-format
+msgid ""
+"By default, the recovery manager listens on the first available port on a "
+"given machine. If you wish to control the port number that it uses, you can "
+"specify this using the com.arjuna.ats.arjuna.recovery.recoveryPort attribute."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:141
+#, no-c-format
+msgid "Embedding the Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:142
+#, no-c-format
+msgid ""
+"In some situations it may be required to embed the RecoveryManager in the "
+"same process as the transaction service. In this case you can create an "
+"instance of the RecoveryManager through the manager method on com.arjuna.ats."
+"arjuna.recovery.RecoveryManager. A RecoveryManager can be created in one of "
+"two modes, selected via the parameter to the manager method:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:148
+#, no-c-format
+msgid ""
+"INDIRECT_MANAGEMENT: the manager runs periodically but can also be "
+"instructed to run when desired via the scan operation or through the "
+"RecoveryDriver class to be described below."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:153
+#, no-c-format
+msgid ""
+"DIRECT_MANAGEMENT: the manager does not run periodically and must be driven "
+"directly via the scan operation or RecoveryDriver."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:159
+#, no-c-format
+msgid "Managing recovery directly"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:160
+#, no-c-format
+msgid ""
+"As already mentioned, recovery typically happens at periodic intervals. If "
+"you require to drive recovery directly, then there are two options, "
+"depending upon how the RecoveryManager has been created."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:165
+#, no-c-format
+msgid "Seperate Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:166
+#, no-c-format
+msgid ""
+"You can either use the com.arjuna.ats.arjuna.tools.RecoveryMonitor program "
+"to send a message to the Recovery Manager instructing it to perform "
+"recovery, or you can create an instance of the com.arjuna.ats.arjuna."
+"recovery.RecoveryDriver class to do likewise. There are two types of "
+"recovery scan available:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:172
+#, no-c-format
+msgid ""
+"ASYNC_SCAN: here a message is sent to the RecoveryManager to instruct it to "
+"perform recovery, but the response returns before recovery has completed."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:177
+#, no-c-format
+msgid ""
+"SYNC: here a message is sent to the RecoveryManager to instruct it to "
+"perform recovery, and the response occurs only when recovery has completed."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:183
+#, no-c-format
+msgid "In process Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:184
+#, no-c-format
+msgid ""
+"You can invoke the scan operation on the RecoveryManager. This operation "
+"returns only when recovery has completed. However, if you wish to have an "
+"asynchronous interaction pattern, then the RecoveryScan interface is "
+"provided:"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:188
+#, no-c-format
+msgid ""
+"public interface RecoveryScan\n"
+"{\n"
+"        public void completed ();\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:189
+#, no-c-format
+msgid ""
+"An instance of an object supporting this interface can be passed to the scan "
+"operation and its completed method will be called when recovery finishes. "
+"The scan operation returns immediately, however."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:195
+#, no-c-format
+msgid "Recovery Modules"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:196
+#, no-c-format
+msgid ""
+"As stated before each recovery module is used to recover a different type of "
+"transaction/resource, but each recovery module must implement the following "
+"RecoveryModule interface, which defines two methods: "
+"<methodname>periodicWorkFirstPass</methodname> and "
+"<methodname>periodicWorkSecondPass</methodname> invoked by the Recovery "
+"Manager."
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:199
+#, no-c-format
+msgid ""
+"public interface RecoveryModule\n"
+"{\n"
+"        /**\n"
+"        * Called by the RecoveryManager at start up, and then\n"
+"        * PERIODIC_RECOVERY_PERIOD seconds after the completion, for all   \n"
+"        * RecoveryModules of the second pass\n"
+"        */\n"
+"        public void periodicWorkFirstPass ();\n"
+"        \n"
+"        /**\n"
+"        * Called by the RecoveryManager RECOVERY_BACKOFF_PERIOD seconds\n"
+"        * after the completion of the first pass\n"
+"        */\n"
+"        public void periodicWorkSecondPass ();\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:201
+#, no-c-format
+msgid "JBossTS Recovery Module Classes"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:202
+#, no-c-format
+msgid ""
+"JBossTS provides a set of recovery modules that are responsible to manage "
+"recovery according to the nature of the participant and its position in a "
+"transactional tree. The provided classes (that all implements the "
+"<interfacename>RecoveryModule</interfacename> interface) are:"
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:209
+#, no-c-format
+msgid "com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:210
+#, no-c-format
+msgid "Recovers AtomicAction transactions."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:217
+#, no-c-format
+msgid "com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:218
+#, no-c-format
+msgid "Recovers Transactional Objects for Java."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:225
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions.TransactionRecoveryModule"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:226
+#, no-c-format
+msgid ""
+"Recovers JTS Transactions. This is a generic class from which TopLevel and "
+"Server transaction recovery modules inherit, respectively"
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:233
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"TopLevelTransactionRecoveryModule"
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:240
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"ServerTransactionRecoveryModule"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:246
+#, no-c-format
+msgid ""
+"To illustrate the behavior of a recovery module, the following pseudo code "
+"describes the basic algorithm used for Atomic Action transactions and "
+"Transactional Objects for java."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:250
+#, no-c-format
+msgid "AtomicAction pseudo code"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:251
+#, no-c-format
+msgid "First Pass:"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:255
+#, no-c-format
+msgid ""
+"&lt; create a transaction vector for transaction Uids. &gt;\n"
+"&lt; read in all transactions for a transaction type AtomicAction. &gt;\n"
+"while &lt; there are transactions in the vector of transactions. &gt;\n"
+"do\n"
+"        &lt; add the transaction to the vector of transactions. &gt;\n"
+"end while."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:256
+#: Architecture_of_the_Recovery_Manager.xml:265
+#, no-c-format
+msgid "Second Pass:"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:259
+#, no-c-format
+msgid ""
+"while &lt; there are transactions in the transaction vector &gt;\n"
+"do\n"
+"        if &lt; the intention list for the transaction still exists &gt;\n"
+"        then\n"
+"                &lt; create new transaction cached item &gt;\n"
+"                &lt; obtain the status of the transaction &gt;\n"
+"                                        \n"
+"                if         &lt; the transaction is not in progress &gt;\n"
+"                then\n"
+"                        &lt; replay phase two of the commit protocol &gt;\n"
+"                endif.\n"
+"        endif.\n"
+"end while."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:261
+#, no-c-format
+msgid "Transactional Object pseudo code"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:262
+#, no-c-format
+msgid "First Pass"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:264
+#, no-c-format
+msgid ""
+"&lt; Create a hash table for uncommitted transactional objects. &gt;\n"
+"&lt; Read in all transactional objects within the object store. &gt;\n"
+"while &lt; there are transactional objects &gt;\n"
+"do\n"
+"        if         &lt; the transactional object has an Uncommited status in "
+"the object store &gt;\n"
+"        then\n"
+"                &lt; add the transactional Object o the hash table for "
+"uncommitted transactional objects&gt;\n"
+"        end if.\n"
+"end while."
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:268
+#, no-c-format
+msgid ""
+"while &lt; there are transactions in the hash table for uncommitted "
+"transactional objects &gt;\n"
+"do\n"
+"        if &lt; the transaction is still in the Uncommitted state &gt;\n"
+"        then\n"
+"                if &lt; the transaction is not in the Transaction Cache "
+"&gt;\n"
+"                then\n"
+"                        &lt; check the status of the transaction with the "
+"original application process &gt;\n"
+"                        if &lt; the status is Rolled Back or the application "
+"process is inactive &gt;\n"
+"                                &lt; rollback the transaction by removing "
+"the Uncommitted status from the Object Store &gt;\n"
+"                        endif.\n"
+"                endif.\n"
+"        endif.\n"
+"end while."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:270
+#, no-c-format
+msgid "A Recovery Module for XA Resources"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:271
+#, no-c-format
+msgid ""
+"To manage recovery, we have seen in the previous chapter that the Recovery "
+"Manager triggers a recovery process by calling a set of recovery modules "
+"that implements the two methods defined by the "
+"<interfacename>RecoveryModule</interfacename> interface."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:275
+#, no-c-format
+msgid ""
+"To enable recovery of participants controlled via the <interfacename>XA</"
+"interfacename> interface, a specific recovery module named XARecoveryModule "
+"is provided. The XARecoveryModule, defined in the packages <package>com."
+"arjuna.ats.internal.jta.recovery.arjunacore</package> and <package>com."
+"arjuna.ats.internal.jta.recovery.jts</package>, handles recovery of "
+"<interfacename>XA</interfacename> resources (for example, databases) used in "
+"JTA."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:279
+#, no-c-format
+msgid ""
+"JBossTS supports two JTA implementations: a purely local version (no "
+"distributed transactions) and a version layered on the JTS. Recovery for the "
+"former is straightforward. In the following discussion we shall implicitly "
+"consider on the JTS implementation."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:283
+#, no-c-format
+msgid ""
+"Its behavior consists of two aspects: <emphasis>transaction-initiated</"
+"emphasis> and <emphasis>resource-initiated</emphasis> recovery. Transaction-"
+"initiated recovery is possible where the particular transaction branch had "
+"progressed far enough for a JTA Resource Record to be written in the "
+"ObjectStore, as illustrated in Figure 2."
+msgstr ""
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:290
+#, no-c-format
+msgid "JTA/JDBC information stored in the ObjectStore"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:292
+#, no-c-format
+msgid ""
+"A JTA Resource record contains the information needed to link the "
+"transaction, as known to the rest of JBossTS, to the database. Resource-"
+"initiated recovery is necessary for branches where a failure occurred after "
+"the database had made a persistent record of the transaction, but before the "
+"JTA ResourceRecord was persisted. Resource-initiated recovery is also "
+"necessary for datasources for which it is not possible to hold information "
+"in the JTA Resource record that allows the recreation in the RecoveryManager "
+"of the XAConnection/XAResource that was used in the original application."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:296
+#, no-c-format
+msgid ""
+"When running XA recovery it is necessary to tell JBossTS which types of Xid "
+"it can recover. Each Xid that JBossTS creates has a unique node identifier "
+"encoded within it and JBossTS will only recover transactions and states that "
+"match a specified node identifier. The node identifier to use should be "
+"provided to JBossTS via a property that starts with the name <property>com."
+"arjuna.ats.jta.xaRecoveryNode</property>; multiple values may be provided. A "
+"value of ‘*’ will force JBossTS to recover (and possibly rollback) all "
+"transactions irrespective of their node identifier and should be used with "
+"caution. The contents of <property>com.arjuna.ats.jta.xaRecoveryNode</"
+"property> should be alphanumeric and match the values of <property>com."
+"arjuna.ats.arjuna.xa.nodeIdentifier</property>."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:300
+#, no-c-format
+msgid ""
+"Transaction-initiated recovery is automatic. The XARecoveryModule finds the "
+"JTA Resource Record that need recovery, then uses the normal recovery "
+"mechanisms to find the status of the transaction it was involved in (i.e., "
+"it calls replay_completion on the RecoveryCoordinator for the transaction "
+"branch), (re)creates the appropriate XAResource and issues commit or "
+"rollback on it as appropriate. The XAResource creation will use the same "
+"information, database name, username, password etc., as the original "
+"application."
+msgstr ""
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:307
+#, no-c-format
+msgid "Transaction-Initiated Recovery and XA Recovery"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:309
+#, no-c-format
+msgid ""
+"Resource-initiated recovery has to be specifically configured, by supplying "
+"the Recovery Manager with the appropriate information for it to interrogate "
+"all the databases (XADataSources) that have been accessed by any JBossTS "
+"application. The access to each XADataSource is handled by a class that "
+"implements the <interfacename>com.arjuna.ats.jta.recovery."
+"XAResourceRecovery</interfacename> interface, as illustrated in Figure 4. "
+"Instances of classes that implements the XAResourceRecovery interface are "
+"dynamically loaded, as controlled by properties with names beginning "
+"<property>com.arjuna.ats.jta.recovery.XAResourceRecovery</property>."
+msgstr ""
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:316
+#, no-c-format
+msgid "Resource-initiated recovery and XA Recovery"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:319
+#, no-c-format
+msgid ""
+"JBossTS 3.3 <interfacename>XAConnectionRecovery</interfacename> was "
+"deprecated in favor of <interfacename>XAResourceRecovery</interfacename>. "
+"Although the old interface still exists at the moment, users are encouraged "
+"to migrate to the new interface."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:323
+#, no-c-format
+msgid ""
+"The XARecoveryModule will use the XAResourceRecovery implementation to get a "
+"XAResource to the target datasource. On each invocation of "
+"periodicWorkSecondPass, the recovery module will issue an XAResource.recover "
+"request – this will (as described in the XA specification) return a list of "
+"the transaction identifiers (Xid’s) that are known to the datasource and are "
+"in an indeterminate (in-doubt) state. The list of these in-doubt Xid’s "
+"received on successive passes (i.e. periodicWorkSecondPass-es) is compared. "
+"Any Xid that appears in both lists, and for which no JTA ResourceRecord was "
+"found by the intervening transaction-initiated recovery is assumed to belong "
+"to a transaction that was involved in a crash before any JTA ResourceRecord "
+"was written, and a rollback is issued for that transaction on the XAResource."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:326
+#, no-c-format
+msgid ""
+"This double-scan mechanism is used because it is possible the Xid was "
+"obtained from the datasource just as the original application process was "
+"about to create the corresponding JTA_ResourceRecord. The interval between "
+"the scans should allow time for the record to be written unless the "
+"application crashes (and if it does, rollback is the right answer)."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:329
+#, no-c-format
+msgid ""
+"An <classname>XAResourceRecovery</classname> implementation class can be "
+"written to contain all the information needed to perform recovery to some "
+"datasource. Alternatively, a single class can handle multiple datasources. "
+"The constructor of the implementation class must have an empty parameter "
+"list (because it is loaded dynamically), but the interface includes an "
+"initialise method which passes in further information as a string. The "
+"content of the string is taken from the property value that provides the "
+"class name: everything after the first semi-colon is passed as the value of "
+"the string. The use made of this string is determined by the "
+"<classname>XAResourceRecovery</classname> implementation class."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:332
+#, no-c-format
+msgid ""
+"For further details on the way to implement a class that implements the "
+"interface <interfacename>XAResourceRecovery</interfacename>, read the JDBC "
+"chapter of the JTA Programming Guide. An implementation class is provided "
+"that supports resource-initiated recovery for any XADataSource. This class "
+"could be used as a template to build your own implementation class."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:336
+#, no-c-format
+msgid "Writing a Recovery Module"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:337
+#, no-c-format
+msgid ""
+"In order to recover from failure, we have seen that the Recovery Manager "
+"contacts recovery modules by invoking periodically the methods "
+"<methodname>periodicWorkFirstPass</methodname> and "
+"<methodname>periodicWorkSecondPass</methodname>. Each Recovery Module is "
+"then able to manage recovery according to the type of resources that need to "
+"be recovered. The JBoss Transaction product is shipped with a set of "
+"recovery modules (TOReceveryModule, XARecoveryModule…), but it is possible "
+"for a user to define their own recovery module to fit their application. The "
+"following basic example illustrates the steps needed to build such recovery "
+"module"
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:340
+#, no-c-format
+msgid "A basic scenario"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:341
+#, no-c-format
+msgid ""
+"This basic example does not aim to present a complete process to recover "
+"from failure, but mainly to illustrate the way to implement a recovery "
+"module."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:343
+#, no-c-format
+msgid ""
+"The application used here consists to create an atomic transaction, to "
+"register a participant within the created transaction and finally to "
+"terminate it either by commit or abort. A set of arguments are provided:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:348
+#, no-c-format
+msgid "to decide to commit or abort the transaction,"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:353
+#, no-c-format
+msgid "to decide generating a crash during the commitment process."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:358
+#, no-c-format
+msgid "The code of the main class that control the application is given below"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:361
+#, no-c-format
+msgid ""
+"package com.arjuna.demo.recoverymodule;\n"
+"        \n"
+"import com.arjuna.ats.arjuna.AtomicAction;\n"
+"import com.arjuna.ats.arjuna.coordinator.*;\n"
+"        \n"
+"public class TestRecoveryModule\n"
+"{\n"
+"        public static void main(String args[])\n"
+"        {\n"
+"                try \n"
+"                {\n"
+"                        AtomicAction tx = new AtomicAction();\n"
+"                        tx.begin(); // Top level begin\n"
+"        \n"
+"                        // enlist the participant \n"
+"                        tx.add(SimpleRecord.create());\n"
+"        \n"
+"                        System.out.println(\"About to complete the "
+"transaction \");\n"
+"                        for (int i = 0; i &lt; args.length; i++)\n"
+"                        {\n"
+"                                if ((args[i].compareTo(\"-commit\") == 0))\n"
+"                                _commit = true;\n"
+"                                if ((args[i].compareTo(\"-rollback\") == "
+"0))\n"
+"                                _commit = false;\n"
+"                                if ((args[i].compareTo(\"-crash\") == 0))\n"
+"                                _crash = true;\n"
+"                        }\n"
+"                        if (_commit)\n"
+"                                tx.commit();  // Top level commit\n"
+"                        else \n"
+"                                tx.abort();  // Top level rollback\n"
+"                        } catch(Exception e) {\n"
+"                        e.printStackTrace();\n"
+"                }\n"
+"        }\n"
+"        protected static boolean _commit = true;\n"
+"        protected static boolean _crash = false;\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:362
+#, no-c-format
+msgid "The registered participant has the following behavior:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:367
+#, no-c-format
+msgid ""
+"During the prepare phase, it writes a simple message - <emphasis>I’m "
+"prepared</emphasis>- on the disk such The message is written in a well known "
+"file."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:372
+#, no-c-format
+msgid ""
+"During the commit phase, it writes another message - <emphasis>I’m "
+"committed</emphasis>- in the same file used during prepare."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:377
+#, no-c-format
+msgid ""
+"If it receives an abort message, it removes from the disk the file used for "
+"prepare if any."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:382
+#, no-c-format
+msgid ""
+"If a crash has been decided for the test, then it crashes during the commit "
+"phase – the file remains with the message <emphasis>I’m prepared</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:387
+#, no-c-format
+msgid ""
+"The main portion of the code illustrating such behavior is described "
+"hereafter."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:391
+#, no-c-format
+msgid "The location of the file given in variable filename can be changed"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:395
+#, no-c-format
+msgid ""
+"package com.arjuna.demo.recoverymodule;\n"
+"        \n"
+"import com.arjuna.ats.arjuna.coordinator.*;\n"
+"import java.io.File;\n"
+"        \n"
+"public class SimpleRecord extends AbstractRecord {\n"
+"        public String filename = \"c:/tmp/RecordState\";\n"
+"        public SimpleRecord() {\n"
+"                System.out.println(\"Creating new resource\");\n"
+"        }\n"
+"        \n"
+"        public static AbstractRecord create()\n"
+"        {\n"
+"                return new SimpleRecord() ;\n"
+"        }\n"
+"        \n"
+"        public int topLevelAbort()\n"
+"        {\n"
+"                try {\n"
+"                        File fd = new File(filename);\n"
+"                        if (fd.exists()){\n"
+"                                if (fd.delete())\n"
+"                                        System.out.println(\"File Deleted"
+"\");\n"
+"                        }\n"
+"        }\n"
+"        catch(Exception ex){…}\n"
+"                return TwoPhaseOutcome.FINISH_OK;\n"
+"        }\n"
+"        \n"
+"        public int topLevelCommit()\n"
+"        {\n"
+"                if (TestRecoveryModule._crash)\n"
+"                        System.exit(0);\n"
+"                try  {\n"
+"                        java.io.FileOutputStream file = new    \n"
+"                                java.io.FileOutputStream(filename);\n"
+"                        java.io.PrintStream pfile = new java.io.PrintStream"
+"(file);\n"
+"                        pfile.println(\"I'm Committed\");\n"
+"                        file.close();\n"
+"                }\n"
+"                catch (java.io.IOException ex) {...}\n"
+"                return TwoPhaseOutcome.FINISH_OK ;\n"
+"        }\n"
+"        \n"
+"        public int topLevelPrepare()\n"
+"        {\n"
+"                try {\n"
+"                        java.io.FileOutputStream file = new\n"
+"                                java.io.FileOutputStream(filename);\n"
+"                        java.io.PrintStream pfile = new java.io.PrintStream"
+"(file);\n"
+"                        pfile.println(\"I'm prepared\");\n"
+"                        file.close();\n"
+"                }\n"
+"                catch (java.io.IOException ex)  {...}\n"
+"                return  TwoPhaseOutcome.PREPARE_OK ;\n"
+"        }\n"
+"        …\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:396
+#, no-c-format
+msgid ""
+"The role of the Recovery Module in such application consists to read the "
+"content of the file used to store the status of the participant, to "
+"determine that status and print a message indicating if a recovery action is "
+"needed or not."
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:399
+#, no-c-format
+msgid ""
+"package com.arjuna.demo.recoverymodule;\n"
+"        \n"
+"import com.arjuna.ats.arjuna.recovery.RecoveryModule;\n"
+"        \n"
+"public class SimpleRecoveryModule implements RecoveryModule\n"
+"{\n"
+"        public String filename = \"c:/tmp/RecordState\";\n"
+"        public SimpleRecoveryModule ()\n"
+"        {\n"
+"                System.out.println(\"The SimpleRecoveryModule is loaded\");\n"
+"        };\n"
+"        \n"
+"        public void periodicWorkFirstPass ()\n"
+"        {\n"
+"                try\n"
+"                {\n"
+"                        java.io.FileInputStream file = new \n"
+"                                java.io.FileInputStream(filename);\n"
+"                        java.io.InputStreamReader input = new \n"
+"                                java.io.InputStreamReader(file);\n"
+"                        java.io.BufferedReader reader = new java.io."
+"BufferedReader(input);\n"
+"                        String stringState = reader.readLine();\n"
+"                        if (stringState.compareTo(\"I'm prepared\") == 0)\n"
+"                                System.out.println(\"The transaction is in "
+"the prepared state\");\n"
+"                        file.close();\n"
+"                }\n"
+"                catch (java.io.IOException ex)\n"
+"                { System.out.println(\"Nothing found on the Disk\"); }\n"
+"        }\n"
+"        \n"
+"        public void periodicWorkSecondPass ()\n"
+"        {\n"
+"                try\n"
+"                {\n"
+"                        java.io.FileInputStream file = new \n"
+"                                java.io.FileInputStream(filename);\n"
+"                        java.io.InputStreamReader input = new \n"
+"                                java.io.InputStreamReader(file);\n"
+"                        java.io.BufferedReader reader = new java.io."
+"BufferedReader(input);\n"
+"                        String stringState = reader.readLine();\n"
+"                        if (stringState.compareTo(\"I'm prepared\") == 0)\n"
+"                        {\n"
+"                                System.out.println(\"The record is still in "
+"the prepared state – Recovery is needed\");\n"
+"                        }\n"
+"                        else if (stringState.compareTo(\"I'm Committed\") == "
+"0)\n"
+"                        {\n"
+"                                System.out.println(\"The transaction has "
+"completed and committed\");     \n"
+"                        }\n"
+"                        file.close();\n"
+"                }\n"
+"                catch (java.io.IOException ex)\n"
+"                { System.out.println(\"Nothing found on the Disk - Either "
+"there was \n"
+"                        no transaction or it as been rolled back\"); }\n"
+"        }\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:400
+#, no-c-format
+msgid ""
+"The recovery module should now be deployed in order to be called by the "
+"Recovery Manager. To do so, we just need to add an entry in the "
+"<filename>RecoveryManager-properties.xml</filename> by adding a new property "
+"as follow:"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:403
+#, no-c-format
+msgid ""
+"&lt;property\n"
+"                 name=\"com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;"
+"i&gt;\"\n"
+"        value=\"com.arjuna.demo.recoverymodule.SimpleRecoveryModule\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:404
+#, no-c-format
+msgid ""
+"Where &lt;i&gt; represent the new occurrence number that follows the last "
+"that already exists in the file. Once started, the Recovery Manager will "
+"automatically load the added Recovery module."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:408
+#, no-c-format
+msgid ""
+"The source of the code can be retrieved under the trailmap directory of the "
+"JBossTS installation."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:413
+#, no-c-format
+msgid "Another scenario"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:414
+#, no-c-format
+msgid ""
+"As mentioned, the basic application presented above does not present the "
+"complete process to recover from failure, but it was just presented to "
+"describe how the build a recovery module. In case of the OTS protocol, let’s "
+"consider how a recovery module that manages recovery of OTS resources can be "
+"configured."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:418
+#, no-c-format
+msgid ""
+"To manage recovery in case of failure, the OTS specification has defined a "
+"recovery protocol. Transaction’s participants in a doubt status could use "
+"the RecoveryCoordinator to determine the status of the transaction. "
+"According to that transaction status, those participants can take "
+"appropriate decision either by roll backing or committing. Asking the "
+"RecoveryCoordinator object to determine the status consists to invoke the "
+"replay_completion operation on the RecoveryCoordinator."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:421
+#, no-c-format
+msgid ""
+"For each OTS Resource in a doubt status, it is well known which "
+"RecoveyCoordinator to invoke to determine the status of the transaction in "
+"which the Resource is involved – It’s the RecoveryCoordinator returned "
+"during the Resource registration process. Retrieving such "
+"RecoveryCoordinator per resource means that it has been stored in addition "
+"to other information describing the resource."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:424
+#, no-c-format
+msgid ""
+"A recovery module dedicated to recover OTS Resources could have the "
+"following behavior. When requested by the recovery Manager on the first pass "
+"it retrieves from the disk the list of resources that are in the doubt "
+"status. During the second pass, if the resources that were retrieved in the "
+"first pass still remain in the disk then they are considered as candidates "
+"for recovery. Therefore, the Recovery Module retrieves for each candidate "
+"its associated RecoveryCoordinator and invokes the replay_completion "
+"operation that the status of the transaction. According to the returned "
+"status, an appropriate action would be taken (for instance, rollback the "
+"resource is the status is aborted or inactive)."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:429
+#, no-c-format
+msgid "TransactionStatusConnectionManager"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:430
+#, no-c-format
+msgid ""
+"The TransactionStatusConnectionManager object is used by the recovery "
+"modules to retrieve the status of transactions and acts like a proxy for "
+"TransactionStatusManager objects. It maintains a table of "
+"TransactionStatusConnector obects each of which connects to a "
+"TransactionStatusManager object in an Application Process."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:433
+#, no-c-format
+msgid ""
+"The transactions status is retrieved using the getTransactionStatus methods "
+"which take a transaction Uid and if available a transaction type as "
+"parameters. The process Uid field in the transactions Uid parameter is used "
+"to lookup the target TransactionStatusManagerItem host/port pair in the "
+"Object Store. The host/port pair are used to make a TCP connection to the "
+"target TransactionStatusManager object by a TransactionStatusConnector "
+"object. The TransactionStatusConnector passes the transaction Uid/"
+"transaction type to the TransactionStatusManager in order to retrieve the "
+"transactions status."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:438
+#, no-c-format
+msgid "Expired Scanner Thread"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:439
+#, no-c-format
+msgid ""
+"When the Recovery Manager initialises an expiry scanner thread "
+"ExpiryEntryMonitor is created which is used to remove long dead items from "
+"the ObjectStore. A number of scanner modules are dynamically loaded which "
+"remove long dead items for a particular type."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:442
+#, no-c-format
+msgid ""
+"Scanner modules are loaded at initialisation and are specified as properties "
+"beginning with"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:445
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScanner&lt;Scanner Name&gt;=&lt;Scanner "
+"Class&gt;"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:446
+#, no-c-format
+msgid ""
+"All the scanner modules are called periodically to scan for dead items by "
+"the ExpiryEntryMonitor thread. This period is set with the property:"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:449
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.expiryScanInterval"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:450
+#, no-c-format
+msgid ""
+"All scanners inherit the same behaviour from the java interface "
+"<interfacename>ExpiryScanner</interfacename> as illustrated in diagram below:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:458
+#, no-c-format
+msgid ""
+"A scan method is provided by this interface and implemented by all scanner "
+"modules, this is the method that gets called by the scanner thread."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:461
+#, no-c-format
+msgid ""
+"The ExpiredTransactionStatusManagerScanner removes long dead "
+"TransactionStatusManagerItems from the Object Store. These items will remain "
+"in the Object Store for a period of time before they are deleted. This time "
+"is set by the property:"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:464
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:465
+#, no-c-format
+msgid "(default 12 hours)"
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:470
+#, no-c-format
+msgid "Application Process"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:471
+#, no-c-format
+msgid ""
+"This represents the user transactional program. A Local transaction (hash) "
+"table, maintained within the running application process keeps trace of the "
+"current status of all transactions created by that application process, The "
+"Recovery Manager needs access to the transaction tables so that it can "
+"determine whether a transaction is still in progress, if so then recovery "
+"does not happen."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:474
+#, no-c-format
+msgid ""
+"The transaction tables are accessed via the TransactionStatusManager object. "
+"On application program initialisation the host/port pair that represents the "
+"TransactionStatusManager is written to the Object Store in '../Recovery/"
+"TransactionStatusManager’ part of the Object Store file hierarchy and "
+"identified by the process Uid of the application process."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:477
+#, no-c-format
+msgid ""
+"The Recovery Manager uses the TransactionStatusConnectionManager object to "
+"retrieve the status of a transaction and a TransactionStatusConnector object "
+"is used to make a TCP connection to the TransactionStatusManager."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:482
+#, no-c-format
+msgid "TransactionStatusManager"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:483
+#, no-c-format
+msgid ""
+"This object acts as an interface for the Recovery Manager to obtain the "
+"status of transactions from running HPTS application processes. One "
+"TransactionStatusManager is created per application process by the class com."
+"arjuna.ats.arjuna.coordinator.InitAction. Currently a tcp connection is used "
+"for communication between the RecoveryManager and TransactionStatusManager. "
+"Any free port is used by the TransactionStatusManager by default, however "
+"the port can be fixed with the property:"
+msgstr ""
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:486
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:487
+#, no-c-format
+msgid ""
+"On creation the TransactionStatusManager obtains a port which it stores with "
+"the host in the Object Store as a TransactionStatusManagerItem. A Listener "
+"thread is started which waits for a connection request from a "
+"TransactionStatusConnector. When a connection is established a Connection "
+"thread is created which runs a Service (AtomicActionStatusService) which "
+"accepts a transaction Uid and a transaction type (if available) from a "
+"TransactionStatusConnector, the transaction status is obtained from the "
+"local thransaction table and returned back to the TransactionStatusConnector."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:492
+#, no-c-format
+msgid "Object Store"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:493
+#, no-c-format
+msgid ""
+"All objects are stored in a file path which is equivalent to their class "
+"inheritance. Thus AtomicAction transactions are stored in file path ../"
+"StateManager/BasicAction/AtomicAction."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:496
+#, no-c-format
+msgid ""
+"All objects are identified by a unique identifier Uid. One of the values of "
+"which is a process id in which the object was created. The Recovery Manager "
+"uses the process id to locate transaction status manager items when "
+"contacting the originator application process for the transaction status."
+msgstr ""

Added: projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Author_Group.pot
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Author_Group.pot	                        (rev 0)
+++ projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Author_Group.pot	2008-08-05 01:25:24 UTC (rev 76625)
@@ -0,0 +1,21 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-08-05 01:23+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Book_Info.pot
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Book_Info.pot	                        (rev 0)
+++ projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Book_Info.pot	2008-08-05 01:25:24 UTC (rev 76625)
@@ -0,0 +1,47 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-08-05 01:23+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "Transactions Failure Recovery Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "JBoss Enterprise Application Platform"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:11
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss "
+"Transactions Failure Recovery Guide"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:18
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:24
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/How_JBossTS_managers_the_OTS_Recovery_Protocol.pot
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/How_JBossTS_managers_the_OTS_Recovery_Protocol.pot	                        (rev 0)
+++ projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/How_JBossTS_managers_the_OTS_Recovery_Protocol.pot	2008-08-05 01:25:24 UTC (rev 76625)
@@ -0,0 +1,693 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-08-05 01:23+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:6
+#, no-c-format
+msgid "How JBossTS manages the OTS Recovery Protocol"
+msgstr ""
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:10
+#, no-c-format
+msgid "Recovery Protocol in OTS-Overview"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:11
+#, no-c-format
+msgid ""
+"To manage recovery in case of failure, the OTS specification has defined a "
+"recovery protocol. Transaction’s participants in a doubt status could use "
+"the RecoveryCoordinator to determine the status of the transaction. "
+"According to that transaction status, those participants can take "
+"appropriate decision either by roll backing or committing."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:14
+#, no-c-format
+msgid ""
+"A reference to a RecoveryCoordinator is returned as a result of successfully "
+"calling register_resource on the transaction Coordinator. This object, which "
+"is implicitly associated with a single Resource, can be used to drive the "
+"Resource through recovery procedures in the event of a failure occurring "
+"during the transaction."
+msgstr ""
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:21
+#, no-c-format
+msgid "Resource and RecoveryCoordinator relationship."
+msgstr ""
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:26
+#, no-c-format
+msgid "RecoveryCoordinator in JBossTS"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:27
+#, no-c-format
+msgid ""
+"On each resource registration a RecoveryCoordinator Object is expected to be "
+"created and returned to the application that invoked the register_resource "
+"operation. Behind each CORBA object there should be an object implementation "
+"or Servant object, in POA terms, which performs operations made on a "
+"RecoveryCoordinator object. Rather than to create a RecoveryCoordinator "
+"object with its associated servant on each register_resource, JBossTS "
+"enhances performance by avoiding the creation of servants but it relies on a "
+"default RecoveryCoordinator object with it’s associated default servant to "
+"manage all replay_completion invocations."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:30
+#, no-c-format
+msgid ""
+"In the next sections we first give an overview of the Portable Object "
+"Adapter architecture, then we describe how this architecture is used to "
+"provide RecoveryCoordinator creation with optimization as explained above."
+msgstr ""
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:34
+#, no-c-format
+msgid "Understanding POA"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:35
+#, no-c-format
+msgid ""
+"Basically, the Portable Object Adapter, or POA is an object that intercepts "
+"a client request and identifies the object that satisfies the client "
+"request. The Object is then invoked and the response is returned to the "
+"client."
+msgstr ""
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:43
+#, no-c-format
+msgid "Overview of the POA."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:45
+#, no-c-format
+msgid ""
+"The object that performs the client request is referred as a servant, which "
+"provides the implementation of the CORBA object requested by the client. A "
+"servant provides the implementation for one or more CORBA object references. "
+"To retreive a servant, each POA maintains an Active Object Map that maps all "
+"objects that have been activated in the POA to a servant. For each incoming "
+"request, the POA looks up the object reference in the Active Object Map and "
+"tries to find the responsible servant. If none is found, the request is "
+"either delegated to a default servant, or a servant manager is invoked to "
+"activate or locate an appropriate servant. In addition to the name space for "
+"the objects, which are identified by Object Ids, a POA also provides a name "
+"space for POAs. A POA is created as a child of an existing POA, which forms "
+"a hierarchy starting with the root POA."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:48
+#, no-c-format
+msgid ""
+"Each POA has a set of policies that define its characteristics. When "
+"creating a new POA, the default set of policies can be used or different "
+"values can be assigned that suit the application requirements. The POA "
+"specification defines:"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:53
+#, no-c-format
+msgid ""
+"<emphasis>Thread policy:</emphasis> Specifies the threading model to be used "
+"by the POA. Possible values are:"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:58
+#, no-c-format
+msgid ""
+"ORB_CTRL_MODEL (default): The POA is responsible for assigning requests to "
+"threads."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:63
+#, no-c-format
+msgid "SINGLE_THREAD_MODEL: The POA processes requests sequentially"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:70
+#, no-c-format
+msgid ""
+"<emphasis>Lifespan policy:</emphasis> Specifies the lifespan of the objects "
+"implemented in the POA. The lifespan policy can have the following values:"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:75
+#, no-c-format
+msgid ""
+"TRANSIENT (Default) Objects implemented in the POA cannot outlive the "
+"process in which they are first created. Once the POA is deactivated, an "
+"OBJECT_NOT_EXIST exception occurs when attempting to use any object "
+"references generated by the POA."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:80
+#, no-c-format
+msgid ""
+"PERSISTENT Objects implemented in the POA can outlive the process in which "
+"they are first created."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:87
+#, no-c-format
+msgid ""
+"Object ID Uniqueness policy: Allows a single servant to be shared by many "
+"abstract objects. The Object ID Uniqueness policy can have the following "
+"values:"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:92
+#, no-c-format
+msgid "UNIQUE_ID (Default): Activated servants support only one Object ID."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:97
+#, no-c-format
+msgid ""
+"MULTIPLE_ID: Activated servants can have one or more Object IDs. The Object "
+"ID must be determined within the method being invoked at run time."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:104
+#, no-c-format
+msgid ""
+"ID Assignment policy: Specifies whether object IDs are generated by server "
+"applications or by the POA. The ID Assignment policy can have the following "
+"values:"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:109
+#, no-c-format
+msgid "USER_ID is for persistent objects, and"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:114
+#, no-c-format
+msgid "SYSTEM_ID is for transient objects."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:121
+#, no-c-format
+msgid ""
+"Servant Retention policy: Specifies whether the POA retains active servants "
+"in the Active Object Map. The Servant Retention policy can have the "
+"following values:"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:126
+#, no-c-format
+msgid ""
+"RETAIN (Default) The POA tracks object activations in the Active Object Map. "
+"RETAIN is usually used with ServantActivators or explicit activation methods "
+"on POA."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:131
+#, no-c-format
+msgid ""
+"NON_RETAIN The POA does not retain active servants in the Active Object Map. "
+"NON_RETAIN is typically used with ServantLocators."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:138
+#, no-c-format
+msgid ""
+"Request Processing policy: Specifies how requests are processed by the POA."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:143
+#, no-c-format
+msgid ""
+"USE_ACTIVE_OBJECT_MAP (Default): If the Object ID is not listed in the "
+"Active Object Map, an OBJECT_NOT _EXIST exception is returned. The POA must "
+"also use the RETAIN policy with this value."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:148
+#, no-c-format
+msgid ""
+"USE_DEFAULT_SERVANT: If the Object ID is not listed in the Active Object Map "
+"or the NON_RETAIN policy is set, the request is dispatched to the default "
+"servant. If no default servant has been registered, an OBJ_ADAPTER exception "
+"is returned. The POA must also use the MULTIPLE_ID policy with this value."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:153
+#, no-c-format
+msgid ""
+"USE_SERVANT_MANAGER: If the Object ID is not listed in the Active Object Map "
+"or the NON_RETAIN policy is set, the servant manager is used to obtain a "
+"servant."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:160
+#, no-c-format
+msgid ""
+"Implicit Activation policy: Specifies whether the POA supports implicit "
+"activation of servants. The Implicit Activation policy can have the "
+"following values:"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:165
+#, no-c-format
+msgid ""
+"IMPLICIT_ACTIVATION: The POA supports implicit activation of servants. "
+"Servants can be activated by converting them to an object reference with "
+"<methodname>org.omg.PortableServer.POA.servant_to_reference()</methodname> "
+"or by invoking <methodname>_this()</methodname> on the servant. The POA must "
+"also use the SYSTEM_ID and RETAIN policies with this value."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:170
+#, no-c-format
+msgid ""
+"NO_IMPLICIT_ACTIVATION (Default): The POA does not support implicit "
+"activation of servants."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:177
+#, no-c-format
+msgid ""
+"It appears that to redirect replay_completion invocations to a default "
+"servant we need to create a POA with the Request Processing policy assigned "
+"with the value set to USE_DEFAULT_SERVANT. However to reach that default "
+"Servant we should first reach the POA that forward the request to the "
+"default servant. Indeed, the ORB uses a set of information to retrieve a "
+"POA; these information are contained in the object reference used by the "
+"client. Among these information there are the IP address and the port number "
+"where resides the server and also the POA name. To perform replay_completion "
+"invocations, the solution adopted by JBossTS is to provide one Servant, per "
+"machine, and located in the RecoveryManager process, a separate process from "
+"client or server applications. The next section explains how the indirection "
+"to a default Servant located on a separate process is provided for ORBIX and "
+"for JacORB."
+msgstr ""
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:182
+#, no-c-format
+msgid "The default RecoveryCoordinator in Orbix"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:183
+#, no-c-format
+msgid ""
+"Within Orbix, objects are located by the Location Deamon. To avoid the "
+"overhead of using the location daemon, Orbix provides a mechanism named "
+"<emphasis>Direct Persistence</emphasis> allowing generating persistent "
+"object references. This mechanism is in fact a proprietary policy named, "
+"DIRECT_PERSISTENCE. A POA with policies of PERSISTENT and DIRECT_PERSISTENCE "
+"generates IORs that contain a well-known address for the server process. A "
+"POA that uses direct persistence must also tell each transport mechanism "
+"such as IIOP where in the configuration file it can find the well-known "
+"address that it should use. This is done by creating a "
+"<code>WellKnownAddressingPolicy</code> object and setting its value to the "
+"configuration scope that contains the well-known address."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:186
+#, no-c-format
+msgid ""
+"To specify the address used by the <code>WellKnownAddressingPolicy</code> "
+"object, JBossTS uses the Orbix mechanism that allows specifying an ORB/POA "
+"names. The following configuration modifications are necessary to define the "
+"well-know address of the RecoveryCoordinator performing replay_completion "
+"invocation."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:190
+#, no-c-format
+msgid ""
+"Note that this configuration is also necessary to support transaction "
+"context propagation and interposition."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:194
+#, no-c-format
+msgid ""
+"A new orb name domain called arjuna should be created within the main Orbix "
+"2000 domain being used by the application. It requires the following format:"
+msgstr ""
+
+#. Tag: screen
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:197
+#, no-c-format
+msgid ""
+"arjuna\n"
+"{\n"
+"        portable_interceptor\n"
+"        {\n"
+"                orb_plugins = [\"local_log_stream\", \"iiop_profile\", \"giop"
+"\", \"iiop\", \"portable_interceptor\"];\n"
+"        \n"
+"                ots_recovery_coordinator\n"
+"                {\n"
+"                        recovery_coordinator:iiop:addr_list = [“&lt;name&gt;:"
+"&lt;port&gt;”];\n"
+"                };\n"
+"                        \n"
+"                ots_transaction\n"
+"                {\n"
+"                        transaction:iiop:addr_list = [“+&lt;name&gt;:&lt;"
+"port&gt;”];\n"
+"                };     \n"
+"                ots_context\n"
+"                {\n"
+"                        binding:client_binding_list = [\"OTS_Context\", "
+"\"OTS_Context+GIOP+SIOP\", \"GIOP+SIOP\", \"OTS_Context+GIOP+IIOP\", \"GIOP"
+"+IIOP\"];\n"
+"                        binding:server_binding_list = [\"OTS_Context\", "
+"\"\"];\n"
+"                };\n"
+"                                        \n"
+"                ots_interposition\n"
+"                {\n"
+"                        binding:client_binding_list = [\"OTS_Interposition"
+"\", \"OTS_Interposition+GIOP+SIOP\", \"GIOP+SIOP\", \"OTS_Interposition+GIOP"
+"+IIOP\", \"GIOP+IIOP\"];\n"
+"                        binding:server_binding_list = [\"OTS_Interposition"
+"\", \"\"];\n"
+"                };\n"
+"        };\n"
+"};"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:198
+#, no-c-format
+msgid ""
+"The &lt;name&gt; field should be substituted by the name of the machine on "
+"which JBossTS is being run. The &lt;port&gt; field should be an unused port "
+"on which the JBossTS recovery manager may listen for recovery requests."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:201
+#, no-c-format
+msgid ""
+"Because of the way in which Orbix works with persistent POAs, if you want "
+"crash recovery support for your applications you must use one of the Arjuna "
+"ORB names provided (context or interposition) when running your clients and "
+"services. When using transaction context propagation only, the<parameter>–"
+"ORBname arjuna.portable_interceptor.ots_context</parameter> parameter should "
+"be passed to the client and server. When using context propagation and "
+"interposition, the <parameter>–ORBname.arjuna.portable_interceptor."
+"ots_interposition</parameter> parameter should be used. For example:"
+msgstr ""
+
+#. Tag: screen
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:204
+#, no-c-format
+msgid "java mytest –ORBname arjuna.portable_interceptor.ots_context"
+msgstr ""
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:206
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:287
+#, no-c-format
+msgid "How it works"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:207
+#, no-c-format
+msgid ""
+"When the Recovery Manager is launched it seeks in the configuration the "
+"RecoveryActivator that need be loaded. Once done it invokes the "
+"<methodname>startRCservice</methodname> method of each loaded instances. As "
+"seen in in the previous chapter (Recovery Manager) the class to load that "
+"implements the <interfacename>RecoveryActivator</interfacename> interface is "
+"the class <classname>RecoveryEnablement</classname>. This generic class, "
+"located in the package <package>com.arjuna.ats.internal.jts.orbspecific."
+"recovery</package>, hides the nature of the ORB being used by the "
+"application. The following figure illustrates the behavior of the "
+"<interfacename>RecoveryActivator</interfacename> that leads to the creation "
+"of the default servant that performs all replay_invocations requests."
+msgstr ""
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:215
+#, no-c-format
+msgid ""
+"The Recovery Manager and the creation of the default servant for "
+"RecoveryCoordinator."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:218
+#, no-c-format
+msgid ""
+"There is one recovery Manager Process per machine, then one default servant "
+"per machine. Performing all replay_completion invocations means those made "
+"on the same machine."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:222
+#, no-c-format
+msgid ""
+"When started, the application, using JBossTS in library mode, is launched a "
+"child POA is created with the same policies as those defined within the "
+"Recovery Manager. This child POA is used to create object references, for "
+"RecoveryCoordinator CORBA objects, that need to be returned on "
+"register_resource invocations, as illustrated in figure below. The Object "
+"reference created has an Object ID that contains the transaction ID in "
+"progress and the Process Identifier of the application."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:226
+#, no-c-format
+msgid ""
+"If the Transaction Service is used in the stand-alone mode, the behavior to "
+"create object reference to RecoveryCoordinator objects is exactly the same; "
+"the process ID used in the Object ID is the Transaction Service process ID"
+msgstr ""
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:234
+#, no-c-format
+msgid ""
+"Resource registration and returned RecoveryCoordinator Object reference."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:236
+#, no-c-format
+msgid ""
+"Having the object reference of the RecoveryCoordinator, an application can "
+"use it to determine the status of the transaction for which that object "
+"reference is created. When a RecoveryCoordinator, according to POA policies "
+"assigned to the POA included in the object reference, the request is forward "
+"straightforward to the default servant defined in the Recovery Manager, as "
+"described in the figure below."
+msgstr ""
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:243
+#, no-c-format
+msgid ""
+"replay_completion invocation forwarded to the default RecoveryCoordinator ."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:245
+#, no-c-format
+msgid "The flow described in the figure can be depicted as follow:"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:250
+#, no-c-format
+msgid ""
+"The participant invokes the replay_completion operation on "
+"RecoveryCoordinator object using the object reference returned by the "
+"Transaction Server."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:255
+#, no-c-format
+msgid ""
+"The request is forwarded to the Recovery Manager process since the Well-"
+"known-address policy is used to retrieve."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:260
+#, no-c-format
+msgid "The child POA responsible to locate the servant is retrieved."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:265
+#, no-c-format
+msgid ""
+"After looking to the Active Object Map, the child POA invokes the default "
+"servant to perform the request. Note that the Object ID conveyed by the "
+"object reference is not retrieved in the AOP."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:270
+#, no-c-format
+msgid ""
+"The servant extracts from the request the Object ID that contains the "
+"Transaction ID and the process ID of the Transaction Server process. To "
+"determine if the process still alive, the TransactionStatusConnectionManager "
+"functionalities are used."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:275
+#, no-c-format
+msgid ""
+"According to the presence or not of the Transaction Server process and "
+"eventually the returned status, the servant returns the status of the "
+"transaction asked by the participant."
+msgstr ""
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:282
+#, no-c-format
+msgid "The default RecoveryCoordinator in JacOrb"
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:283
+#, no-c-format
+msgid ""
+"JacORB does not define additional policies to redirect any request on a "
+"RecoveryCoordinator object to a default servant located in the Recovery "
+"Manager process. However it provides a set of APIs that allows building "
+"object references with specific IP address, port number and POA name in "
+"order to reach the appropriate default servant."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:288
+#, no-c-format
+msgid ""
+"When the Recovery Manager is launched it seeks in the configuration the "
+"RecoveryActivator that need be loaded. Once done it invokes the "
+"<methodname>startRCservice</methodname> method of each loaded instances. As "
+"seen in in the previous chapter (Recovery Manager ) the class to load that "
+"implements the <interfacename>RecoveryActivator</interfacename> interface is "
+"the class <classname>RecoveryEnablement</classname>. This generic class, "
+"located in the package <package>com.arjuna.ats.internal.jts.orbspecific."
+"recovery</package>, hides the nature of the ORB being used by the "
+"application (JacORB). The following figure illustrates the behavior of the "
+"<interfacename>RecoveryActivator</interfacename> that leads to the creation "
+"of the default servant that performs replay_completion invocations requests."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:292
+#, no-c-format
+msgid ""
+"In addition to the creation of the default servant, an object reference to a "
+"<code>RecoveryCoordinator</code> object is created and stored in the "
+"ObjectStore. As we will see this object reference will be used to obtain its "
+"IP address, port number and POA name and assign them to any "
+"<code>RecoveryCoordinator</code> object reference created on "
+"register_resource."
+msgstr ""
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:299
+#, no-c-format
+msgid ""
+"replay_completion invocation forwarded to the default RecoveryCoordinator."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:301
+#, no-c-format
+msgid ""
+"When an application registers a resource with a transaction, a "
+"<code>RecoveryCoordinator</code> object reference is expected to be "
+"returned. To build that object reference, the Transaction Service uses the "
+"RecoveryCoordinator object reference created within the Recovery Manager as "
+"a template. The new object reference contains practically the same "
+"information to retrieve the default servant (IP address, port number, POA "
+"name, etc.), but the Object ID is changed; now, it contains the Transaction "
+"ID of the transaction in progress and also the Process ID of the process "
+"that is creating the new <code>RecoveryCoordinator</code> object reference, "
+"as illustrated below."
+msgstr ""
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:308
+#, no-c-format
+msgid ""
+"Resource registration and returned RecoveryCoordinator Object reference "
+"build from a reference stored in the ObjectStore."
+msgstr ""
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:310
+#, no-c-format
+msgid ""
+"Since a <code>RecoveryCoordintaor</code> object reference returned to an "
+"application contains all information to retrieve the POA then the default "
+"servant located in the Recovery Manager, all replay_completion invocation, "
+"per machine, are forwarded to the same default <code>RecoveryCoordinator</"
+"code> that is able to retreive the Object ID from the incoming request to "
+"extract the transaction identifier and the process identifier needed to "
+"determine the status of the requested transaction."
+msgstr ""

Added: projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Preface.pot
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Preface.pot	                        (rev 0)
+++ projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Preface.pot	2008-08-05 01:25:24 UTC (rev 76625)
@@ -0,0 +1,21 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-08-05 01:23+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Revision_History.pot
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Revision_History.pot	                        (rev 0)
+++ projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Revision_History.pot	2008-08-05 01:25:24 UTC (rev 76625)
@@ -0,0 +1,21 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-08-05 01:23+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: author
+#: Revision_History.xml:9
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/Transactions_Failure_Recovery_Guide.pot
===================================================================

Added: projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/messages.mo
===================================================================
(Binary files differ)


Property changes on: projects/docs/enterprise/4.3/Transactions/Transactions_Failure_Recovery_Guide/pot/messages.mo
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream




More information about the jboss-cvs-commits mailing list