[jboss-svn-commits] JBL Code SVN: r29387 - in labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide: de-DE and 6 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Sep 16 22:54:04 EDT 2009


Author: xhuang at jboss.com
Date: 2009-09-16 22:54:03 -0400 (Wed, 16 Sep 2009)
New Revision: 29387

Added:
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/Architecture_of_the_Recovery_Manager.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/How_JBossTS_managers_the_OTS_Recovery_Protocol.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/JBoss_Transactions_Failure_Recovery_Guide.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/JBoss_Transactions_Failure_Recovery_Guide_CP06.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/Preface.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/Architecture_of_the_Recovery_Manager.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/How_JBossTS_managers_the_OTS_Recovery_Protocol.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/JBoss_Transactions_Failure_Recovery_Guide.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/JBoss_Transactions_Failure_Recovery_Guide_CP06.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/Preface.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/Architecture_of_the_Recovery_Manager.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/How_JBossTS_managers_the_OTS_Recovery_Protocol.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/JBoss_Transactions_Failure_Recovery_Guide.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/JBoss_Transactions_Failure_Recovery_Guide_CP06.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/Preface.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/Architecture_of_the_Recovery_Manager.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/How_JBossTS_managers_the_OTS_Recovery_Protocol.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/JBoss_Transactions_Failure_Recovery_Guide.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/JBoss_Transactions_Failure_Recovery_Guide_CP06.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/Preface.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/Architecture_of_the_Recovery_Manager.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/How_JBossTS_managers_the_OTS_Recovery_Protocol.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/JBoss_Transactions_Failure_Recovery_Guide.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/JBoss_Transactions_Failure_Recovery_Guide_CP06.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/Preface.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/Revision_History.po
Modified:
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/Makefile
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/Architecture_of_the_Recovery_Manager.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/How_JBossTS_managers_the_OTS_Recovery_Protocol.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/Preface.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/Architecture_of_the_Recovery_Manager.pot
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/Author_Group.pot
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/Book_Info.pot
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/How_JBossTS_managers_the_OTS_Recovery_Protocol.pot
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/Preface.pot
   labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/Revision_History.pot
Log:
Generate PO based on v4.3

Modified: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/Makefile
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/Makefile	2009-09-17 02:48:30 UTC (rev 29386)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/Makefile	2009-09-17 02:54:03 UTC (rev 29387)
@@ -5,7 +5,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
+OTHER_LANGS	= ja-JP de-DE es-ES fr-FR pt-BR zh-CN
 
 COMMON_CONFIG  = /usr/share/publican
 include $(COMMON_CONFIG)/make/Makefile.common

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/Architecture_of_the_Recovery_Manager.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/Architecture_of_the_Recovery_Manager.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/Architecture_of_the_Recovery_Manager.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,2258 @@
+# translation of Preface.po to
+# Language de-DE translations for  package.
+#
+# Automatically generated, 2008.
+# Hedda Peters <hpeters at redhat.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2009-01-23 17:24+1000\n"
+"Last-Translator: Hedda Peters <hpeters at redhat.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:6
+#, no-c-format
+msgid "Architecture of the Recovery Manager"
+msgstr "Architektur des Recovery-Managers"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:8
+#, no-c-format
+msgid "Crash Recovery Overview"
+msgstr "Crash Recovery im Überblick"
+
+#. 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 ""
+"Die wesentlichen Architekturkomponenten von Crash Recovery sind im Diagramm "
+"unten dargestellt:"
+
+#. 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 ""
+"Der Recovery-Manager ist ein Daemonprozess, der für die Durchführung von "
+"Crash Recovery verantwortlich ist. Pro Knoten läuft nur ein Recovery-"
+"Manager. Der Objektspeicher bietet den Transaktionen persistente "
+"Datenspeicherung zum Protokollieren von Daten. Während der normalen "
+"Abwicklung einer Transaktion protokolliert jede Transaktion persistente "
+"Daten im Objektspeicher, die für die Festschreibungsphase nötig sind. Nach "
+"erfolgreicher Festschreibung einer Transaktion werden diese Daten gelöscht, "
+"wenn die Transaktion jedoch fehlschlägt, verbleiben diese Daten im "
+"Objektspeicher."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:20
+#, no-c-format
+msgid "The Recovery Manager functions by:"
+msgstr "Der Recovery-Manager arbeitet wie folgt:"
+
+#. 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 ""
+"Periodisches Scannen des Objektspeichers nach Transaktionen, die "
+"fehlgeschlagen sein könnten. Auf gescheiterte Transaktionen weist hin, dass "
+"Protokolldaten nach einer bestimmten Zeit noch vorhanden sind, wenn in "
+"dieser Zeit die Transaktion normalerweise hätte abgeschlossen sein sollen."
+
+#. 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 ""
+"Nachprüfen beim Anwendungsprozess, der die Transaktion veranlasst hat, ob "
+"die Transaktion noch fortschreitet, oder nicht."
+
+#. 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 ""
+"Wiederherstellung der Transaktion durch deren Reaktivierung und anschließend "
+"erneutem Durchlaufen des zwei-Phasen Festschreibungsprozesses."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:40
+#, no-c-format
+msgid ""
+"The following sections describe the architectural components in more detail"
+msgstr ""
+"Die folgenden Abschnitte beschreiben die Architekturkomponenten im Einzelnen."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:46
+#, no-c-format
+msgid "Recovery Manager"
+msgstr "Recovery-Manager"
+
+#. 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 ""
+"Bei Initialisierung lädt der Recovery-Manager zunächst die "
+"Konfigurationsinformation mittels einer Eigenschaftsdatei. Diese "
+"Konfiguration beinhaltet eine Anzahl von Recovery-Aktivatoren und Recovery-"
+"Modulen, welche dann dynamisch geladen werden."
+
+#. 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 ""
+"Ab Version 3.0 von JBossTS ist der Recovery-Manager nicht mehr speziell an "
+"einen \"Object Request Broker\" oder ORB gebunden. Deshalb ist das OTS-"
+"Recovery-Protokoll nicht implizit aktiviert. Um ein solches Protokol zu "
+"aktivieren, wenden wir das Konzept des Recovery-Aktivators an, definiert in "
+"der Schnittstelle <interfacename>RecoveryActivator</interfacename>. Diese "
+"wird dazu benutzt, eine Recovery-Klasse zu instanzieren, die mit dem "
+"zugrunde liegenden Kommunikationsprotokoll verbunden ist. Bei Verwendung mit "
+"z. B. OTS obliegt es dem <interfacename>RecoveryActivitor</interfacename>, "
+"ein RecoveryCoordinator-Objekt zu erstellen, das auf die \"replay_completion"
+"\"-Operation antworten kann."
+
+#. 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 ""
+"Alle <interfacename>RecoveryActivator</interfacename>-Instanzen erben "
+"dieselbe Schnittstelle. Sie werden via der folgenden Recovery-"
+"Erweiterungseigenschaft geladen:"
+
+#. 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 ""
+"&lt;property  \n"
+"                   name=\"com.arjuna.ats.arjuna.recovery."
+"recoveryActivator_&lt;number&gt;\" value=\"RecoveryClass\" /&gt;"
+
+#. 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 ""
+"Beispielsweise lautet der in der Distribution von JTS/OTS bereitgestellte "
+"<interfacename>RecoveryActivator</interfacename>, der nicht kommentiert "
+"werden soll, wie folgt:"
+
+#. 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 ""
+"&lt;property \n"
+"        name=\"com.arjuna.ats.arjuna.recovery.recoveryActivator_1\" value="
+"\"com.arjuna.ats.internal.jts.orbspecific.recovery.RecoveryEnablement/&gt;"
+
+#. 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 ""
+"Wenn geladen, liefern alle <interfacename>RecoveryActivator</interfacename>-"
+"Instanzen die <methodname>startRCservice</methodname>-Methode, die durch den "
+"Recovery-Manager aufgerufen und zur Erstellung der passenden Recovery-"
+"Komponente verwendet wird, welche dann Recovery-Anfragen entsprechend eines "
+"bestimmten Transaktionsprotokolls empfangen kann. Zum Beispiel der vom OTS-"
+"Protokoll definierte RecoveryCoordinator."
+
+#. 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 ""
+"Jedes Recovery-Modul wird zur Wiederherstellung eines anderen Typs von "
+"Transaktion/Ressource verwendet, doch erbt jedes Recovery-Modul dieselben "
+"grundlegenden Verhaltensweisen."
+
+#. 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 ""
+"Recovery besteht aus zwei separaten Pässen/Phasen, getrennt durch zwei "
+"Timeout-Zeiträume. Der erste Pass durchsucht den Objektspeicher nach "
+"potenziell fehlgeschlagenen Transaktionen, der zweite Pass führt Crash "
+"Recovery an fehlgeschlagenen Transaktionen aus. Der Timeout zwischen dem "
+"ersten und zweiten Pass ist der sogenannte \"Backoff\"-Zeitraum. Der Timeout "
+"zwischen dem Ende des zweiten Passes und dem Start des ersten Passes ist der "
+"Recovery-Zeitraum. Der Recovery-Zeitraum ist länger als der Backoff-Zeitraum."
+
+#. 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 ""
+"Der Recovery-Manager ruft den ersten Pass auf jedem Recovery-Modul auf, "
+"wartet den Backoff-Zeitraum ab, ruft den zweiten Pass auf jedem Recovery-"
+"Modul auf, und wartet anschließend den Recovery-Zeitraum ab, bevor er den "
+"ersten Pass wieder startet."
+
+#. 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 ""
+"Die Recovery-Module werden mittels der folgenden Recovery-"
+"Erweiterungseigenschaft geladen:"
+
+#. 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 ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;number&gt;=&lt;"
+"RecoveryClass&gt;"
+
+#. 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 ""
+"Der Backoff-Zeitraum und der Recovery-Zeitraum werden eingestellt mithilfe "
+"der folgenden Eigenschaften:"
+
+#. 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 ""
+"com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod        (default 10 "
+"secs)\n"
+"com.arjuna.ats.arjuna.recovery.periodicRecovery                (default 120 "
+"secs)"
+
+#. 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 ""
+"Die folgenden Java-Klassen werden zur Implementierung des Recovery-Managers "
+"verwendet:"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:86
+#, no-c-format
+msgid "package <package>com.arjuna.ats.arjuna.recovery</package>:"
+msgstr "Paket <package>com.arjuna.ats.arjuna.recovery</package>:"
+
+#. 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 ""
+"RecoveryManager: Der Daemon-Prozess, der bei Instanzierung einer Instanz der "
+"RecoveryManagerImple-Klasse startet."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:96
+#, no-c-format
+msgid "RecoveryEnvironment: Properties used by the recovery manager."
+msgstr "RecoveryEnvironment: Vom Recovery-Manager verwendete Eigenschaften."
+
+#. 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 ""
+"RecoveryConfiguration: Spezifiziert den Namen der Eigenschaftsdatei des "
+"Recovery-Managers (z. B. RecoveryManager-properties.xml)."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:108
+#, no-c-format
+msgid "package <package>com.arjuna.ats.internal.ts.arjuna.recovery</package>:"
+msgstr "Paket <package>com.arjuna.ats.internal.ts.arjuna.recovery</package>:"
+
+#. 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 ""
+"RecoveryManagerImple: Erstellt und startet Instanzen des RecActivatorLoader, "
+"des PeriodicRecovery-Threads und des ExpiryEntryMonitor-Threads."
+
+#. 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 ""
+"RecActivatorLoader: Lädt dynamisch im RecoveryActivator, der in der "
+"Eigenschaftsdatei des Recovery-Managers spezifiziert ist. Jeder "
+"RecoveryActivator ist als eine Recovery-Erweiterung in der Eigenschaftsdatei "
+"spezifiziert."
+
+#. 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 ""
+"PeriodicRecovery: Thread, der jedes Recovery-Modul lädt, dann die Methode "
+"für den ersten Pass für jedes Modul aufruft, den Backoff-Zeitraum abwartet, "
+"die Methode für den zweiten Pass für jedes Modul aufruft, und den Recovery-"
+"Zeitraum abwartet."
+
+#. 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 ""
+"RecoveryClassLoader: Lädt dynamisch im Recovery-Modul, das in der "
+"Eigenschaftsdatei des Recovery-Managers spezifiziert ist. Jedes Modul ist in "
+"der Eigenschaftsdatei als Recovery-Erweiterung spezifiziert (z. B. com."
+"arjuna.ats.arjuna.recovery.recoveryExtension1=com.arjuna.ats.internal.ts."
+"arjuna.recovery.AtomicActionRecoveryModule)."
+
+#. 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 ""
+"Standardmäßig horcht der Recovery-Manager auf den ersten verfügbaren Port "
+"auf einer gegebenen Maschine. Wenn Sie kontrollieren möchten, welche Port-"
+"Nummer er verwendet, können Sie dies spezifizieren mittels des com.arjuna."
+"ats.arjuna.recovery.recoveryPort-Attributs."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:141
+#, no-c-format
+msgid "Embedding the Recovery Manager"
+msgstr "Einbetten des Recovery-Managers"
+
+#. 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 ""
+"In manchen Situationen kann es notwendig sein, den Recovery-Manager in "
+"demselben Prozess einzubetten wie den Transaktionsdienst. In diesem Fall "
+"können Sie eine Instanz des Recovery-Managers erstellen durch die "
+"Managermethode auf com.arjuna.ats.arjuna.recovery.RecoveryManager. Ein "
+"Recovery-Manager kann in einer von zwei Modi erstellt werden, auswählbar via "
+"dem Parameter zur Managermethode:"
+
+#. 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 ""
+"INDIRECT_MANAGEMENT: Der Manager läuft periodisch, kann aber bei Bedarf auch "
+"mittels der Scan-Operation oder der RecoveryDriver-Klasse gestartet werden, "
+"wie unten beschrieben."
+
+#. 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 ""
+"DIRECT_MANAGEMENT: Der Manager läuft nicht periodisch, und muss direkt "
+"ausgeführt werden via der Scan-Operation oder dem RecoveryDriver."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:159
+#, no-c-format
+msgid "Managing recovery directly"
+msgstr "Direkte Steuerung der Recovery"
+
+#. 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 ""
+"Wie bereits erwähnt, erfolgt die Recovery in der Regel in periodischen "
+"Intervallen. Falls Sie die Recovery direkt ausführen müssen, gibt es dazu "
+"zwei Möglichkeiten, abhängig davon, wie der Recovery-Manager erstellt wurde."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:165
+#, no-c-format
+msgid "Seperate Recovery Manager"
+msgstr "Separater Recovery-Manager"
+
+#. 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 ""
+"Um dem Recovery-Manager eine Nachricht zu senden und zur Durchführung einer "
+"Recovery aufzufordern, können Sie entweder das com.arjuna.ats.arjuna.tools."
+"RecoveryMonitor-Programm benutzen, oder eine Instanz der com.arjuna.ats."
+"arjuna.recovery.RecoveryDriver-Klasse erstellen. Es stehen zwei Arten von "
+"Recovery Scans zur Verfügung:"
+
+#. 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 ""
+"ASYNC_SCAN: Hierbei wird eine Nachricht an den Recovery-Manager geschickt, "
+"um ihn zur Durchführung einer Recovery aufzufordern, aber die Antwort kommt "
+"zurück, noch bevor die Recovery abgeschlossen ist. "
+
+#. 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 ""
+"SYNC: Hierbei wird eine Nachricht an den Recovery-Manager geschickt, um ihn "
+"zur Durchführung einer Recovery aufzufordern, und die Antwort erfolgt erst, "
+"wenn die Recovery abgeschlossen ist."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:183
+#, no-c-format
+msgid "In process Recovery Manager"
+msgstr "Recovery-Manager im laufenden Betrieb"
+
+#. 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 ""
+"Sie können die Scan-Operation auf dem Recovery-Manager aufrufen. Diese "
+"Operation kehrt nur zurück, wenn die Recovery abgeschlossen wurde. Falls Sie "
+"allerdings ein asynchrones Interaktionsmuster wünschen, ist dafür die "
+"RecoveryScan-Schnittstelle bereitgestellt:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:188
+#, no-c-format
+msgid ""
+"public interface RecoveryScan\n"
+"{\n"
+"        public void completed ();\n"
+"}"
+msgstr ""
+"public interface RecoveryScan\n"
+"{\n"
+"        public void completed ();\n"
+"}"
+
+#. 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 ""
+"Eine Instanz eines Objekts, das diese Schnittstelle unterstützt, kann an die "
+"Scan-Operation übergeben werden. Dessen \"completed\"-Methode wird "
+"aufgerufen werden, wenn die Recovery abgeschlossen ist. Die Scan-Operation "
+"kehrt jedoch sofort zurück."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:195
+#, no-c-format
+msgid "Recovery Modules"
+msgstr "Recovery-Module"
+
+#. 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 ""
+"Wie bereits erwähnt, wird jedes Recovery-Modul für die Wiederherstellung "
+"eines anderen Typs von Transaktion/Ressource verwendet. Dennoch muss jedes "
+"Recovery-Modul die folgende RecoveryModule-Schnittstelle implementieren, "
+"welche zwei Methoden definiert: <methodname>periodicWorkFirstPass</"
+"methodname> und <methodname>periodicWorkSecondPass</methodname>, aufgerufen "
+"durch den Recovery-Manager."
+
+#. 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 ""
+"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"
+"}"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:201
+#, no-c-format
+msgid "JBossTS Recovery Module Classes"
+msgstr "JBossTS Recovery-Modulklassen"
+
+#. 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 ""
+"JBossTS stellt ein Set von Recovery-Modulen bereit, die verantwortlich sind "
+"für das Steuern der Recovery entsprechend des Wesens des Teilnehmers und "
+"dessen Position in einem transaktionalen Baum. Die bereitgestellten Klassen "
+"(die alle die <interfacename>RecoveryModule</interfacename>-Schnittstelle "
+"implementieren) sind:"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:209
+#, no-c-format
+msgid "com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"
+msgstr "com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:210
+#, no-c-format
+msgid "Recovers AtomicAction transactions."
+msgstr "Stellt AtomicAction-Transaktionen wieder her."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:217
+#, no-c-format
+msgid "com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"
+msgstr "com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:218
+#, no-c-format
+msgid "Recovers Transactional Objects for Java."
+msgstr "Stellt transaktionale Objekte für Java wieder her."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:225
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions.TransactionRecoveryModule"
+msgstr ""
+"com.arjuna.ats.internal.jts.recovery.transactions.TransactionRecoveryModule"
+
+#. 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 ""
+"Stellt JTS-Transaktionen wieder her. Dies ist eine generische Klasse, von "
+"der Recovery-Module für Servertransaktionen bzw. für Transaktionen oberster "
+"Ebene erben."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:233
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"TopLevelTransactionRecoveryModule"
+msgstr ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"TopLevelTransactionRecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:234
+#, no-c-format
+msgid "Recovers JTS Toplevel Transactions."
+msgstr "Stellt JTS-Transaktionen oberster Ebene wieder her."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:241
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"ServerTransactionRecoveryModule"
+msgstr ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"ServerTransactionRecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:242
+#, no-c-format
+msgid "Recovers JTS Server Transactions."
+msgstr "Stellt JTS-Servertransaktionen wieder her."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:248
+#, 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 ""
+"Um die Verhaltensweise eines Recovery-Moduls zu veranschaulichen, beschreibt "
+"der folgende Pseudo-Code den grundsätzlichen Algorithmus, der für "
+"AtomicAction-Transaktionen und transaktionale Objekte für Java verwendet "
+"wird."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:252
+#, no-c-format
+msgid "AtomicAction pseudo code"
+msgstr "Pseudo-Code für AtomicAction"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:253
+#, no-c-format
+msgid "First Pass:"
+msgstr "Erster Pass:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:257
+#, 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 ""
+"&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."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:258
+#: Architecture_of_the_Recovery_Manager.xml:267
+#, no-c-format
+msgid "Second Pass:"
+msgstr "Zweiter Pass:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:261
+#, 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 ""
+"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."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:263
+#, no-c-format
+msgid "Transactional Object pseudo code"
+msgstr "Pseudo-Code für transaktionale Objekte"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:264
+#, no-c-format
+msgid "First Pass"
+msgstr "Erster Pass:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:266
+#, 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 ""
+"&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."
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:270
+#, 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 ""
+"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."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:272
+#, no-c-format
+msgid "A Recovery Module for XA Resources"
+msgstr "Ein Recovery-Modul für XA-Ressourcen"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:273
+#, 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 ""
+"Im vorigen Kapitel haben wir gesehen, dass der Recovery-Manager zur "
+"Steuerung der Recovery einen Recovery-Prozess auslöst, indem er eine Reihe "
+"von Recovery-Modulen aufruft, welche die zwei Methoden implementieren, die "
+"durch die <interfacename>RecoveryModule</interfacename>-Schnittstelle "
+"definiert sind."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:277
+#, 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 ""
+"Um die Wiederherstellung von Teilnehmern zu ermöglichen, die via der "
+"<interfacename>XA</interfacename>-Schnittstelle kontrolliert werden, wird "
+"ein spezifisches Recovery-Modul namens XARecoveryModule bereitgestellt. Das "
+"in den Paketen <package>com.arjuna.ats.internal.jta.recovery.arjunacore</"
+"package> und <package>com.arjuna.ats.internal.jta.recovery.jts</package> "
+"definierte XARecoveryModule übernimmt die Recovery von den in JTA "
+"verwendeten <interfacename>XA</interfacename>-Ressourcen (z. B. Datenbanken)."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:281
+#, 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 ""
+"JBossTS unterstützt zwei JTA-Implementierungen: eine rein lokale Version "
+"(keine verteilten Transaktionen) und eine Version aufbauend auf dem JTS. "
+"Recovery für erstere ist unkompliziert. Für die folgenden Ausführungen soll "
+"implizit die JTS-Implementierung berücksichtigt werden."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:285
+#, 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 ""
+"Dessen Verhaltensweise besteht aus zwei Aspekten: "
+"<emphasis>transaktionsinitiierte</emphasis> und "
+"<emphasis>ressourceninitiierte</emphasis> Recovery. Transaktionsinitiierte "
+"Recovery ist dort möglich, wo ein bestimmter Transaktionszweig weit genug "
+"fortgeschritten war, so dass ein JTA-Ressourceneintrag in den Objektspeicher "
+"geschrieben werden konnte, wie in Abbildung 2 veranschaulicht."
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:292
+#, no-c-format
+msgid "JTA/JDBC information stored in the ObjectStore"
+msgstr "Im Objektspeicher abgelegte JTA/JDBC-Informationen"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:294
+#, 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 ""
+"Ein JTA-Ressourceneintrag enthält die nötigen Informationen zum Verbinden "
+"der Transaktion, wie dem Rest von JBossTS bekannt, mit der Datenbank. "
+"Ressourceninitiierte Recovery ist notwendig für Zweige, in denen der Fehler "
+"auftrat, nachdem die Datenbank einen persistenten Eintrag der Transaktion "
+"vorgenommen hat, aber bevor der JTA-Ressourceneintrag persistiert wurde. "
+"Ressourceninitiierte Recovery ist ebenfalls notwendig für Datenquellen, bei "
+"denen es nicht möglich ist, im JTA-Ressourceneintrag Informationen zu "
+"behalten, welche im Recovery-Manager die Wiederherstellung jener XA-"
+"Verbindung bzw. XA-Ressource ermöglicht, die in der ursprünglichen Anwendung "
+"verwendet wurde."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:298
+#, 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 ""
+"Beim Ausführen von XA-Recovery ist es nötig, JBossTS die Xid-Typen zu "
+"nennen, die er wiederherstellen kann. Jede von JBossTS erstellte Xid hat "
+"einen eindeutigen Knoten-Identifier in sich enkodiert, und JBossTS wird nur "
+"diejenigen Transaktionen und Zustände wiederherstellen, die auf einen "
+"spezifizierten Knoten-Identifier passen. Der zu verwendende Knoten-"
+"Identifier sollte JBossTS geliefert werden mittels einer Eigenschaft, die "
+"mit dem Namen <property>com.arjuna.ats.jta.xaRecoveryNode</property> "
+"beginnt; mehrere Werte können angegeben sein. Der Wert ‘*’ zwingt JBossTS "
+"zum Wiederherstellen (und möglicherweise Zurücksetzen) aller Transaktionen "
+"ungeachtet ihrer Knoten-Identifier, und sollte daher mit Vorsicht verwendet "
+"werden. Die Inhalte von <property>com.arjuna.ats.jta.xaRecoveryNode</"
+"property> sollten alphanumerisch sein und den Werten von <property>com."
+"arjuna.ats.arjuna.xa.nodeIdentifier</property> entsprechen."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:302
+#, 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 ""
+"Transaktionsinitiierte Recovery erfolgt automatisch. Das XARecoveryModule "
+"findet den JTA-Ressourceneintrag, der Recovery benötigt, und wendet dann "
+"normale Recovery-Verfahren an, um den Zustand der Transaktion zu finden, an "
+"der er beteiligt war (d. h. es ruft replay_completion auf am Recovery-"
+"Koordinator für den Transaktionszweig), stellt die entsprechende XA-"
+"Ressource (wieder) her, und veranlasst ein Festschreiben oder Zurücksetzen, "
+"je nachdem was angebracht ist. Die erstellte XAResource wird dieselben "
+"Informationen, Datenbankname, Benutzername, Passwort etc. verwenden, wie die "
+"ursprüngliche Anwendung."
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:309
+#, no-c-format
+msgid "Transaction-Initiated Recovery and XA Recovery"
+msgstr "Transaktionsinitiierte Recovery und XA-Recovery"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:311
+#, 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 ""
+"Ressourceninitiierte Recovery muss speziell konfiguriert werden, indem der "
+"Recovery-Manager mit entsprechenden Informationen ausgestattet wird, so dass "
+"dieser alle Datenbanken (XADataSouces) befragen kann, auf die von einer "
+"JBossTS-Anwendung zugegriffen wurde. Der Zugriff auf jede XADataSource wird "
+"gehandhabt durch eine Klasse, die die <interfacename>com.arjuna.ats.jta."
+"recovery.XAResourceRecovery</interfacename>-Schnittstelle implementiert, wie "
+"in Abbildung 4 dargestellt. Instanzen von Klassen, welche die "
+"XAResourceRecovery-Schnittstelle implementieren, werden dynamisch geladen – "
+"kontrolliert durch Eigenschaften, deren Namen mit <property>com.arjuna.ats."
+"jta.recovery.XAResourceRecovery</property> beginnen."
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:318
+#, no-c-format
+msgid "Resource-initiated recovery and XA Recovery"
+msgstr "Ressourceninitiierte Recovery und XA-Recovery"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:321
+#, 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 ""
+"JBossTS 3.3 <interfacename>XAConnectionRecovery</interfacename> wurde "
+"missbilligt zugunsten von <interfacename>XAResourceRecovery</interfacename>. "
+"Obwohl die alte Schnittstelle derzeit noch existiert, werden Benutzer dazu "
+"ermutigt, auf die neue Schnittstelle zu migrieren."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:325
+#, 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 ""
+"Das XARecoveryModule wird die XAResourceRecovery-Implementierung nutzen, um "
+"eine XA-Ressource zur Zieldatenquelle zu bekommen. Bei jedem Aufruf von "
+"periodicWorkSecondPass wird das Recovery-Modul eine XAResource.recover-"
+"Anfrage ausgeben – dies gibt (wie in den XA-Spezifikationen beschrieben) "
+"eine Liste derjenigen Transaktions-Identifier (Xids) zurück, die der "
+"Datenquelle bekannt sind und sich in einem unbestimmten (zweifelhaften) "
+"Zustand befinden. Die Listen dieser zweifelhaften Xids, erhalten bei "
+"aufeinanderfolgenden Pässen (d. h. periodicWorkSecondPass-es), werden "
+"verglichen. Jede Xid, die in beiden Listen erscheint und für die kein JTA-"
+"Ressourceneintrag von der eingreifenden transaktionsinitiierten Recovery "
+"gefunden werden kann, von der wird angenommen, dass sie zu einer Transaktion "
+"gehört, die an einem Crash beteiligt war, bevor ein JTA-Ressourceneintrag "
+"geschrieben wurde. Für diese Transaktion wird ein Zurücksetzen ausgegeben "
+"auf der XA-Ressource."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:328
+#, 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 ""
+"Dieses doppelte Scan-Verfahren wird angewendet, da es möglich ist, dass die "
+"Xid von der Datenquelle bezogen wurde, gerade als der ursprüngliche "
+"Anwendungsprozess im Begriff war, den entsprechenden JTA_ResourceRecord zu "
+"erstellen. Der Zeitraum zwischen den Scans müsste genügend Zeit lassen zum "
+"Schreiben dieses Eintrags, es sei denn, die Anwendung stürzt ab (wobei dann "
+"ein Zurücksetzen die richtige Maßnahme ist)."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:331
+#, 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 ""
+"Eine <classname>XAResourceRecovery</classname>-Implementierungsklasse kann "
+"geschrieben werden, die alle nötigen Informationen enthält zum Durchführen "
+"einer Recovery auf einer bestimmten Datenquelle. Alternativ kann eine "
+"einzelne Klasse mehrere Datenquellen handhaben. Der Konstruktor der "
+"Implementierungsklasse muss eine Liste leerer Parameter besitzen (da er "
+"dynamisch geladen wird), aber die Schnittstelle beinhaltet eine "
+"Initialisierungsmethode, welche weitere Informationen als String übergibt. "
+"Der Inhalt des Strings wird dem Eigenschaftswert entnommen, der den "
+"Klassennamen liefert: Alles nach dem ersten Semikolon wird als Wert des "
+"Strings übergeben. Die Verwendung dieses Strings ist festgelegt durch die "
+"<classname>XAResourceRecovery</classname>-Implementierungsklasse."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:334
+#, 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 ""
+"Für weitere Einzelheiten über das Vorgehen zur Implementierung einer Klasse, "
+"welche die Schnittstelle <interfacename>XAResourceRecovery</interfacename> "
+"implementiert, lesen Sie bitte das JDBC-Kapitel des JTA-Handbuchs für "
+"Programmierer. Eine Implementierungsklasse ist bereitgestellt, die "
+"ressourceninitiierte Recovery unterstützt für jedwede XADataSource. Diese "
+"Klasse könnten Sie als Vorlage nehmen, um Ihre eigene Implementierungsklasse "
+"zu bauen."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:338
+#, no-c-format
+msgid "Assumed complete"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:339
+#, no-c-format
+msgid ""
+"If a failure occurs in the transaction environment after the transaction "
+"coordinator had told the XAResource to commit but before the transaction log "
+"has been updated to remove the participant, then recovery will attempt to "
+"replay the commit. In the case of a Serialized XAResource, the response from "
+"the XAResource will enable the participant to be removed from the log, which "
+"will eventually be deleted when all participants have been committed. "
+"However, if the XAResource is not recoverable then it is extremely unlikely "
+"that any <interfacename>XAResourceRecovery</interfacename> instance will be "
+"able to provide the recovery sub-system with a fresh XAResource to use in "
+"order to attempt recovery; in which case recovery will continually fail and "
+"the log entry will never be removed."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:343
+#, no-c-format
+msgid "There are two possible solutions to this problem:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:348
+#, no-c-format
+msgid ""
+"Rely on the relevant ExpiryScanner to eventually move the log elsewhere. "
+"Manual intervention will then be needed to ensure the log can be safely "
+"deleted. If a log entry is moved, suitable warning messages will be output."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:353
+#, no-c-format
+msgid ""
+"Set <property>com.arjuna.ats.jta.xaAssumeRecoveryComplete</property> to "
+"true. This option is checked whenever a new XAResource instance cannot be "
+"located from any registered <interfacename>XAResourceRecovery</"
+"interfacename> instance. If false (the default), recovery assumes that there "
+"is a transient problem with the <interfacename>XAResourceRecovery</"
+"interfacename> instances (for example, not all have been registered with the "
+"sub-system) and will attempt recovery periodically. If true then recovery "
+"assumes that a previous commit attempt succeeded and this instance can be "
+"removed from the log with no further recovery attempts. This option is "
+"global, so needs to be used with care since if used incorrectly, XAResource "
+"instances may remain in an uncommitted state."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:359
+#, no-c-format
+msgid "Writing a Recovery Module"
+msgstr "Schreiben eines Recovery-Moduls"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:360
+#, 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 ""
+"Um nach einem Fehlerfall wiederherzustellen, kontaktiert der Recovery-"
+"Manager wie wir gesehen haben Recovery-Module, indem er periodisch die "
+"Methoden <methodname>periodicWorkFirstPass</methodname> und "
+"<methodname>periodicWorkSecondPass</methodname> aufruft. Jedes Recovery-"
+"Modul kann daraufhin die Recovery entsprechend des Ressourcentyps steuern, "
+"der wiederhergestellt werden muss. Das JBoss-Transaktionsprodukt wird mit "
+"einem Set von Recovery-Modulen ausgeliefert (TOReceveryModule, "
+"XARecoveryModule…), aber es ist dem Benutzer möglich, seine eigenen, auf "
+"seine Anwendung angepassten Recovery-Module zu definieren. Das folgende, "
+"einfache Beispiel veranschaulicht die nötigen Schritte, um ein solches "
+"Recovery-Modul zu bauen."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:363
+#, no-c-format
+msgid "A basic scenario"
+msgstr "Ein einfaches Szenario"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:364
+#, 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 ""
+"Dieses einfache Beispiel zielt nicht darauf ab, einen vollständigen Prozess "
+"der Failure Recovery zu zeigen, sondern hauptsächlich darauf darzustellen, "
+"auf welche Weise ein Recovery-Modul implementiert wird."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:366
+#, 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 ""
+"Die hier genutzte Anwendung erstellt eine Atomic Transaction, registriert "
+"einen Teilnehmer in der erstellten Transaktion, und beendet sie schließlich "
+"entweder durch Festschreiben oder Abbruch. Ein Set von Argumenten wird "
+"geliefert:"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:371
+#, no-c-format
+msgid "to decide to commit or abort the transaction,"
+msgstr "zum Entscheiden über Festschreiben oder Abbruch der Transaktion,"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:376
+#, no-c-format
+msgid "to decide generating a crash during the commitment process."
+msgstr ""
+"zum Entscheiden, während des Festschreibunsgprozesses einen Crash zu "
+"generieren."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:381
+#, no-c-format
+msgid "The code of the main class that control the application is given below"
+msgstr ""
+"Der Code der Hauptklasse, die die Anwendung kontrolliert, ist unten gezeigt."
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:384
+#, 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 ""
+"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"
+"}"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:385
+#, no-c-format
+msgid "The registered participant has the following behavior:"
+msgstr "Der registrierte Teilnehmer hat die folgenden Verhaltensweisen:"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:390
+#, 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 ""
+"Während der Vorbereitungsphase schreibt er eine einfache Nachricht – "
+"<emphasis>Ich bin vorbereitet</emphasis> – auf die Platte, wobei die "
+"Nachricht in eine \"well-known\" Datei geschrieben wird."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:395
+#, 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 ""
+"Während der Festschreibungsphase schreibt er eine weitere Nachricht – "
+"<emphasis>Ich bin festgeschrieben</emphasis> – in dieselbe Datei wie schon "
+"während der Vorbereitungsphase."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:400
+#, no-c-format
+msgid ""
+"If it receives an abort message, it removes from the disk the file used for "
+"prepare if any."
+msgstr ""
+"Falls er eine Abbruchnachricht empfängt, löscht er die bei der Vorbereitung "
+"verwendete Datei von der Platte, falls diese Datei existiert."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:405
+#, 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 ""
+"Falls für den Test ein Crash vorgesehen wurde, dann crasht er während "
+"während der Festschreibungsphase – die Datei verbleibt mit der <emphasis>Ich "
+"bin vorbereitet</emphasis>-Nachricht."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:410
+#, no-c-format
+msgid ""
+"The main portion of the code illustrating such behavior is described "
+"hereafter."
+msgstr ""
+"Der Hauptteil des Codes, der diese Verhaltensweisen illustriert, wird "
+"nachfolgend beschrieben."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:414
+#, fuzzy, no-c-format
+msgid ""
+"The location specified as the value for the variable <varname>filename</"
+"varname> can be altered."
+msgstr ""
+"Der Speicherort der Datei, der als Wert der Variablen <varname>filename</"
+"varname> spezifiziert ist, kann geändert werden."
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:418
+#, 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 ""
+"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"
+"}"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:419
+#, 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 ""
+"Die Rolle des Recovery-Moduls in einer solchen Anwendung besteht im Lesen "
+"des Inhalts der Datei, die verwendet wird zum Speichern des Zustands des "
+"Teilnehmers, im Feststellen des Zustands und Schreiben einer Nachricht, "
+"welche anzeigt, ob Maßnahmen zur Wiederherstellung nötig sind, oder nicht."
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:422
+#, 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 ""
+"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"
+"}"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:423
+#, 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 ""
+"Das Recovery-Modul sollte nun deployt werden, um vom Recovery-Manager "
+"aufgerufen zu werden. Dafür muss nur ein Eintrag in der "
+"<filename>RecoveryManager-properties.xml</filename> hinzugefügt werden, "
+"indem eine neue Eigenschaft wie folgt hinzugefügt wird:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:426
+#, 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 ""
+"&lt;property\n"
+"                 name=\"com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;"
+"i&gt;\"\n"
+"        value=\"com.arjuna.demo.recoverymodule.SimpleRecoveryModule\"/&gt;"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:427
+#, 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 ""
+"Wobei &lt;i&gt; die neue Elementnummer ist, die auf die letzte bereits in "
+"der Datei existierende folgt. Sobald der Recovery-Manager gestartet ist, "
+"wird er automatisch das hinzugefügte Recovery-Modul laden."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:431
+#, no-c-format
+msgid ""
+"The source of the code can be retrieved under the trailmap directory of the "
+"JBossTS installation."
+msgstr ""
+"Die Quelle des Codes kann abgefragt werden unter dem Trailmap-Verzeichnis "
+"der JBossTS-Installation."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:436
+#, no-c-format
+msgid "Another scenario"
+msgstr "Ein weiteres Szenario"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:437
+#, 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 ""
+"Wie bereits erwähnt, stellt die oben gezeigte, einfache Anwendung nicht den "
+"vollständigen Prozess der Recovery nach einem Fehlerfall dar, sondern wurde "
+"nur gezeigt, um das Bauen eines Recovery-Moduls zu beschreiben. Im Fall des "
+"OTS-Protokolls, lassen Sie uns betrachten, wie ein Recovery-Modul "
+"konfiguriert werden kann, das die Wiederherstellung von OTS-Ressourcen "
+"steuert."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:441
+#, 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 ""
+"Um die Recovery nach einem Fehlerfall zu steuern, haben die OTS-"
+"Spezifikationen ein Recovery-Protokoll definiert. Transaktionsteilnehmer in "
+"einem zweifelhaften Zustand können den Recovery-Koordinator nutzen, um den "
+"Zustand der Transaktion festzustellen. Abhängig von diesem "
+"Transaktionszustand können diese Teilnehmer die jeweils passende "
+"Entscheidung treffen, festzuschreiben oder zurückzusetzen. Die Anfrage an "
+"das Recovery-Koordinatorobjekt, den Zustand festzustellen, besteht in dem "
+"Aufruf der replay_completion-Operation auf dem Recovery-Koordinator."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:444
+#, 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 ""
+"Für jede OTS-Ressource in zweifelhaftem Zustand ist bekannt, welcher "
+"Recovery-Koordinator aufzurufen ist, um den Zustand der Transaktion "
+"festzustellen, an der die Ressource beteiligt ist – es ist der Recovery-"
+"Koordinator, der zurückgegeben wurde während des Prozesses der "
+"Ressourcenregistrierung. Solch einen RecoveryCoordinator pro Ressource "
+"abzufragen bedeutet, dass er zusätzlich zu anderen, die Ressource "
+"beschreibenden Informationen gespeichert wurde."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:447
+#, 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 ""
+"Ein Recovery-Modul zur Wiederherstellung von OTS-Ressourcen könnte die "
+"folgenden Verhaltensweisen besitzen. Wenn vom Recovery-Manager beim ersten "
+"Pass dazu aufgefordert, ruft es von der Platte die Liste der Ressourcen ab, "
+"die sich in zweifelhaftem Zustand befinden. Wenn sich die im ersten Pass "
+"abgerufenen Ressourcen während des zweiten Passes immer noch auf der Platte "
+"befinden, dann werden sie als Kandidaten für Recovery betrachtet. Aus diesem "
+"Grund fragt das Recovery-Modul für jeden Kandidaten dessen assoziierten "
+"RecoveryCoordinator ab und ruft die replay_completion-Operation auf "
+"entsprechend des Zustands der Transaktion. Abhängig vom zurückgegebenen "
+"Zustand werden angemessene Maßnahmen durchgeführt (z. B. die Ressource "
+"zurücksetzen, wenn der Zustand abgebrochen oder inaktiv lautet)."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:452
+#, no-c-format
+msgid "TransactionStatusConnectionManager"
+msgstr "TransactionStatusConnectionManager"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:453
+#, 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 ""
+"Das TransactionStatusConnectionManager-Objekt wird von den Recovery-Modulen "
+"verwendet, um den Zustand von Transaktionen abzufragen, und fungiert als "
+"Proxy für TransactionStatusManager-Objekte. Es bewahrt eine Tabelle mit "
+"TransactionStatusConnector-Objekten, von der jedes mit einem "
+"TransactionStatusManager-Objekt in einem Anwendungsprozess verbunden ist."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:456
+#, 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 ""
+"Der Transaktionszustand wird abgerufen mittels der getTransactionStatus-"
+"Methoden, welche eine Transaktions-Uid und, falls verfügbar, einen "
+"Transaktionstyp als Parameter nehmen. Das Prozess-Uid-Feld in den "
+"Transaktions-Uid-Parametern wird verwendet, um das Ziel-"
+"TransactionStatusManagerItem-Host/Port-Paar im Objektspeicher zu suchen. Das "
+"Host/Port-Paar wird benutzt, um eine TCP-Verbindung zum Ziel-"
+"TransactionStatusManager-Objekt herzustellen durch ein "
+"TransactionStatusConnector-Objekt. Der TransactionStatusConnector übergibt "
+"die Transaktions-Uid/den Transaktionstyp an den TransactionStatusManager, um "
+"den Zustand der Transaktion abzufragen."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:461
+#, no-c-format
+msgid "Expired Scanner Thread"
+msgstr "Scanner Thread für abgelaufene Posten"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:462
+#, 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 ""
+"Wenn der Recovery-Manager einen Scanner Thread für abgelaufene Posten "
+"initialisiert, wird ein ExpiryEntryMonitor erstellt, der verwendet wird zum "
+"Entfernen von schon länger toten Posten aus dem Objektspeicher. Eine Anzahl "
+"von Scanner-Modulen wird dynamisch geladen, die tote Posten eines bestimmten "
+"Typs entfernen."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:465
+#, no-c-format
+msgid ""
+"Scanner modules are loaded at initialisation and are specified as properties "
+"beginning with"
+msgstr ""
+"Scanner-Module werden bei Initialisierung geladen und spezifiziert als "
+"Eigenschaften beginnend mit"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:468
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScanner&lt;Scanner Name&gt;=&lt;Scanner "
+"Class&gt;"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.expiryScanner&lt;Scanner Name&gt;=&lt;Scanner "
+"Class&gt;"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:469
+#, 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 ""
+"Alle Scanner-Module werden periodisch vom ExpiryEntryMonitor-Thread "
+"aufgefordert, nach toten Posten zu scannen. Dieser Zeitraum wird eingestellt "
+"mit der Eigenschaft:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:472
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.expiryScanInterval"
+msgstr "com.arjuna.ats.arjuna.recovery.expiryScanInterval"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:473
+#, no-c-format
+msgid ""
+"All scanners inherit the same behaviour from the java interface "
+"<interfacename>ExpiryScanner</interfacename> as illustrated in diagram below:"
+msgstr ""
+"Alle Scanner erben dieselben Verhaltensweisen von der Java-Schnittstelle "
+"<interfacename>ExpiryScanner</interfacename>, wie im Diagramm unten "
+"dargestellt:"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:481
+#, 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 ""
+"Von dieser Schnittstelle wird eine Scan-Methode bereitgestellt und von allen "
+"Scanner-Methoden implementiert, dies ist die Methode, die vom Scanner Thread "
+"aufgerufen wird."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:484
+#, 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 ""
+"Der ExpiredTransactionStatusManagerScanner entfernt bereits länger tote "
+"TransactionStatusManagerItems aus dem Objektspeicher. Diese Posten "
+"verbleiben für eine gewisse Zeit im Objektspeicher, bevor sie gelöscht "
+"werden. Dieser Zeitraum wird eingestellt durch die Eigenschaft:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:487
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime"
+msgstr "com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:488
+#, no-c-format
+msgid "(default 12 hours)"
+msgstr "(Standard 12 Stunden)"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:493
+#, no-c-format
+msgid "Application Process"
+msgstr "Anwendungsprozess"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:494
+#, 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 ""
+"Dies repräsentiert das transaktionale Programm des Benutzers. Eine Tabelle "
+"lokaler Transaktionen (hash), die innerhalb des laufenden "
+"Anwendungsprozesses gepflegt wird, verfolgt den aktuellen Zustand aller von "
+"dem Anwendungsprozess erstellten Transaktionen. Der Recovery-Manager "
+"benötigt Zugriff auf die Transaktionstabellen, damit er feststellen kann, ob "
+"eine Transaktion noch fortschreitet, in welchem Fall keine Recovery erfolgt."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:497
+#, 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 ""
+"Auf die Transaktionstabellen wird mittels des TransactionStatusManager-"
+"Objekts zugegriffen. Bei Initialisierung des Anwendungsprogramms wird das "
+"Host/Port-Paar, das den TransactionStatusManager repräsentiert, in den '../"
+"Recovery/TransactionStatusManager’-Teil der Objektspeicherdateihierarchie "
+"geschrieben und durch die Uid des Anwendungsprozesses identifiziert."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:500
+#, 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 ""
+"Der Recovery-Manager verwendet das TransactionStatusConnectionManager-"
+"Objekt, um den Zustand einer Transaktion abzufragen, und ein "
+"TransactionStatusConnector-Objekt wird verwendet, um eine TCP-Verbindung zum "
+"TransactionStatusManager herzustellen."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:505
+#, no-c-format
+msgid "TransactionStatusManager"
+msgstr "TransactionStatusManager"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:506
+#, 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 ""
+"Dieses Objekt fungiert als eine Schnittstelle für den Recovery-Manager, um "
+"den Zustand von Transaktionen von laufenden HPTS-Anwendungsprozessen zu "
+"erhalten. Pro Anwendungsprozess wird ein TransactionStatusManager erstellt "
+"durch die Klasse com.arjuna.ats.arjuna.coordinator.InitAction. Derzeit wird "
+"eine TCP-Verbindung verwendet für die Kommunikation zwischen dem Recovery-"
+"Manager und dem TransactionStatusManager. Standardmäßig wird ein beliebiger, "
+"freier Port vom TransactionStatusManager benutzt, der Port kann jedoch auch "
+"festgelegt werden mithilfe der Eigenschaft:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:509
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort"
+msgstr "com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:510
+#, 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 ""
+"Bei Erstellung erhält der TransactionStatusManager einen Port, den er beim "
+"Host im Objektspeicher ablegt als ein TransactionStatusManagerItem. Ein "
+"Listener Thread wird gestartet, der auf eine Verbindungsanfrage von einem "
+"TransactionStatusConnector wartet. Wenn eine Verbindung hergestellt wird, "
+"wird ein Verbindungs-Thread erstellt, der einen Dienst "
+"(AtomicActionStatusService) ausführt, welcher eine Transaktions-Uid und "
+"einen Transaktionstyp (falls verfügbar) akzeptiert. Der Transaktionszustand "
+"wird von der Tabelle für lokale Transaktionen bezogen, und zurückgegeben an "
+"den TransactionStatusConnector."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:515
+#, no-c-format
+msgid "Object Store"
+msgstr "Objektspeicher"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:516
+#, 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 ""
+"Alle Objekte werden in einem Dateipfad abgelegt, der ihren geerbten Klassen "
+"entspricht. Demnach werden AtomicAction-Transaktionen im Dateipfad ../"
+"StateManager/BasicAction/AtomicAction abgelegt."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:519
+#, 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 ""
+"Alle Objekte werden mithilfe einer eindeutigen Identifier-Uid identifiziert. "
+"Einer ihrer Werte ist die Prozess-ID, in der das Objekt erstellt wurde. Der "
+"Recovery-Manager verwendet die Prozess-ID, um Elemente des "
+"Transaktionszustandmanagers zu lokalisieren, wenn er den originären "
+"Anwendungsprozess über den Transaktionszustand befragt."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:524
+#, no-c-format
+msgid "Stock free operation"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:525
+#, no-c-format
+msgid ""
+"The use of TCP/IP sockets for TransactionStatusManager and RecoveryManager "
+"provides for maximum flexibility in the deployment architecture. It is often "
+"desirable to run the RecoveryManager in a separate JVM from the Transaction "
+"manager(s) for increased reliability. In such deployments, TCP/IP provides "
+"for communication between the RecoveryManager and transaction manager(s), as "
+"detailed in the preceding sections. Specifically, each JVM hosting a "
+"TransactionManager will run a TransactionStatusManager listener, through "
+"which the RecoveryManager can contact it to determine if a transaction is "
+"still live or not. The RecoveryManager likewise listens on a socket, through "
+"which it can be contacted to perform recovery scans on demand. The presence "
+"of a recovery listener is also used as a safety check when starting a "
+"RecoveryManager, since at most one should be running for a given ObjectStore."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:528
+#, no-c-format
+msgid ""
+"There are some deployment scenarios in which there is only a single "
+"TransactionManager accessing the ObjectStore and the RecoveryManager is co-"
+"located in the same JVM. For such cases the use of TCP/IP sockets for "
+"communication introduces unnecessary runtime overhead. Additionally, if "
+"several such distinct processes are needed for e.g. replication or "
+"clustering, management of the TCP/IP port allocation can become unwieldy. "
+"Therefore it may be desirable to configure for socketless recovery operation."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:531
+#, no-c-format
+msgid ""
+"The property <property>com.arjuna.ats.arjuna.coordinator."
+"transactionStatusManagerEnable</property> can be set to a value of "
+"<literal>NO</literal> to disable the TransactionStatusManager for any given "
+"TransactionManager. Note that this must not be done if recovery runs in a "
+"separate process, as it may lead to incorrect recovery behavior in such "
+"cases. For an in-process recovery manager, the system will use direct access "
+"to the ActionStatusService instead."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:534
+#, no-c-format
+msgid ""
+"The property <property>com.arjuna.ats.arjuna.recovery.recoveryListener</"
+"property> can likewise be used to disable the TCP/IP socket listener used by "
+"the recovery manager. Care must be taken not to inadvertently start multiple "
+"recovery managers for the same ObjectStore, as this error, which may lead to "
+"significant crash recovery problems, cannot be automatically detected and "
+"prevented without the benefit of the socket listener."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/Author_Group.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,23 @@
+# translation of Preface.po to
+# Language de-DE translations for  package.
+#
+# Automatically generated, 2008.
+# Hedda Peters <hpeters at redhat.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2009-01-23 17:24+1000\n"
+"Last-Translator: Hedda Peters <hpeters at redhat.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: author
+#: Author_Group.xml:6
+#, fuzzy, no-c-format
+msgid "<firstname>Red Hat Documentation Group</firstname> <surname></surname>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/Book_Info.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,51 @@
+# translation of Preface.po to
+# Language de-DE translations for  package.
+#
+# Automatically generated, 2008.
+# Hedda Peters <hpeters at redhat.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2009-01-23 17:24+1000\n"
+"Last-Translator: Hedda Peters <hpeters at redhat.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Failure Recovery Guide"
+msgstr "JBoss Transactions Failure Recovery Handbuch"
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, fuzzy, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 5.0"
+msgstr "Für den Gebrauch mit JBoss Enterprise Application Platform 4.3"
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss "
+"Transactions Failure Recovery Guide"
+msgstr ""
+"Bei diesem Buch handelt es sich um die Enterprise Application Platform "
+"Ausgabe des JBossTransaktions-Failure-Recovery-Handbuchs"
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr "Logo"
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/How_JBossTS_managers_the_OTS_Recovery_Protocol.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/How_JBossTS_managers_the_OTS_Recovery_Protocol.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/How_JBossTS_managers_the_OTS_Recovery_Protocol.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,599 @@
+# translation of Preface.po to
+# Language de-DE translations for  package.
+#
+# Automatically generated, 2008.
+# Hedda Peters <hpeters at redhat.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2009-01-23 17:24+1000\n"
+"Last-Translator: Hedda Peters <hpeters at redhat.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:6
+#, no-c-format
+msgid "How JBossTS manages the OTS Recovery Protocol"
+msgstr "Wie JBossTS das OTS-Recovery-Protokoll steuert"
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:10
+#, no-c-format
+msgid "Recovery Protocol in OTS-Overview"
+msgstr "Recovery-Protokoll in OTS – ein Überblick"
+
+#. 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 ""
+"Um die Recovery nach einem Fehlerfall zu steuern, haben die OTS-"
+"Spezifikationen ein Recovery-Protokoll definiert. Transaktionsteilnehmer in "
+"einem zweifelhaften Zustand können den RecoveryCoordinator nutzen, um den "
+"Zustand der Transaktion festzustellen. Entsprechend dieses "
+"Transaktionszustands können diese Teilnehmer die passende Entscheidung "
+"treffen, festzuschreiben oder zurückzusetzen."
+
+#. 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 ""
+"Eine Referenz zu einem RecoveryCoordinator wird zurückgegeben als Ergebnis "
+"des erfolgreichen Aufrufs von register_resource auf dem Transaktions-"
+"Koordinator. Dieses Objekt, welches implizit mit einer einzelnen Ressource "
+"assoziiert ist, kann dazu verwendet werden, die Ressource durch die Recovery-"
+"Prozedur zu schicken, falls während der Transaktion ein Fehler auftritt."
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:21
+#, no-c-format
+msgid "Resource and RecoveryCoordinator relationship."
+msgstr "Beziehung zwischen Ressource und RecoveryCoordinator."
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:26
+#, no-c-format
+msgid "RecoveryCoordinator in JBossTS"
+msgstr "RecoveryCoordinator in JBossTS"
+
+#. 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 ""
+"Bei jeder Registrierung einer Ressource wird erwartet, dass ein "
+"RecoveryCoordinator-Objekt erstellt und an die Anwendung zurückgegeben wird, "
+"welche die register_resource-Operation aufgerufen hat. Hinter jedem CORBA-"
+"Objekt sollte eine Objektimplementierung oder ein Servant-Objekt stehen, in "
+"POA-Begriffen, das Operationen ausführt, die auf einem RecoveryCoordinator-"
+"Objekt erfolgen. Anstatt ein RecoveryCoordinator-Objekt mit seinem "
+"assoziierten Servant auf jeder register_resource zu erstellen, verbessert "
+"JBossTS die Performanz, indem es die Erstellung von Servants vermeidet und "
+"stattdessen auf ein Standard-RecoveryCoordinator-Objekt mit seinem "
+"assoziierten Standard-Servant setzt, um alle replay_completion-Aufrufe zu "
+"steuern."
+
+#. 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 ""
+"In den nächsten Abschnitten bieten wir zunächst einen Überblick über die "
+"\"Portable Object Adapter\"-Architektur, und beschreiben anschließend, wie "
+"diese Architektur benutzt werden kann zur Erstellung eines "
+"RecoveryCoordinators mit der oben erläuterten Optimierung."
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:34
+#, no-c-format
+msgid "Understanding POA"
+msgstr "Der POA"
+
+#. 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 ""
+"Im Wesentlichen ist der Portable Object Adapter, oder POA, ein Objekt, das "
+"eine Client-Anfrage abfängt und dasjenige Objekt identifiziert, welches die "
+"Client-Anfrage beantwortet. Das Objekt wird dann aufgerufen und die Antwort "
+"an den Client zurückgegeben."
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:43
+#, no-c-format
+msgid "Overview of the POA."
+msgstr "Überblick über den POA."
+
+#. 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 ""
+"Das Objekt, das die Client-Anfrage ausführt, wird als ein Servant "
+"bezeichnet, welcher die Implementierung des vom Client angefragten CORBA-"
+"Objekts bereitstellt. Ein Servant liefert die Implementierung für eine oder "
+"mehrere CORBA-Objektreferenzen. Um einen Servant abzufragen, pflegt jeder "
+"POA eine \"Active Object Map\", die alle Objekte enthält, die in dem POA "
+"aktiviert wurden zu einem Servant. Für alle eingehende Anfragen sucht der "
+"POA die Objektreferenz in der Active Object Map und versucht, den "
+"verantwortlichen Servant zu finden. Falls keiner gefunden wird, wird die "
+"Anfrage entweder an einen Standard-Servant delegiert, oder ein Servant-"
+"Manager wird aufgerufen, um einen passenden Servant zu aktivieren bzw. zu "
+"finden. Zusätzlich zum Namensraum für die Objekte, die durch Objekt-IDs "
+"identifiziert werden, stellt der POA auch einen Namensraum für POAs bereit. "
+"Ein POA wird als ein Child eines vorhandenen POAs erstellt, wodurch eine "
+"Hierarchie ausgehend vom Root-POA gebildet wird."
+
+#. 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 ""
+"Jeder POA hat ein Set von Richtlinien, die seine Charakteristiken "
+"definieren. Beim Erstellen eines neuen POAs kann das standardmäßige Set von "
+"Richtlinien verwendet werden, oder es können andere Werte zugewiesen werden, "
+"abgestimmt auf die Anforderungen der Anwendung. Die POA-Spezifikationen "
+"definieren:"
+
+#. 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 ""
+"<emphasis>Thread-Richtlinie</emphasis> (Thread policy): Spezifiziert das "
+"Threading-Modell, das vom POA verwendet wird. Mögliche Werte sind:"
+
+#. 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 ""
+"ORB_CTRL_MODEL (Standard): Der POA ist verantwortlich für das Zuweisen von "
+"Anfragen zu Threads."
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:63
+#, no-c-format
+msgid "SINGLE_THREAD_MODEL: The POA processes requests sequentially"
+msgstr "SINGLE_THREAD_MODEL: Der POA arbeitet Anfragen der Reihe nach ab."
+
+#. 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 ""
+"<emphasis>Richtlinie zur Lebenszeit</emphasis> (Lifespan policy): "
+"Spezifiziert die Lebenszeit der im POA implementierten Objekte. Die "
+"Richtline zur Lebenszeit kann folgende Werte annehmen:"
+
+#. 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 ""
+"TRANSIENT (Standard): Im POA implementierte Objekte können nicht länger "
+"leben als der Prozess, in dem sie erstellt wurden. Sobald der POA "
+"deaktiviert ist, wird eine OBJECT_NOT_EXIST-Ausnahme ausgegeben, wenn "
+"versucht wird, jegliche vom POA generierte Objektreferenz zu verwenden."
+
+#. 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 ""
+"PERSISTENT: Im POA implementierte Objekte können länger leben als der der "
+"Prozess, in dem sie erstellt wurden."
+
+#. 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 ""
+"Richtlinie zur Eindeutigkeit der Objekt-ID (Object ID Uniqueness policy): "
+"Erlaubt die gemeinsame Verwendung eines einzelnen Servants durch viele "
+"abstrakte Objekte. Die Richtlinie zur Eindeutigkeit der Objekt-ID kann "
+"folgende Werte haben:"
+
+#. 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 ""
+"UNIQUE_ID (Standard): Aktivierte Servants unterstützen nur eine Objekt-ID."
+
+#. 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 ""
+"MULTIPLE_ID: Aktivierte Servants können eine oder mehrere Objekt-IDs "
+"besitzen. Die Objekt-ID muss bestimmt werden in der Methode, die zur "
+"Laufzeit aufgerufen wird."
+
+#. 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 ""
+"Richtlinie zur ID-Zuweisung (ID Assignment policy): Spezifiziert, ob Objekt-"
+"IDs von Serveranwendungen oder vom POA generiert werden. Die Richtlinie zur "
+"ID-Zuweisung kann folgende Werte annehmen:"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:109
+#, no-c-format
+msgid "USER_ID is for persistent objects, and"
+msgstr "USER_ID ist für persistente Objekte, und"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:114
+#, no-c-format
+msgid "SYSTEM_ID is for transient objects."
+msgstr "SYSTEM_ID ist für transiente Objekte."
+
+#. 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 ""
+"Richtlinie zur Erhaltung von Servants (Servant Retention policy): "
+"Spezifiziert, ob der POA aktive Servants in der Active Object Map bewahrt. "
+"Die Richtlinie zur Erhaltung von Servants kann folgende Werte haben:"
+
+#. 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 ""
+"RETAIN (Standard): Der POA verfolgt die Aktivierung von Objekten in der "
+"Acitve Object Map nach. RETAIN wird in der Regel angewendet mit "
+"ServantActivators oder expliziten Aktivierungsmethoden auf POA."
+
+#. 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 ""
+"NON_RETAIN: Der POA behält aktive Servants nicht in der Active Object Map. "
+"NON_RETAIN wird in der Regel angewendet mit ServantLocators."
+
+#. 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 ""
+"Richtlinie zur Anfrageverarbeitung (Request Processing policy): Spezifiziert "
+"die Art, wie Anfragen vom POA verarbeitet werden."
+
+#. 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 ""
+"USE_ACTIVE_OBJECT_MAP (Standard): Falls die Objekt-ID nicht in der Active "
+"Object Map verzeichnet ist, wird eine OBJECT_NOT_EXIST-Ausnahme "
+"zurückgegeben. Der POA muss mit diesem Wert auch die RETAIN-Richtlinie "
+"verwenden."
+
+#. 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 ""
+"USE_DEFAULT_SERVANT: Falls die Objekt-ID nicht in der Active Object Map "
+"verzeichnet ist oder die NON_RETAIN-Richtlinie gesetzt ist, wird die Anfrage "
+"an den Standard-Servant gegeben. Wenn kein Standard-Servant registriert "
+"wurde, wird eine OBJ_ADAPTER-Ausnahme zurückgegeben. Der POA muss mit diesem "
+"Wert auch die MULTIPLE_ID-Richtlinie verwenden."
+
+#. 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 ""
+"USE_SERVANT_MANAGER: Falls die Objekt-ID nicht in der Active Object Map "
+"verzeichnet ist oder die NON_RETAIN-Richtlinie gesetzt ist, wird mittels des "
+"Servant-Managers ein Servant bezogen."
+
+#. 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 ""
+"Richtlinie zur impliziten Aktivierung (Implicit Activation policy): "
+"Spezifiziert, ob der POA implizite Aktivierung von Servants unterstützt. Die "
+"Richtlinie zur impliziten Aktivierung kann folgende Werte haben:"
+
+#. 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 ""
+"IMPLICIT_ACTIVATION: Der POA unterstützt implizite Aktivierung von Servants. "
+"Servants können aktiviert werden, indem sie in eine Objektreferenz "
+"konvertiert werden mit <methodname>org.omg.PortableServer.POA."
+"servant_to_reference()</methodname>, oder durch Aufruf von <methodname>_this"
+"()</methodname> auf dem Servant. Der POA muss mit diesem Wert auch die "
+"SYSTEM_ID- und RETAIN-Richtlinien verwenden."
+
+#. 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 ""
+"NO_IMPLICIT_ACTIVATION (Standard): Der POA unterstützt keine implizite "
+"Aktivierung von Servants."
+
+#. 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. JBossTS provides one servant "
+"per machine to perform replay_completion invocations. This servant is "
+"located in the RecoveryManager process. The RecoveryManager process is a "
+"separate process from the client and 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 ""
+"Um replay_completion-Aufrufe umzuleiten an Standard-Servants, müssen wir "
+"anscheinend einen POA erstellen mit zugewiesener Richtlinie zur "
+"Anfrageverarbeitung, deren Wert auf USE_DEFAULT_SERVANT gesetzt ist. Um "
+"jedoch den Standard-Servant zu erreichen, müssen wir zunächst den POA "
+"erreichen, der die Anfrage an den Standard-Servant weiterleitet. Tatsächlich "
+"nutzt der ORB eine Reihe von Informationen, um einen POA abzufragen; diese "
+"Informationen sind in der vom Client verwendeten Objektreferenz enthalten. "
+"Unter diesen Informationen ist die IP-Adresse und die Port-Nummer, wo sich "
+"der Server befindet, sowie der POA-Name. JBossJTA stellt pro Maschine einen "
+"Servant bereit, um replay_completion-Aufrufe auszuführen. Dieser Servant "
+"befindet sich im Recovery-Managerprozess. Der Recovery-Managerprozess ist "
+"ein von den Client- und Serveranwendungen separater Prozess. Der nächste "
+"Abschnitt erläutert, wie die Umleitung an einen Standard-Servant, der auf "
+"einem separaten Prozess liegt, für ORBIX und für JacORB bereitgestellt wird."
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:282
+#, no-c-format
+msgid "The default RecoveryCoordinator in JacOrb"
+msgstr "Der Standard-RecoveryCoordinator in JacOrb"
+
+#. 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 ""
+"JacORB definiert keine zusätzlichen Richtlinien zum Umleiten von Anfragen an "
+"ein RecoveryCoordinator-Objekt hin zu einem Standard-Servant, der sich in "
+"dem Recovery-Managerprozess befindet. Allerdings stellt es ein Set von APIs "
+"zur Verfügung, die das Bauen von Objektreferenzen mit spezifischen IP-"
+"Adressen, Port-Nummer und POA-Namen erlauben, um den passenden Standard-"
+"Servant zu erreichen."
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:287
+#, no-c-format
+msgid "How it works"
+msgstr "Funktionsweise"
+
+#. 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 ""
+"Wenn der Recovery-Manager gestartet wird, sucht er in der Konfiguration den "
+"RecoveryActivator, der geladen werden muss. Anschließend ruft er die "
+"<methodname>startRCservice</methodname>-Methode auf jeder geladenen Instanz "
+"auf. Wie im vorhergehenden Kapitel (Recovery-Manager) gesehen, handelt es "
+"sich bei der zu ladenden Klasse, die die <interfacename>RecoveryActivator</"
+"interfacename>-Schnittstelle implementiert, um die "
+"<classname>RecoveryEnablement</classname>-Klasse. Diese generische Klasse, "
+"die sich im Paket <package>com.arjuna.ats.internal.jts.orbspecific.recovery</"
+"package> befindet, verbirgt das Wesen des von der Anwendung genutzten ORBs "
+"(JacORB). Die folgende Abbildung veranschaulicht die Verhaltensweisen des "
+"<interfacename>RecoveryActivator</interfacename>, welche zur Erstellung "
+"eines Standard-Servants führen, der alle replay_invocation-Aufrufe ausführt."
+
+#. 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 ""
+"Zusätzlich zur Erstellung des Standard-Servants wird ein "
+"<code>RecoveryCoordinator</code>-Objekt erstellt und im Objektspeicher "
+"abgelegt. Wie wir sehen werden, wird diese Objektreferenz verwendet, um die "
+"IP-Adresse, Port-Nummer und POA-Name zu beziehen und sie jeder "
+"<code>RecoveryCoordinator</code>-Objektreferenz zuzuweisen, die auf "
+"register_ressource erstellt wurde."
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:299
+#, no-c-format
+msgid ""
+"replay_completion invocation forwarded to the default RecoveryCoordinator."
+msgstr ""
+"An den Standard-RecoveryCoordinator weitergeleiteter replay_completion-"
+"Aufruf."
+
+#. 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 ""
+"Wenn eine Anwendung eine Ressource bei einer Transaktion registriert, wird "
+"die Rückgabe einer <code>RecoveryCoordinator</code>-Objektreferenz erwartet. "
+"Für den Bau dieser Objektreferenz benutzt der Transaktionsdienst die "
+"RecoveryCoordinator-Objektreferenz, die im Recovery-Manager erstellt wurde, "
+"als Vorlage. Die neue Objektreferenz enthält praktisch dieselben "
+"Informationen, um den Standard-Servant abzurufen (IP-Adresse, Port-Nummer, "
+"POA-Name, etc.), aber die Objekt-ID ist anders; sie enthält nun die "
+"Transaktions-ID der laufenden Transaktion sowie die Prozess-ID des "
+"Prozesses, der die neue <code>RecoveryCoordinator</code>-Objektreferenz "
+"erstellt, wie unten veranschaulicht."
+
+#. 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 ""
+"Registrierung von Ressourcen und zurückgegebene RecoveryCoordinator-"
+"Objektreferenz, gebaut von einer im Objektspeicher gespeicherten Referenz."
+
+#. 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 ""
+"Da die an die Anwendung zurückgegebene <code>RecoveryCoordinator</code>-"
+"Objektreferenz sämtliche Informationen enthält zur Abfrage des POA und dann "
+"des Standard-Servants im Recovery-Manager, werden alle replay_completion-"
+"Anfragen, pro Maschine, weitergeleitet zu demselben Standard-"
+"<code>RecoveryCoordinator</code>, der die Objekt-ID von eingehenden Aufrufen "
+"abfragen kann, um die Transaktions-Identifier und den Prozess-Identifier zu "
+"entnehmen, die nötig sind, um den Zustand der angefragten Transaktion zu "
+"bestimmen."

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/JBoss_Transactions_Failure_Recovery_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/JBoss_Transactions_Failure_Recovery_Guide_CP06.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/Preface.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,23 @@
+# translation of Preface.po to
+# Language de-DE translations for  package.
+#
+# Automatically generated, 2008.
+# Hedda Peters <hpeters at redhat.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2009-01-23 17:24+1000\n"
+"Last-Translator: Hedda Peters <hpeters at redhat.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr "Vorwort"

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/de-DE/Revision_History.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,29 @@
+# translation of Preface.po to
+# Language de-DE translations for  package.
+#
+# Automatically generated, 2008.
+# Hedda Peters <hpeters at redhat.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2009-01-23 17:24+1000\n"
+"Last-Translator: Hedda Peters <hpeters at redhat.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr "Versionsgeschichte"
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/Architecture_of_the_Recovery_Manager.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/Architecture_of_the_Recovery_Manager.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/Architecture_of_the_Recovery_Manager.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,2263 @@
+# translation of Preface.po to
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2009-01-30 12:13+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:6
+#, no-c-format
+msgid "Architecture of the Recovery Manager"
+msgstr "Arquitectura del administrador de recuperaciones"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:8
+#, no-c-format
+msgid "Crash Recovery Overview"
+msgstr "Sinopsis de la recuperación en caso de fallos"
+
+#. 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 ""
+"Los principales componentes arquitectónicos dentro de la recuperación en "
+"caso de fallos se ilustran a continuación:"
+
+#. 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 ""
+"El administrador de recuperaciones es un proceso demonio responsable de "
+"realizar la recuperación en caso de fallos. Solo un administrador de "
+"recuperaciones ejecuta por nodo. El almacenamiento de objetos proporciona "
+"almacenamiento de datos persistentes para transacciones para registrar "
+"datos. Durante el procesamiento normal de transacciones, cada transacción "
+"registrará datos persistentes que se necesitan para la fase commit en el "
+"almacenamiento de objetos. Si se guarda la transacción con éxito entonces "
+"los datos se eliminan, sin embargo, si la transacción falla entonces estos "
+"datos permanecen dentro del almacenamiento de objetos. "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:20
+#, no-c-format
+msgid "The Recovery Manager functions by:"
+msgstr "El administrador de recuperaciones funciona: "
+
+#. 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 ""
+"Escaneando periódicamente el almacenamiento de objetos para transacciones "
+"que pueden haber fallado. Las transacciones fallidas se indican con la "
+"presencia de datos de registro después de un periodo de tiempo en que se "
+"hubiera esperado que la transacción finalizara."
+
+#. 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 ""
+"Verificando con el proceso aplicación que originó la transacción ya sea que "
+"la transacción todavía esté en progreso o no. "
+
+#. 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 ""
+"Recuperando la transacción al re-activar la transacción y luego repitiendo "
+"la fase dos del protocolo para guardar los cambios. "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:40
+#, no-c-format
+msgid ""
+"The following sections describe the architectural components in more detail"
+msgstr ""
+"Las siguientes secciones describen los componentes arquitectónicos en más "
+"detalle"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:46
+#, no-c-format
+msgid "Recovery Manager"
+msgstr "Administrador de recuperaciones"
+
+#. 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 ""
+"Durante la inicialización el administrador de recuperaciones primero carga "
+"la información de configuración por medio de un archivo de propiedades. Esta "
+"configuración incluye un número de activadores y módulos de recuperación, "
+"los cuales luego se cargan dinámicamente. "
+
+#. 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 ""
+"Desde la versión 3.0 de JBossTS, el administrador de recuperación no está "
+"sujeto especificamente a un Object Request Broker o ORB. Por lo tanto, el "
+"protocolo de recuperación OTS no se habilita implícitamente. Para habilitar "
+"tal protocolo, utilizamos el concepto de activador de recuperaciones, "
+"definido con la interfaz <interfacename>RecoveryActivator</interfacename>, "
+"la cual se utiliza para instanciar una clase de recuperación relacionada con "
+"el protocolo de comunicación subyacente. Por ejemplo, cuando se utiliza con "
+"OTS, el <interfacename>RecoveryActivitor</interfacename> tiene la "
+"responsabilidad de crear un objeto RecoveryCoordinator que pueda responder a "
+"la operación replay_completion."
+
+#. 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 ""
+"Todas las instancias <interfacename>RecoveryActivator</interfacename> "
+"heredan las misma interfaz. Se cargan por medio de la siguiente propiedad de "
+"extensión de recuperación:"
+
+#. 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 ""
+"&lt;property  \n"
+"                   name=\"com.arjuna.ats.arjuna.recovery."
+"recoveryActivator_&lt;number&gt;\" value=\"RecoveryClass\" /&gt;"
+
+#. 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 ""
+"Por ejemplo el <interfacename>RecoveryActivator</interfacename> "
+"proporcionado en la distribución de JTS/OTS, la cual no vamos a comentar, es "
+"la siguiente:"
+
+#. 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 ""
+"&lt;property \n"
+"        name=\"com.arjuna.ats.arjuna.recovery.recoveryActivator_1\" value="
+"\"com.arjuna.ats.internal.jts.orbspecific.recovery.RecoveryEnablement/&gt;"
+
+#. 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 ""
+"Cuando se cargan todas las instancias <interfacename>RecoveryActivator</"
+"interfacename> dado el método <methodname>startRCservice</methodname> "
+"invocado por el administrador de recuperaciones y utilizado para crear el "
+"componente de recuperación apropiado para poder recibir peticiones de "
+"recuperación de acuerdo con un protocolo de transacción en particular. Por "
+"ejemplo el RecoveryCoordinator definido por el protocolo OTS."
+
+#. 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 ""
+"Cada módulo de recuperación se utiliza para recuperar un tipo diferente de "
+"transacción/recurso, sin embargo, cada módulo de recuperación hereda el "
+"mismo comportamiento básico. "
+
+#. 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 ""
+"La recuperación consiste de dos pases/fases separadas por dos periodos de "
+"tiempo de expiración. El primer pase examina el almacenamiento de objetos "
+"para transacciones que potencialmente fallaron; el segundo pase realiza la "
+"recuperación de fallos en transacciones que fallaron. El tiempo de espera "
+"entre el primer y el segundo pase se conoce como el periodo de espera "
+"(backoff). El tiempo de espera entre el final del segundo pase y el inicio "
+"del primer pase es el periodo de recuperación. El periodo de recuperación es "
+"más largo que el periodo de espera. "
+
+#. 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 ""
+"El administrador de recuperación invoca el primer pase en cada módulo de "
+"recuperación, aplica el periodo de espera, invoca el segundo pase en cada "
+"módulo de recuperación y finalmente aplica el tiempo de espera del periodo "
+"de recuperación antes de reiniciar el primer pase de nuevo. "
+
+#. 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 ""
+"Los módulos de recuperación se cargan por medio de la siguiente propiedad de "
+"extensión de recuperación: "
+
+#. 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 ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;number&gt;=&lt;"
+"RecoveryClass&gt;"
+
+#. 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 ""
+"El periodo de espera y de recuperación se configuran utilizando las "
+"siguientes propiedades: "
+
+#. 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 ""
+"com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod        (default 10 "
+"secs)\n"
+"com.arjuna.ats.arjuna.recovery.periodicRecovery                (default 120 "
+"secs)"
+
+#. 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 ""
+"Las siguientes clases java se utilizan para implementar el administrador de "
+"recuperación:"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:86
+#, no-c-format
+msgid "package <package>com.arjuna.ats.arjuna.recovery</package>:"
+msgstr "paquete <package>com.arjuna.ats.arjuna.recovery</package>:"
+
+#. 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 ""
+"RecoveryManager: El proceso demonio que inicia al instanciar una instancia "
+"de la clase RecoveryManagerImple."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:96
+#, no-c-format
+msgid "RecoveryEnvironment: Properties used by the recovery manager."
+msgstr ""
+"RecoveryEnvironment: Las propiedades utilizadas por el administrador de "
+"recuperación."
+
+#. 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 ""
+"RecoveryConfiguration: Especifica el nombre del archivo de propiedades del "
+"administrador de recuperación, (por ejemplo, RecoveryManager-properties.xml)"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:108
+#, no-c-format
+msgid "package <package>com.arjuna.ats.internal.ts.arjuna.recovery</package>:"
+msgstr "paquete <package>com.arjuna.ats.internal.ts.arjuna.recovery</package>:"
+
+#. 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 ""
+"RecoveryManagerImple: Crea e inicia instancias del RecActivatorLoader, el "
+"hilo PeriodicRecovery y el hilo ExpiryEntryMonitor."
+
+#. 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 ""
+"RecActivatorLoader: Carga de manera dinámica en el RecoveryActivator "
+"especificado en el archivo de propiedades del administrador de "
+"recuperaciones. Cada RecoveryActicator se especifica como una extensión de "
+"recuperación en el archivo de propiedades."
+
+#. 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 ""
+"PeriodicRecovery: Hilo el cual carga cada módulo de recuperación, luego "
+"llama al primer método pass para cada módulo, aplica el periodo de espera, "
+"llama al segundo método pass para cada módulo y aplica el periodo de "
+"recuperación."
+
+#. 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 ""
+"RecoveryClassLoader: Carga dinámicamente los módulos de recuperación "
+"especificados en el archivo de propiedades del administrador de "
+"recuperaciones. Cada  módulo se especifica como una extensión de "
+"recuperación en el archivo de propiedades (por ejemplo, com.arjuna.ats."
+"arjuna.recovery.recoveryExtension1= com.arjuna.ats.internal.ts.arjuna."
+"recovery.AtomicActionRecoveryModule)."
+
+#. 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 ""
+"Por defecto, el administrador de recuperaciones escucha en el primer puerto "
+"disponible en una máquina dada. Si desea controlar el número de puerto que "
+"utiliza, puede especificar esto utilizando el atributo com.arjuna.ats.arjuna."
+"recovery.recoveryPort. "
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:141
+#, no-c-format
+msgid "Embedding the Recovery Manager"
+msgstr "Incluir el administrador de recuperaciones"
+
+#. 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 ""
+"En algunas situaciones se puede requerir el que se incluya el "
+"RecoveryManager en el mismo proceso que el servicio de transacciones. En "
+"este caso puede crear una instancia del RecoveryManager por medio del método "
+"administrador en com.arjuna.ats.arjuna.recovery.RecoveryManager. Se puede "
+"crear un RecoveryManager en uno de los dos modos, seleccionados por medio "
+"del parámetro al método administrador: "
+
+#. 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 ""
+"INDIRECT_MANAGEMENT: el administrador ejecuta periódicamente pero también se "
+"le puede ordenar que ejecute cuando se desee por medio de la operación de "
+"escaneo o por medio de la clase RecoveryDriver que vamos a describir a "
+"continuación."
+
+#. 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 ""
+"DIRECT_MANAGEMENT: el administrador no ejecuta periódicamente y debe ser "
+"dirigido directamente por medio de la operación de escaneo o el "
+"RecoveryDriver."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:159
+#, no-c-format
+msgid "Managing recovery directly"
+msgstr "Administración directa de recuperación"
+
+#. 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 ""
+"Como ya lo mencionamos, la recuperación usualmente tiene lugar en intervalos "
+"peródicos. Si requiere el dirigir la recuperación de manera directa entonces "
+"hay dos opciones, dependiendo de la manera en que se creó el "
+"RecoveryManager. "
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:165
+#, no-c-format
+msgid "Seperate Recovery Manager"
+msgstr "Administrador de recuperaciones separado"
+
+#. 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 ""
+"Puede utilizar el programa com.arjuna.ats.arjuna.tools.RecoveryMonitor para "
+"enviar un mensaje al administrador de recuperaciones ordenándole que realice "
+"la recuperación o puede crear una instancia de la clase com.arjuna.ats."
+"arjuna.recovery.RecoveryDriver. Hay dos tipos disponibles de escaneo de "
+"recuperación: "
+
+#. 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 ""
+"ASYNC_SCAN: aquí se envía un mensaje al RecoveryManager para ordenarles que "
+"realice la recuperación, pero la respuesta retorna antes de que la "
+"recuperación se haya completado."
+
+#. 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 ""
+"SYNC: aquí se envía un mensaje al RecoveryManager para ordenarle que realice "
+"la recuperación y la respuesta solo tiene lugar cuando la recuperación se ha "
+"completado."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:183
+#, no-c-format
+msgid "In process Recovery Manager"
+msgstr "Administrador de recuperaciones en proceso"
+
+#. 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 ""
+"Puede invocar la operación de escaneo en el RecoveryManager. Esta operación "
+"sólo retorna cuando se ha completado la recuperación. Sin embargo, si desea "
+"tener un patrón de interacción asincrónico entonces se proporciona la "
+"interfaz RecoveryScan: "
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:188
+#, no-c-format
+msgid ""
+"public interface RecoveryScan\n"
+"{\n"
+"        public void completed ();\n"
+"}"
+msgstr ""
+"public interface RecoveryScan\n"
+"{\n"
+"        public void completed ();\n"
+"}"
+
+#. 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 ""
+"Una instancia de un objeto soportando esta interfaz se puede pasar a la "
+"operación de escaneo y su método completed será llamado cuando la "
+"recuperación termine. Sin embargo, la operación de escaneo retorna de manera "
+"inmediata. "
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:195
+#, no-c-format
+msgid "Recovery Modules"
+msgstr "Módulos de recuperación"
+
+#. 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 ""
+"Como lo mencionamos anteriormente cada módulo de recuperación se utiliza "
+"para recuperar un tipo diferente de transacción/recurso, pero cada módulo de "
+"recuperación debe implementar la siguiente interfaz RecoveryModule, la cual "
+"define dos métodos: <methodname>periodicWorkFirstPass</methodname> y "
+"<methodname>periodicWorkSecondPass</methodname> invocados por el "
+"administrador de recuperaciones. "
+
+#. 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 ""
+"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"
+"}"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:201
+#, no-c-format
+msgid "JBossTS Recovery Module Classes"
+msgstr "Clases de módulos de recuperación JBossTS"
+
+#. 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 ""
+"JBossTS proporciona un grupo de módulos de recuperación que son responsables "
+"de administrar la recuperación de acuerdo con la naturaleza del participante "
+"y su posición en un árbol transaccional. Las clases proporcionadas (que "
+"todas implementan la interfaz <interfacename>RecoveryModule</interfacename>) "
+"son:"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:209
+#, no-c-format
+msgid "com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"
+msgstr "com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:210
+#, no-c-format
+msgid "Recovers AtomicAction transactions."
+msgstr "Recupera transacciones AtomicAction. "
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:217
+#, no-c-format
+msgid "com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"
+msgstr "com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:218
+#, no-c-format
+msgid "Recovers Transactional Objects for Java."
+msgstr "Recupera objetos transaccionales para Java."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:225
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions.TransactionRecoveryModule"
+msgstr ""
+"com.arjuna.ats.internal.jts.recovery.transactions.TransactionRecoveryModule"
+
+#. 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 ""
+"Recupera transacciones JTS. Esta es una clase genérica de la cual heredan "
+"los módulos de recuperación de transacciones TopLevel y Server."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:233
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"TopLevelTransactionRecoveryModule"
+msgstr ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"TopLevelTransactionRecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:234
+#, no-c-format
+msgid "Recovers JTS Toplevel Transactions."
+msgstr "Recupera transacciones JTS Toplevel. "
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:241
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"ServerTransactionRecoveryModule"
+msgstr ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"ServerTransactionRecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:242
+#, no-c-format
+msgid "Recovers JTS Server Transactions."
+msgstr "Recupera transacciones JTS Server. "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:248
+#, 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 ""
+"Para ilustrar el comportamiento de un módulo de recuperación, el siguiente "
+"pseudo código describe el algorimo básico utilizado para transacciones de "
+"acción atómica y objetos transaccionales para Java. "
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:252
+#, no-c-format
+msgid "AtomicAction pseudo code"
+msgstr "Pseudo código AtomicAction "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:253
+#, no-c-format
+msgid "First Pass:"
+msgstr "Primer pase:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:257
+#, 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 ""
+"&lt; crear un vector transacción para Uids de transacción. &gt;\n"
+"&lt; leer todas las transacciones para un tipo de transacción AtomicAction. "
+"&gt;\n"
+"while &lt; hay transacciones en el vector de transacciones. &gt;\n"
+"do\n"
+"        &lt; añada la transacción al vector de transacciones. &gt;\n"
+"end while."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:258
+#: Architecture_of_the_Recovery_Manager.xml:267
+#, no-c-format
+msgid "Second Pass:"
+msgstr "Segundo pase: "
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:261
+#, 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 ""
+"while &lt; hay transacciones en el vector de transacciones &gt;\n"
+"do\n"
+"        if &lt; la lista de intenciones para la transacción todavía existe "
+"&gt;\n"
+"        then\n"
+"                &lt; cree un nuevo item en caché de transacción &gt;\n"
+"                &lt; obtenga el estatus de la transacción &gt;\n"
+"                                        \n"
+"                if         &lt; la transacción no está en progreso &gt;\n"
+"                then\n"
+"                        &lt; repita la fase dos del protocolo commit &gt;\n"
+"                endif.\n"
+"        endif.\n"
+"end while."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:263
+#, no-c-format
+msgid "Transactional Object pseudo code"
+msgstr "Pseudo código de objetos transaccionales"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:264
+#, no-c-format
+msgid "First Pass"
+msgstr "Primer pase"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:266
+#, 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 ""
+"&lt; Crear una tabla hash para objetos transaccionales que todavía no han "
+"guardado los cambios. &gt;\n"
+"&lt; Lea todos los objetos transaccionales dentro del almacenamiento de "
+"objetos. &gt;\n"
+"while &lt; hay objetos transaccionales &gt;\n"
+"do\n"
+"        if         &lt; el objeto transaccional tiene un estatus en el que "
+"no ha guardado los cambios en el almacenamiento de objetos &gt;\n"
+"        then\n"
+"                &lt; añada el objeto transaccional o la tabla hash para "
+"objetos transaccionales que no han guardado los cambios &gt;\n"
+"        end if.\n"
+"end while."
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:270
+#, 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 ""
+"while &lt; hay transacciones en la tabla hash para objetos transaccionales "
+"que no han guardado los cambios &gt;\n"
+"do\n"
+"        if &lt; la transacción todavía está en estado Uncommitted &gt;\n"
+"        then\n"
+"                if &lt; la transacción no está en el caché de transacciones "
+"&gt;\n"
+"                then\n"
+"                        &lt; chequee el estatus de la transacción con el "
+"proceso de aplicación original &gt;\n"
+"                        if &lt; el estatus se deshace o el proceso de "
+"aplicación está inactivo &gt;\n"
+"                                &lt; deshaga la transacción removiendo el "
+"estatus Uncommitted del almacenamiento de objetos &gt;\n"
+"                        endif.\n"
+"                endif.\n"
+"        endif.\n"
+"end while."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:272
+#, no-c-format
+msgid "A Recovery Module for XA Resources"
+msgstr "Un módulo de recuperación para recursos XA"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:273
+#, 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 ""
+"Para administrar la recuperación vimos en el capítulo anterior que el "
+"administrador de recuperaciones dispara un proceso llamando a un grupo de "
+"módulos de recuperación que implementa los dos métodos definidos por la "
+"interfaz <interfacename>RecoveryModule</interfacename>. "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:277
+#, 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 ""
+"Para habilitar la recuperación de participantes controlados por medio de la "
+"interfaz <interfacename>XA</interfacename>, se proporciona un módulo de "
+"recuperación especifico llamado XARecoveryModule. El XARecoveryModule, "
+"definido en los paquetes <package>com.arjuna.ats.internal.jta.recovery."
+"arjunacore</package> y <package>com.arjuna.ats.internal.jta.recovery.jts</"
+"package>, maneja la recuperación de recursos <interfacename>XA</"
+"interfacename> (por ejemplo, bases de datos) utilizados en JTA. "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:281
+#, 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 ""
+"JBossTS soporta dos implementaciones JTA: una versión local (no hay "
+"transacciones distribuidas) y una versión sobre el JTS. La recuperación para "
+"el último es simple. En la siguiente discusión vamos a considerar "
+"implícitamente la implementación JTS."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:285
+#, 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 ""
+"Este comportamiento consiste de dos aspectos: recuperación "
+"<emphasis>transaction-initiated</emphasis> y <emphasis>resource-initiated</"
+"emphasis> . La recuperación transaction-initiated es posible en donde la "
+"rama de una transacción en particular había progresado lo suficiente para "
+"que se hubiese escrito un JTA Resource Record en el ObjectStore, como se "
+"ilustró en la Figura 2."
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:292
+#, no-c-format
+msgid "JTA/JDBC information stored in the ObjectStore"
+msgstr "Información JTA/JDBC almacenada en el ObjectStore"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:294
+#, 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 ""
+"Un registro de recursos JTA contiene la información que se necesita para "
+"enlazar la transacción, como se conoce en el resto de JBossTS, a la base de "
+"datos. Una recuperación iniciada desde los recursos es necesaria para ramas "
+"en donde la falla ocurrió después que la base de datos había hecho un "
+"registro persistente de la transacción, pero antes de que se hiciera "
+"persistente el JTA ResourceRecord. La recuperación iniciada desde los "
+"recursos también es necesaria para fuentes de datos para las cuales no es "
+"posible mantener información en el registro de recursos JTA que permite la "
+"recreación en el RecoveryManager del XAConnection/XAResource que se utilizó "
+"en la aplicación original. "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:298
+#, 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 ""
+"Al ejecutar una recuperación XA es necesario decirle a JBossTS que tipos de "
+"Xid puede recuperar. Cada Xid que JBossTS crea tiene un identificador de "
+"nodo único codificado dentro de él y JBossTS solo recuperará transacciones y "
+"estados que coincidan con un identificador de nodos especificado. El nodo "
+"identificador a utilizar lo debe proporcionar JBossTS por medio de una "
+"propiedad que empiece con el nombre <property>com.arjuna.ats.jta."
+"xaRecoveryNode</property>; se pueden proporcionar múltiples valores. Un "
+"valor de ‘*’ forzará a que JBossTS recupere (y posiblemente deshaga) todas "
+"las transacciones irrespectivamente de su identificador de nodo y se deben "
+"utilizar con precaución. El contenido de <property>com.arjuna.ats.jta."
+"xaRecoveryNode</property> debe ser alfanumérico y debe coincidir con los "
+"valores de <property>com.arjuna.ats.arjuna.xa.nodeIdentifier</property>."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:302
+#, 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 ""
+"La recuperación iniciada desde transacciones es automática. El "
+"XARecoveryModule encuentra el registro de recursos JTA que necesita la "
+"recuperación, luego utiliza los mecanismos de recuperación normal para "
+"encontrar el estatus de la transacción en la que estaba involucrada (por "
+"ejemplo, llama a replay_completion en el RecoveryCoordinator para la rama de "
+"la transacción), (re)crea el XAResource apropiado y emite guardar o deshacer "
+"los cambios en este cuando sea apropiado. La creación XAResource utilizará "
+"la misma información, nombre de base de datos, nombre de usuario, "
+"contraseña, etc, como la aplicación original."
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:309
+#, no-c-format
+msgid "Transaction-Initiated Recovery and XA Recovery"
+msgstr "Recuperación iniciada desde transacciones y recuperación XA"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:311
+#, 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 ""
+"La recuperación iniciada desde recursos tiene que configurarse "
+"especificamente proporcionando el administrador de recuperaciones con la "
+"información apropiada para que este pueda interrogar a todas las bases de "
+"datos (XADataSources) que han sido accedidas por cualquier aplicación "
+"JBossTS. El acceso a cada XADataSource es manejado por una clase que "
+"implementa la interfaz <interfacename>com.arjuna.ats.jta.recovery."
+"XAResourceRecovery</interfacename>, como se ilustra en la figura 4. Las "
+"instancias de clases que implementan la interfaz XAResourceRecovery se "
+"cargan dinámicamente, como lo controlan las propiedades con los nombres que "
+"empiezan por <property>com.arjuna.ats.jta.recovery.XAResourceRecovery</"
+"property>."
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:318
+#, no-c-format
+msgid "Resource-initiated recovery and XA Recovery"
+msgstr "Recuperación iniciada por recursos y recuperación XA"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:321
+#, 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 ""
+"JBossTS 3.3 <interfacename>XAConnectionRecovery</interfacename> ya no se "
+"está utilizando y se prefiere <interfacename>XAResourceRecovery</"
+"interfacename>. Aunque la interfaz antigua todavía existe, se le anima a los "
+"usuarios a que migren a la nueva interfaz."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:325
+#, 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 ""
+"El XARecoveryModule utilizará la implementación XAResourceRecovery para "
+"obtener un XAResource en la fuente de datos de destino. En cada invocación "
+"de periodicWorkSecondPass, el módulo de recuperación emitirá una petición "
+"XAResource.recover – esto (como se describe en la especificación XA) "
+"retornará una lista de los identificadores de transacciones (Xid’s) que la "
+"fuente de datos conoce y que se encuentram en un estado indeterminado "
+"(dudosos). Esta lista de Xids dudosos recibidos en pases exitosos (por "
+"ejemplo, periodicWorkSecondPass-es) se compara. Cualquier Xid que aparezca "
+"en ambas listas y para el cual la recuperación iniciada desde transacciones "
+"no encontró ningún JTA ResourceRecord entonces se asume que pertenece a una "
+"transacción relacionada con algun fallo antes de que se escribiera cualquier "
+"JTA ResourceRecord y se emite la orden de deshacer esa transacción en el "
+"XAResource."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:328
+#, 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 ""
+"Este mecanismo de doble escaneo se utiliza ya que es posible que el Xid "
+"fuese obtenido de la fuente de datos así como el proceso aplicación estaba "
+"por crear el  JTA_ResourceRecord correspondiente. El intervalo entre los "
+"escaneos debe dar tiempo para escribir el registro a menos de que la "
+"aplicación falle (si es así entonces el deshacer la transacción es lo mejor "
+"que puede hacer). "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:331
+#, 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 ""
+"Se puede escribir una clase de implementación <classname>XAResourceRecovery</"
+"classname> para que contenga toda la información que se necesita para "
+"realizar la recuperación en algunas fuentes de datos. Opcionalmente, una "
+"sola clase puede manejar múltiples fuentes de datos. El constructor de la "
+"clase de implementación debe tener una lista vacía de parámetros (ya que se "
+"carga dinámicamente), pero la interfaz incluye un método initialise, el cual "
+"le pasa más información como una cadena. El contenido de la cadena se toma "
+"del valor de la propiedad que proporciona el nombre de la clase: todo lo que "
+"está después del primer punto y coma se pasa como el valor de la cadena. El "
+"uso de esta cadena es determinado por la clase de implementación "
+"<classname>XAResourceRecovery</classname>."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:334
+#, 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 ""
+"Para obtener mayores detalles sobre la manera de implementar una clase que "
+"utilice la interfaz <interfacename>XAResourceRecovery</interfacename>, "
+"consulte el capítulo sobre JDBC en el manual de programación JTA. Se soporta "
+"una clase de implementación que soporta la recuperación iniciada desde "
+"recursos para cualquier XADataSource. Esta clase de puede utilizar como una "
+"plantilla para construir su propia clase de implementación. "
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:338
+#, no-c-format
+msgid "Assumed complete"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:339
+#, no-c-format
+msgid ""
+"If a failure occurs in the transaction environment after the transaction "
+"coordinator had told the XAResource to commit but before the transaction log "
+"has been updated to remove the participant, then recovery will attempt to "
+"replay the commit. In the case of a Serialized XAResource, the response from "
+"the XAResource will enable the participant to be removed from the log, which "
+"will eventually be deleted when all participants have been committed. "
+"However, if the XAResource is not recoverable then it is extremely unlikely "
+"that any <interfacename>XAResourceRecovery</interfacename> instance will be "
+"able to provide the recovery sub-system with a fresh XAResource to use in "
+"order to attempt recovery; in which case recovery will continually fail and "
+"the log entry will never be removed."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:343
+#, no-c-format
+msgid "There are two possible solutions to this problem:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:348
+#, no-c-format
+msgid ""
+"Rely on the relevant ExpiryScanner to eventually move the log elsewhere. "
+"Manual intervention will then be needed to ensure the log can be safely "
+"deleted. If a log entry is moved, suitable warning messages will be output."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:353
+#, no-c-format
+msgid ""
+"Set <property>com.arjuna.ats.jta.xaAssumeRecoveryComplete</property> to "
+"true. This option is checked whenever a new XAResource instance cannot be "
+"located from any registered <interfacename>XAResourceRecovery</"
+"interfacename> instance. If false (the default), recovery assumes that there "
+"is a transient problem with the <interfacename>XAResourceRecovery</"
+"interfacename> instances (for example, not all have been registered with the "
+"sub-system) and will attempt recovery periodically. If true then recovery "
+"assumes that a previous commit attempt succeeded and this instance can be "
+"removed from the log with no further recovery attempts. This option is "
+"global, so needs to be used with care since if used incorrectly, XAResource "
+"instances may remain in an uncommitted state."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:359
+#, no-c-format
+msgid "Writing a Recovery Module"
+msgstr "Escritura de un módulo de recuperación"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:360
+#, 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 ""
+"Con el fin de recuperarse de una falla, hemos visto que el administrador de "
+"recuperaciones contacta los módulos de recuperación invocando periódicamente "
+"los métodos <methodname>periodicWorkFirstPass</methodname> y "
+"<methodname>periodicWorkSecondPass</methodname>. Luego cada módulo de "
+"recuperación puede administrar la recuperación de acuerdo con el tipo de "
+"recursos que se necesitan recuperar. El producto JBoss Transaction se envía "
+"junto con un grupo de módulos de recuperación (TOReceveryModule, "
+"XARecoveryModule…), pero es posible para el usuario el definir su propio "
+"módulo de recuperación para que se ajuste a su aplicación. El siguiente "
+"ejemplo básico ilustra los pasos necesarios para construir tal módulo de "
+"recuperación."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:363
+#, no-c-format
+msgid "A basic scenario"
+msgstr "Escenario básico"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:364
+#, 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 ""
+"Este ejemplo básico no tiene el propósito de presentar un proceso completo "
+"de recuperación desde la falla sino que principalmente ilustra la manera de "
+"implementar un módulo de recuperación. "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:366
+#, 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 ""
+"La aplicación que utilizamos aquí crea una transacción atómica, registra un "
+"participante dentro de la transacción creada y finalmente la termina "
+"guardando los cambios o abortando. Se proporciona un grupo de argumentos: "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:371
+#, no-c-format
+msgid "to decide to commit or abort the transaction,"
+msgstr "para decidir si guarda o aborta la transacción. "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:376
+#, no-c-format
+msgid "to decide generating a crash during the commitment process."
+msgstr ""
+"para decidir si genera una falla durante el proceso para guardar los cambios."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:381
+#, no-c-format
+msgid "The code of the main class that control the application is given below"
+msgstr ""
+"El código de la clase principal que controla la aplicación se da a "
+"continuación"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:384
+#, 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 ""
+"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"
+"}"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:385
+#, no-c-format
+msgid "The registered participant has the following behavior:"
+msgstr "El participante registrado tiene el siguiente comportamiento: "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:390
+#, 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 ""
+"Durante la fase prepare, escribe un mensaje simple - <emphasis>Estoy "
+"preparado</emphasis>- en el disco de manera que el mensaje se escriba en un "
+"archivo bien conocido."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:395
+#, 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 ""
+"Durante la fase commit, escribe otro mensaje - <emphasis>Guardé los cambios</"
+"emphasis>- en el mismo archivo que se utilizó en la fase prepare."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:400
+#, no-c-format
+msgid ""
+"If it receives an abort message, it removes from the disk the file used for "
+"prepare if any."
+msgstr ""
+"Si recibe un mensaje para abortar entonces remueve del disco el archivo que "
+"se utilizó para la fase prepare si hay alguno. "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:405
+#, 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 ""
+"Si ha decidido tener una falla en la prueba entonces falla durante la fase "
+"commit - el archivo continua con el mensaje <emphasis>Estoy preparado</"
+"emphasis>."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:410
+#, no-c-format
+msgid ""
+"The main portion of the code illustrating such behavior is described "
+"hereafter."
+msgstr ""
+"La parte principal del código ilustrando tal comportamiento se describe más "
+"adelante. "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:414
+#, fuzzy, no-c-format
+msgid ""
+"The location specified as the value for the variable <varname>filename</"
+"varname> can be altered."
+msgstr ""
+"La ubicación del archivo dado en una variable filename se puede cambiar"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:418
+#, 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 ""
+"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"
+"}"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:419
+#, 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 ""
+"El papel del módulo de recuperaciones en tal aplicación consiste en leer el "
+"contendio del archivo utilizado para almacenar el estatus del participante, "
+"para determinar ese estatus e imprimir un mensaje indicando si se necesita o "
+"no una acción de recuperación. "
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:422
+#, 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 ""
+"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"
+"}"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:423
+#, 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 ""
+"Ahora se debe desplegar el módulo de recuperación con el fin de que el "
+"administrador de recuperaciones lo llame. Para lograr esto, solo es "
+"necesario añadir una entrada en el <filename>RecoveryManager-properties.xml</"
+"filename> agragando una nueva propiedad así:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:426
+#, 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 ""
+"&lt;property\n"
+"                 name=\"com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;"
+"i&gt;\"\n"
+"        value=\"com.arjuna.demo.recoverymodule.SimpleRecoveryModule\"/&gt;"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:427
+#, 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 ""
+"En donde &lt;i&gt; representa el número de nuevas ocurrencias que sigue al "
+"último que ya existe en el archivo. Una vez se ha iniciado, el administrador "
+"de recuperaciones automáticamente cargará el módulo de recuperación agregado."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:431
+#, no-c-format
+msgid ""
+"The source of the code can be retrieved under the trailmap directory of the "
+"JBossTS installation."
+msgstr ""
+"La fuente del código se puede recuperar bajo el directorio de la instalación "
+"JBossTS.  "
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:436
+#, no-c-format
+msgid "Another scenario"
+msgstr "Otro escenario"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:437
+#, 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 ""
+"Como lo mencionamos anteriormente, la aplicación básica presentada "
+"anteriormente no representa el proceso completo para recuperarse de un fallo "
+"sino que fue presentada para describir la manera de construir un módulo de "
+"recuperación. En el caso del protocolo OTS, vamos a considerar la manera en "
+"que se puede configurar un módulo de recuperación que administra la "
+"recuperación de recursos OTS."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:441
+#, 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 ""
+"Para administrar la recuperación en caso de fallo, la especififcación OTS ha "
+"definido un protocolo de recuperación. Los participantes de transacciones "
+"con un estatus dudoso pueden utilizar el RecoveryCoordinator para determinar "
+"el estatus de la transacción. De acuerdo con ese estatus de la transacción, "
+"aquellos participantes pueden tomar la decisión apropiada de deshacer o de "
+"guardar los cambios. El pedirle al objeto RecoveryCoordinator que determine "
+"el estatus consiste de invocar la operación replay_completion en el "
+"RecoveryCoordinator."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:444
+#, 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 ""
+"Para cada recurso OTS con un estado dudoso, se sabe bien que "
+"RecoveyCoordinator invocar para determinar el estatus de la transacción en "
+"el cual el recurso está involucrado - es el RecoveryCoordinator retornado "
+"durante el proceso de registro de recursos. El recuperar tal "
+"RecoveryCoordinator por recurso significa que ha sido almacenado además de "
+"otra información que describe el recurso. "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:447
+#, 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 ""
+"Un módulo de recuperación dedicado a recuperar recursos OTS puede tener el "
+"siguiente comportamiento. Cuando el administrador de recuperaciones lo "
+"solicita en el primer pase, recupera del disco la lista de recursos que "
+"tienen un estatus dudoso. Durante el segundo pase, si los recursos que "
+"fueron recuperados en el pirmer pase todavía permanecen en el disco entonces "
+"se les considera como candidatos para la recuperación. Por lo tanto, el "
+"módulo de recuperación recupera para cada candidato su RecoveryCoordinator "
+"asociado e invoca la operación replay_completion del estado de la "
+"transacción. De acuerdo con el estatus retornado se debe tomar una acción "
+"apropiada (por ejemplo, deshacer el recurso si el estutus es abortado o "
+"inactivo). "
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:452
+#, no-c-format
+msgid "TransactionStatusConnectionManager"
+msgstr "TransactionStatusConnectionManager"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:453
+#, 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 ""
+"Los módulos de recuperación utilizan el objeto "
+"TransactionStatusConnectionManager para recuperar el estatus de "
+"transacciones y actua como un proxy para los objetos "
+"TransactionStatusManager. Mantiene una tabla de objetos "
+"TransactionStatusConnector cada uno de los cuales se conecta al objeto "
+"TransactionStatusManager en un proceso aplicación."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:456
+#, 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 ""
+"El estatus de las transacciones se recupera utilizando los métodos "
+"getTransactionStatus, los cuales toman un Uid de transacción y el tipo de "
+"transacción como parámetros si están disponibles. El campo Uid del proceso "
+"en el parámetro Uid de las transacciones se utiliza para buscar el puerto/"
+"host TransactionStatusManagerItem de destino en el almacenamiento de "
+"objetos. Un objeto TransactionStatusConnector utiliza el host/puerto para "
+"realizar la conexión TCP al objeto TransactionStatusManager de destino. El "
+"TransactionStatusConnector pasa el tipo de transacción/Uid de transacción al "
+"TransactionStatusManager con el fin de recuperar el estatus de "
+"transacciones. "
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:461
+#, no-c-format
+msgid "Expired Scanner Thread"
+msgstr "Hilo de escaneo vencido"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:462
+#, 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 ""
+"Cuando el administrador de recuperación inicializa un hilo de escaneo "
+"vencido entonces se crea un ExpiryEntryMonitor, el cual se utiliza para "
+"eliminar elementos muertos hace tiempo del ObjectStore. Un número de módulos "
+"de escaneo se cargan dinámicamente, lo cual remueve elementos muertos hace "
+"rato para un tipo en particular. "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:465
+#, no-c-format
+msgid ""
+"Scanner modules are loaded at initialisation and are specified as properties "
+"beginning with"
+msgstr ""
+"Los módulos de escaneo se cargan en la inicialización y se especifican como "
+"propiedades que empiezan por"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:468
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScanner&lt;Scanner Name&gt;=&lt;Scanner "
+"Class&gt;"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.expiryScanner&lt;Scanner Name&gt;=&lt;Scanner "
+"Class&gt;"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:469
+#, 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 ""
+"Todos los módulos de escaneo se llaman peródicamente para que el hilo "
+"ExpiryEntryMonitor busque elementos muertos. Este periodo se configura con "
+"la propiedad: "
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:472
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.expiryScanInterval"
+msgstr "com.arjuna.ats.arjuna.recovery.expiryScanInterval"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:473
+#, no-c-format
+msgid ""
+"All scanners inherit the same behaviour from the java interface "
+"<interfacename>ExpiryScanner</interfacename> as illustrated in diagram below:"
+msgstr ""
+"Todos los escaners heredan el mismo comportamiento de la interfaz java "
+"<interfacename>ExpiryScanner</interfacename> como se ilustra en el diagrama "
+"a continuación:"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:481
+#, 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 ""
+"Esta interfaz proporciona un método de escaneo y es implementado por todos "
+"los módulos de escaneo, este es el método que el hilo de escaneo llama. "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:484
+#, 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 ""
+"El ExpiredTransactionStatusManagerScanner remueve del almacenamiento de "
+"objetos TransactionStatusManagerItems que han muerto hace rato. Estos "
+"elementos permanecerán en el almacenamiento de objetos por un periodo de "
+"tiempo antes de borrarlos. Este tiempo se configura por medio de la "
+"propiedad:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:487
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime"
+msgstr "com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:488
+#, no-c-format
+msgid "(default 12 hours)"
+msgstr "(por defecto 12 horas)"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:493
+#, no-c-format
+msgid "Application Process"
+msgstr "Proceso aplicación"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:494
+#, 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 ""
+"Este representa el programa transaccional del usuario. Una tabla de "
+"transacciones locales (hash) que se mantiene dentro del proceso aplicación "
+"ejecutando mantiene el registro del estatus actual de todas las "
+"transacciones creadas por ese proceso aplicación. El administrador de "
+"recuperaciones necesita acceder a las tablas de transacciones para poder "
+"determinar si una transacción todavía está en progreso, si es así entonces "
+"la recuperación no tiene lugar. "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:497
+#, 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 ""
+"Las tablas de transacciones se acceden por medio del objeto "
+"TransactionStatusManager. Durante la inicialización del programa aplicación, "
+"el host/puerto que representa el TransactionStatusManager se escribe en el "
+"almacenamiento de objetos en la parte '../Recovery/TransactionStatusManager’ "
+"de la jerarquía de archivos del almacenamiento de objetos y es identificado "
+"por el Uid de proceso del proceso aplicación. "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:500
+#, 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 ""
+"El administrador de recuperaciones utiliza el objeto "
+"TransactionStatusConnectionManager para recuperar el estatus de una "
+"transacción y se utiliza un objeto TransactionStatusConnector para realizar "
+"una conexión al TransactionStatusManager."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:505
+#, no-c-format
+msgid "TransactionStatusManager"
+msgstr "TransactionStatusManager"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:506
+#, 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 ""
+"Este objeto actua como una interfaz para el administrador de recuperación "
+"para obtener el estatus de transacciones de procesos aplicación HPTS "
+"ejecutando. El class com.arjuna.ats.arjuna.coordinator.InitAction crea un "
+"TransactionStatusManager por proceso aplicación. Actualmente una conexión "
+"tcp se utiliza para la comunicación entre el RecoveryManager y el "
+"TransactionStatusManager. El TransactionStatusManager utiliza cualquier "
+"puerto libre por defecto; sin embargo, el puerto se puede modificar con la "
+"propiedad:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:509
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort"
+msgstr "com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:510
+#, 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 ""
+"Durante la creación el TransactionStatusManager obtiene un puerto el cual "
+"almacena con el host en el almacenamiento de objetos como un "
+"TransactionStatusManagerItem. Se inicia un hilo de escucha el cual espera "
+"una petición de conexión de un TransactionStatusConnector. Cuando se "
+"establece una conexión entonces se crea un hilo de conexión el cual ejecuta "
+"un servicio (AtomicActionStatusService) el cual acepta un Uid de transacción "
+"y un tipo de transacción (si está disponible) de un "
+"TransactionStatusConnector, el estatus de la transacción se obtiene de la "
+"tabla de transacciones locales y se retorna al TransactionStatusConnector."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:515
+#, no-c-format
+msgid "Object Store"
+msgstr "Almacenamiento de objetos"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:516
+#, 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 ""
+"Todos los objetos se almacenan en una ruta de archivo la cual es equivalente "
+"a heredar su clase. Por lo tanto las transacciones AtomicAction se almacenan "
+"en la ruta de archivos ../StateManager/BasicAction/AtomicAction."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:519
+#, 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 ""
+"Todos los objetos se identifican por medio de un Uid identificador único. "
+"Uno de los valores de los cuales es un id de proceso en el cual se creó el "
+"objeto. El administrador de recuperación utiliza el id de proceso para "
+"ubicar elementos de administración de estatus de transacciones cuando "
+"contacta el proceso aplicación originador para el estatus de la transacción. "
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:524
+#, no-c-format
+msgid "Stock free operation"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:525
+#, no-c-format
+msgid ""
+"The use of TCP/IP sockets for TransactionStatusManager and RecoveryManager "
+"provides for maximum flexibility in the deployment architecture. It is often "
+"desirable to run the RecoveryManager in a separate JVM from the Transaction "
+"manager(s) for increased reliability. In such deployments, TCP/IP provides "
+"for communication between the RecoveryManager and transaction manager(s), as "
+"detailed in the preceding sections. Specifically, each JVM hosting a "
+"TransactionManager will run a TransactionStatusManager listener, through "
+"which the RecoveryManager can contact it to determine if a transaction is "
+"still live or not. The RecoveryManager likewise listens on a socket, through "
+"which it can be contacted to perform recovery scans on demand. The presence "
+"of a recovery listener is also used as a safety check when starting a "
+"RecoveryManager, since at most one should be running for a given ObjectStore."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:528
+#, no-c-format
+msgid ""
+"There are some deployment scenarios in which there is only a single "
+"TransactionManager accessing the ObjectStore and the RecoveryManager is co-"
+"located in the same JVM. For such cases the use of TCP/IP sockets for "
+"communication introduces unnecessary runtime overhead. Additionally, if "
+"several such distinct processes are needed for e.g. replication or "
+"clustering, management of the TCP/IP port allocation can become unwieldy. "
+"Therefore it may be desirable to configure for socketless recovery operation."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:531
+#, no-c-format
+msgid ""
+"The property <property>com.arjuna.ats.arjuna.coordinator."
+"transactionStatusManagerEnable</property> can be set to a value of "
+"<literal>NO</literal> to disable the TransactionStatusManager for any given "
+"TransactionManager. Note that this must not be done if recovery runs in a "
+"separate process, as it may lead to incorrect recovery behavior in such "
+"cases. For an in-process recovery manager, the system will use direct access "
+"to the ActionStatusService instead."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:534
+#, no-c-format
+msgid ""
+"The property <property>com.arjuna.ats.arjuna.recovery.recoveryListener</"
+"property> can likewise be used to disable the TCP/IP socket listener used by "
+"the recovery manager. Care must be taken not to inadvertently start multiple "
+"recovery managers for the same ObjectStore, as this error, which may lead to "
+"significant crash recovery problems, cannot be automatically detected and "
+"prevented without the benefit of the socket listener."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/Author_Group.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,22 @@
+# translation of Preface.po to
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2009-01-30 12:13+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: author
+#: Author_Group.xml:6
+#, fuzzy, no-c-format
+msgid "<firstname>Red Hat Documentation Group</firstname> <surname></surname>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/Book_Info.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,50 @@
+# translation of Preface.po to
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2009-01-30 12:13+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Failure Recovery Guide"
+msgstr "Manual de recuperación de fallos de transacciones JBoss"
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, fuzzy, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 5.0"
+msgstr "para uso con JBoss Enterprise Application Platform 4.3"
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss "
+"Transactions Failure Recovery Guide"
+msgstr ""
+"Este libro es la edición de la plataforma de aplicaciones empresariales del "
+"manual de recuperación de fallas de transacciones de JBoss"
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr "Logo"
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/How_JBossTS_managers_the_OTS_Recovery_Protocol.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/How_JBossTS_managers_the_OTS_Recovery_Protocol.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/How_JBossTS_managers_the_OTS_Recovery_Protocol.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,596 @@
+# translation of Preface.po to
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2009-01-30 12:13+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:6
+#, no-c-format
+msgid "How JBossTS manages the OTS Recovery Protocol"
+msgstr "Cómo JBossTS administra el protocolo de recuperación OTS "
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:10
+#, no-c-format
+msgid "Recovery Protocol in OTS-Overview"
+msgstr "Protocolo de recuperación en sinopsis-OTS"
+
+#. 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 ""
+"Para administrar la recuperación en caso de falla, la especificación OTS ha "
+"definido un protocolo de recuperación. Los participantes de la transacción "
+"que tengan un estado dudoso pueden utilizar el RecoveryCoordinator para "
+"determinar el estatus de la transacción. De acuerdo con el estatus de esa "
+"transacción, esos participantes pueden tomar la decisión apropiada ya sea "
+"guardando o deshaciendo los cambios. "
+
+#. 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 ""
+"Se retorna una referencia al RecoveryCoordinator como resultado de una "
+"llamada exitosa a register_resource en el coordinador de transacciones. Este "
+"objeto, el cual está asociado implícitamente con un solo recurso, se puede "
+"utilizar para dirigir el recurso a través de los procedimientos de "
+"recuperación en caso de que ocurra una falla durante la transacción. "
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:21
+#, no-c-format
+msgid "Resource and RecoveryCoordinator relationship."
+msgstr "Relación entre los recursos y el RecoveryCoordinator "
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:26
+#, no-c-format
+msgid "RecoveryCoordinator in JBossTS"
+msgstr "RecoveryCoordinator en JBossTS"
+
+#. 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 ""
+"En cada registro de recursos se espera que se cree y se retorne un objeto "
+"RecoveryCoordinator en la aplicación que invocó la operación "
+"register_resource. Detrás de cada objeto CORBA debe haber una implementación "
+"de objeto o un objeto Servant, en términos POA, el cual realiza operaciones "
+"hechas en un objeto RecoveryCoordinator. En lugar de crear un objeto "
+"RecoveryCoordinator con su sirviente asociado en cada register_resource, "
+"JBossTS aumenta el rendimiento evitando la creación de sirvientes pero "
+"depende de un objeto RecoveryCoordinator predeterminado con su sirviente "
+"predeterminado asociado para administrar todas las invocaciones "
+"replay_completion. "
+
+#. 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 ""
+"En las siguientes secciones primero vamos a dar una sinopsis de la "
+"arquitectura del adaptador de objetos portátiles y luego describimos la "
+"manera en que esta arquitectura se utiliza para proporcionar la creación del "
+"RecoveryCoordinator con optimización tal como se explicó anteriormente. "
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:34
+#, no-c-format
+msgid "Understanding POA"
+msgstr "POA"
+
+#. 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 ""
+"Básicamente, el adaptador de objetos portátiles (POA del inglés Portable "
+"Object Adapter) es un objeto que intercepta una petición de un cliente e "
+"identifica el objeto que satisface la petición del cliente. Luego el objeto "
+"se invoca y se le retorna la respuesta al cliente. "
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:43
+#, no-c-format
+msgid "Overview of the POA."
+msgstr "Sinopsis de POA"
+
+#. 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 ""
+"El objeto que realiza la petición del cliente se conoce como un sirviente, "
+"el cual proporciona la implementación del objeto CORBA que el cliente "
+"solicitó. Un sirviente proporciona la implementación para una o más "
+"referencias de objetos CORBA. Para recuperar un sirviente, cada POA mantiene "
+"un mapa de objetos activos que mapea todos los objetos que han sido "
+"activados en el POA para un sirviente. Para cada petición que entra, el POA "
+"busca la referencia de objeto en el mapa de objetos activos y trata de "
+"encontrar el sirviente responsable. Si no encuentra ninguno, la petición se "
+"delega a un sirviente predeterminado o se invoca un administrador de "
+"sirvientes para activar o ubicar un sirviente apropiado. Además del espacio "
+"de nombre para los objetos, los cuales se identifican por medio de Ids de "
+"objeto, un POA también proporciona un espacio de nombre para POAs. Un POA se "
+"crea como un hijo de un POA existente, el cual forma una jerarquía empezando "
+"por la raíz POA. "
+
+#. 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 ""
+"Cada POA tiene un grupo de políticas que definen sus características. Cuando "
+"crea una nueva POA, se puede utilizar el grupo predeterminado de políticas o "
+"se pueden asignar valores diferentes que concuerden con los requerimientos "
+"de la aplicación. La especificación POA define: "
+
+#. 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 ""
+"<emphasis>Política de hilos:</emphasis> Especifica el modelo de hilos que el "
+"POA va a utilizar. Los valores posibles son:"
+
+#. 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 ""
+"ORB_CTRL_MODEL (default): La POA es la responsable de asignar peticiones a "
+"los hilos."
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:63
+#, no-c-format
+msgid "SINGLE_THREAD_MODEL: The POA processes requests sequentially"
+msgstr "SINGLE_THREAD_MODEL: La POA procesa peticiones secuencialmente"
+
+#. 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 ""
+"<emphasis>Política de tiempo de vida:</emphasis> Especifica el tiempo de "
+"vida de los objectos implementados en la POA. La política de tiempo de vida "
+"puede tener los siguientes valores:"
+
+#. 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 ""
+"Los objetos TRANSIENT (perdeterminado) implementados en la POA no pueden "
+"tener un periodo de vida más largo que el proceso en el que fueron creados. "
+"Una vez se desactive la POA entonces se presenta una excepción "
+"OBJECT_NOT_EXIST cuando trata de utilizar cualquier referencia de objeto "
+"generada por la POA."
+
+#. 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 ""
+"Los objetos PERSISTENT implementados en la POA pueden tener un tiempo de "
+"vida más largo que el proceso en el que se les creó."
+
+#. 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 ""
+"Política de unicidad de ID de objetos: permite compartir un solo sirviente "
+"entre muchos objetos abstractos. La política de unicidad de ID de objetos "
+"puede tener los siguientes valores:"
+
+#. 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 ""
+"UNIQUE_ID (Default): Los sirvientes activados solo soportan un ID de objeto."
+
+#. 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 ""
+"MULTIPLE_ID: Los sirvientes activados pueden tener uno o más Ids de objeto. "
+"El Id de objeto ID debe estar determinado dentro del método que se está "
+"invocando en tiempo de ejecución."
+
+#. 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 ""
+"Política de asignación de Ids: Especifica si los Ids de objeto son generados "
+"por aplicaciones servidor o por el POA. Esta política puede tener los "
+"siguientes valores: "
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:109
+#, no-c-format
+msgid "USER_ID is for persistent objects, and"
+msgstr "USER_ID es para objetos persistentes y"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:114
+#, no-c-format
+msgid "SYSTEM_ID is for transient objects."
+msgstr "SYSTEM_ID es para objetos transitorios."
+
+#. 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 ""
+"Política de retención de sirvientes: Especifica si el POA retiene sirvientes "
+"activos en el mapa de objetos activos. Esta política puede tener los "
+"siguientes valores:"
+
+#. 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 ""
+"RETAIN (predeterminadat) La POA rastrea activaciones de objetos en el mapa "
+"de objetos activos. RETAIN usualmente se utiliza con ServantActivators o con "
+"métodos de activación explícitos en POA."
+
+#. 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 ""
+"NON_RETAIN El POA no retiene sirvientes activos en el mapa de objetos "
+"activos. NON_RETAIN usualmente se utiliza con ServantLocators."
+
+#. 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 ""
+"Política de procesamiento de peticiones: especifica la manera en que las "
+"peticiones son procesadas por la POA. "
+
+#. 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 ""
+"USE_ACTIVE_OBJECT_MAP (Predeterminado): Si el Id de objeto no está listado "
+"en el mapa de objetos activos entonces se retorna una excepción OBJECT_NOT "
+"_EXIST. La POA también debe utilizar la política RETAIN con este valor."
+
+#. 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 ""
+"USE_DEFAULT_SERVANT: Si el Id de objeto no está listado en el mapa de "
+"objetos activos o si está establecida la política NON_RETAIN entonces la "
+"petición se despacha al sirviente predeterminado. Si no se ha registrado un "
+"sirviente predeterminado entonces se retorna una excepción OBJ_ADAPTER. La "
+"POA también debe utilizar la política MULTIPLE_ID con este valor."
+
+#. 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 ""
+"USE_SERVANT_MANAGER: Si el Id de objeto no está listado en el mapa de "
+"objetos activos o si está establecida la política NON_RETAIN entonces se "
+"utiliza el administrador de sirvientes para obtener un sirviente."
+
+#. 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 ""
+"Política de activación implícita: Especifica si POA soporta la activación "
+"implícita de sirvientes. Esta política puede tener los siguientes valores: "
+
+#. 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 ""
+"IMPLICIT_ACTIVATION: La POA soporta la activación implícita de sirvientes. "
+"Los sirvientes se pueden activar convirtiéndolos en una referencia de objeto "
+"con <methodname>org.omg.PortableServer.POA.servant_to_reference()</"
+"methodname> o invocando <methodname>_this()</methodname> en el sirviente. La "
+"POA también debe utilizar las políticas SYSTEM_ID y RETAIN con este valor."
+
+#. 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 ""
+"NO_IMPLICIT_ACTIVATION (Predeterminado): La POA no soporta la activación "
+"implícita de sirvientes."
+
+#. 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. JBossTS provides one servant "
+"per machine to perform replay_completion invocations. This servant is "
+"located in the RecoveryManager process. The RecoveryManager process is a "
+"separate process from the client and 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 ""
+"Parece ser que para redireccionar invocaciones replay_completion a un "
+"sirviente predeterminado es necesario crear una POA con la política de "
+"procesamiento de peticiones asignada con el valor de USE_DEFAULT_SERVANT. "
+"Sin embargo, para alcanzar ese sirviente predeterminado primero debemos "
+"alcanzar la POA que reenvia la petición al sirviente predeterminado. De "
+"hecho, el ORB utiliza un conjunto de información para recuperar una POA; "
+"esta información se encuentra en la referencia objeto que el cliente "
+"utiliza. Entre toda esta información están las direcciones IP y el número de "
+"puerto en donde reside el servidor y también el nombre POA. JBossTS "
+"proporciona un sirviente por máquina para realizar invocaciones "
+"replay_completion. Este sirviente se encuentra en el proceso "
+"RecoveryManager. El proceso RecoveryManager es un proceso separado de las "
+"aplicaciones del servidor y del cliente. La siguiente sección explica cómo "
+"se proporciona la indirección a un sirviente predeterminado ubicado en un "
+"proceso separado para ORBIX y para JacORB."
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:282
+#, no-c-format
+msgid "The default RecoveryCoordinator in JacOrb"
+msgstr "El RecoveryCoordinator predeterminado en JacOrb"
+
+#. 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 ""
+"JacORB no define políticas adicionales para redireccionar ninguna petición "
+"en un objeto RecoveryCoordinator en un sirviente en el proceso administrador "
+"de recuperaciones. Sin embargo, proporciona un grupo de APIs que permiten "
+"construir referencias de objeto con direcciones IP especificas, número de "
+"puerto y nombre POA con el fin de alcanzar el sirviente predeterminado "
+"apropiado."
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:287
+#, no-c-format
+msgid "How it works"
+msgstr "Cómo funciona"
+
+#. 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 ""
+"Cuando el administrador de recuperaciones se abre busca en la configuración "
+"el RecoveryActivator que es necesario cargar. Una vez lo hace invoca el "
+"método <methodname>startRCservice</methodname> de cada una de las instancias "
+"cargadas. Como lo vimos en el capítulo anterior (Administración de "
+"recuperaciones ) la clase a cargar que implementa la interfaz "
+"<interfacename>RecoveryActivator</interfacename> es la clase "
+"<classname>RecoveryEnablement</classname>. Esta clase genérica, ubicada en "
+"el paquete <package>com.arjuna.ats.internal.jts.orbspecific.recovery</"
+"package>, esconde la naturaleza del ORB que la aplicación está utilizando "
+"(JacORB). La siguiente figura ilustra el comportamiento del "
+"<interfacename>RecoveryActivator</interfacename> que lleva a la creación del "
+"sirviente predeterminado que realiza peticiones de invocaciones "
+"replay_completion."
+
+#. 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 ""
+"Además de la creación del sirviente predeterminado, se crea y se almacena "
+"una referencia a un objeto <code>RecoveryCoordinator</code> en el "
+"ObjectStore. Como lo veremos esta referencia de objeto se utilizará para "
+"obtener su dirección IP, el número de puerto y el nombre POA y le asignará a "
+"cualquier referencia de objeto <code>RecoveryCoordinator</code> creada en "
+"register_resource."
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:299
+#, no-c-format
+msgid ""
+"replay_completion invocation forwarded to the default RecoveryCoordinator."
+msgstr ""
+"La invocación replay_completion reenviada al RecoveryCoordinator "
+"predeterminado."
+
+#. 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 ""
+"Cuando una aplicación registra un recurso con una transacción, se espera que "
+"se retorne una referencia de objeto <code>RecoveryCoordinator</code>. Para "
+"construir esa referencia objeto, el servicio de transacciones utiliza la "
+"referencia objeto RecoveryCoordinator creada dentro del administrador de "
+"recuperaciones como plantilla. La nueva referencia objeto contiene "
+"prácticamente la misma información para recuperar el sirviente "
+"predeterminado (dirección IP, número de puerto, nombre POA, etc.), pero el "
+"Id objeto cambió; ahora contiene el id transacción de la transacción en "
+"progreso y también el Id proceso del proceso que está creando la nueva "
+"referencia objeto <code>RecoveryCoordinator</code>, como se ilustra a "
+"continuación."
+
+#. 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 ""
+"Registro de recursos y referencia de objeto RecoveryCoordinator retornada "
+"construida desde una referencia almacenada en el ObjectStore."
+
+#. 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 ""
+"Ya que una referencia objeto <code>RecoveryCoordintaor</code> retornada a "
+"una aplicación contiene toda la información para recuperar el POA entonces "
+"el sirviente predeterminado ubicado en el administrador de recuperaciones, "
+"toda la invocación replay_completion, por máquina, se reenvían al mismo "
+"<code>RecoveryCoordinator</code> predeterminado que puede recuperar el Id "
+"objeto de la petición entrante para extraer el identificador de "
+"transacciones y el identificador de procesos que se necesitan para "
+"determinar el estatus de la transacción solicitada."

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/JBoss_Transactions_Failure_Recovery_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/JBoss_Transactions_Failure_Recovery_Guide_CP06.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/Preface.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,22 @@
+# translation of Preface.po to
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2009-01-30 12:13+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr "Prefacio"

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/es-ES/Revision_History.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,28 @@
+# translation of Preface.po to
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2009-01-30 12:13+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr "Historial de revisiones"
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/Architecture_of_the_Recovery_Manager.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/Architecture_of_the_Recovery_Manager.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/Architecture_of_the_Recovery_Manager.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,2265 @@
+# translation of Preface.po to French
+# Language fr-FR translations for  package.
+#
+# Automatically generated, 2008.
+# Corina Roe <croe at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-10-23 15:05+1000\n"
+"Last-Translator: Corina Roe <croe at redhat.com>\n"
+"Language-Team: French <i18 at redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:6
+#, no-c-format
+msgid "Architecture of the Recovery Manager"
+msgstr "Architecture du gestionnaire de recouvrement (Recovery Manager)"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:8
+#, no-c-format
+msgid "Crash Recovery Overview"
+msgstr "Aperçu général du système de recouvrement (Crash Recovery)"
+
+#. 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 ""
+"Les composants architecturaux principaux de Crash Recovery sont illustrés "
+"dans le diagramme ci-dessous :"
+
+#. 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 ""
+"Le gestionnaire de recouvrement est un processus de démon consacré au "
+"recouvrement suite à un plantage. Il existe un seul gestionnaire de "
+"recouvrement par noeud. L'ObjectStore fournit le stockage de données "
+"persistantes pour l'enregistrement des données de transactions. Normalement, "
+"chaque transaction devra enregistrer les données persistantes utiles pour "
+"l'étape de validation dans ObjectStore. Si la validation d'un transaction "
+"aboutit sans encombres, ces données sont retirées, mais si la transaction "
+"échoue, alors ces données demeurent dans ObjectStore."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:20
+#, no-c-format
+msgid "The Recovery Manager functions by:"
+msgstr "Le gestionnaire de recouvrement fonctionne en :"
+
+#. 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 ""
+"Balayant l'ObjectStore régulièrement pour trouver les transactions qui "
+"pourraient avoir échoué. Les transactions manquées sont retraçables dans le "
+"système de journalisation des données après la durée de traitement "
+"normalement anticipée pour la transaction donnée."
+
+#. 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 ""
+"Vérifiant dans le processus de l'application d'origine si la transaction est "
+"toujours en cours ou non."
+
+#. 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 ""
+"Recouvrant la transaction en la ré-activant, puis en repassant par la phase "
+"deux du protocole de validation."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:40
+#, no-c-format
+msgid ""
+"The following sections describe the architectural components in more detail"
+msgstr ""
+"Les sections suivantes décrivent les composants architecturaux plus "
+"précisément."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:46
+#, no-c-format
+msgid "Recovery Manager"
+msgstr "Le gestionnaire de recouvrement"
+
+#. 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 ""
+"En cours d'initialisation, le gestionnaire de recouvrement charge tout "
+"d'abord les informations de configuration via un fichier de propriétés. "
+"Cette configuration comprend un certain nombre d'activateurs et de modules "
+"de recouvrement, qui sont ensuite chargés dynamiquement."
+
+#. 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 ""
+"Depuis la version 3.0 de JBossTS, le gestionnaire de recouvrement n'est pas "
+"spécifiquement lié à un ORB (Object Request Broker). Donc, le protocole de "
+"recouvrement OTS n'est pas implicitement activé. Pour permettre un tel "
+"protocole, nous utilisons le concept d'activateur de recouvrement, défini "
+"dans l'interface <interfacename>RecoveryActivator</interfacename>, qui est "
+"utilisé pour instancier une classe de recouvrement liée au protocole de "
+"communication sous-jacent. Ainsi, lorsqu'il est utilisé avec OTS, le "
+"<interfacename>RecoveryActivator</interfacename> a la responsibilité de "
+"créer un objet RecoveryCoordinator qui est capable de répondre à l'opération "
+"replay_completion."
+
+#. 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 ""
+"Toutes les instances de <interfacename>RecoveryActivator</interfacename> "
+"héritent de la même interface. Elles sont chargées via la propriété "
+"d'extension de recouvrement suivante :"
+
+#. 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 ""
+"&lt;property  \n"
+"                   name=\"com.arjuna.ats.arjuna.recovery."
+"recoveryActivator_&lt;number&gt;\" value=\"RecoveryClass\" /&gt;"
+
+#. 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 ""
+"Ainsi, le <interfacename>RecoveryActivator</interfacename> fourni dans la "
+"distribution de JTS/OTS, sur laquelle on se gardera de ne faire aucun "
+"commentaire, est comme suit :"
+
+#. 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 ""
+"&lt;property \n"
+"        name=\"com.arjuna.ats.arjuna.recovery.recoveryActivator_1\" value="
+"\"com.arjuna.ats.internal.jts.orbspecific.recovery.RecoveryEnablement/&gt;"
+
+#. 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 ""
+"Lorsqu'elles sont chargées, toutes les instances de "
+"<interfacename>RecoveryActivator</interfacename> fournissent la méthode "
+"<methodname>startRCservice</methodname> invoquée par le gestionnaire de "
+"recouvrement et utilisée pour créer le composant de recouvrement qu'il faut "
+"pour recevoir les demandes de recouvrement suivant le protocole d'une "
+"transaction particulière. Ainsi, le RecoverCoordinator (le coordinateur de "
+"recouvrement) est défini par le protocole OTS."
+
+#. 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 ""
+"Chaque module de recouvrement est utilisé pour le recouvrement d'un type de "
+"transaction/ressource différent. Cependant, chaque module de recouvrement "
+"hérite du même comportement de base."
+
+#. 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 ""
+"Le processus de recouvrement est en deux passes/étapes séparées par les deux "
+"périodes d'attente. La première étape consiste en la recherche des "
+"transactions qui ont pu échouer dans l'Object Store. La seconde étape "
+"procède au recouvrement des transactions qui ont échoué. Le délai qui "
+"s'écoule entre la première et la seconde étape est connu en tant que période "
+"de retrait (backoff period). Le délai qui s'écoule entre la fin de la "
+"seconde passe et le début de la première est connu en tant que période de "
+"recouvrement (recovery period). La période de recouvrement est plus longue "
+"que la période de retrait."
+
+#. 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 ""
+"Le gestionnaire de recouvrement invoque la première étape/pass sur chaque "
+"module de recouvrement, applique le délai de retrait, invoque la seconde "
+"étape sur chaque module de recouvrement, puis enfin, applique le délai de "
+"recouvrement du module avant de recommencer la première étape à nouveau."
+
+#. 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 ""
+"Les modules de recouvrement sont chargés via la propriété d'extension de "
+"recouvrement suivante :"
+
+#. 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 ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;number&gt;=&lt;"
+"RecoveryClass&gt;"
+
+#. 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 ""
+"Les périodes de retrait et de recouvrement sont déterminées par les "
+"propriétés suivantes :"
+
+#. 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 ""
+"com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod        (default 10 "
+"secs)\n"
+"com.arjuna.ats.arjuna.recovery.periodicRecovery                (default 120 "
+"secs)"
+
+#. 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 ""
+"Les classes java suivantes sont utilisées pour implémenter le gestionnaire "
+"de recouvrement :"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:86
+#, no-c-format
+msgid "package <package>com.arjuna.ats.arjuna.recovery</package>:"
+msgstr "package <package>com.arjuna.ats.arjuna.recovery</package>:"
+
+#. 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 ""
+"Gestionnaire de recouvrement : le processus du démon qui démarre en "
+"instanciant une instance de classe de RecoveryManagerImple."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:96
+#, no-c-format
+msgid "RecoveryEnvironment: Properties used by the recovery manager."
+msgstr ""
+"RecoveryEnvironment: propriétés utilisées par le gestionnaire de "
+"recouvrement."
+
+#. 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 ""
+"RecoveryConfiguration: indique le nom du fichier de propriétés du "
+"gestionnaire de recouvrement (par exemple, RecoveryManager-properties.xml)"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:108
+#, no-c-format
+msgid "package <package>com.arjuna.ats.internal.ts.arjuna.recovery</package>:"
+msgstr ""
+"paquetage <package>com.arjuna.ats.internal.ts.arjuna.recovery</package>:"
+
+#. 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 ""
+"RecoveryManagerImple: crée et démarre des instance de RecActivatorLoader, le "
+"thread PeriodicRecovery et le thread ExpiryEntryMonitor."
+
+#. 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 ""
+"RecActivatorLoader: charge dynamiquement dans le RecoveyActivator indiqué "
+"dans le ficher de propriétés du gestionnaire de recouvrement. Chaque "
+"RecoveryActivator est déterminé comme une forme d'extension de recouvrement "
+"dans le fichier de propriétés."
+
+#. 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 ""
+"PeriodicRecovery: thread qui charge chaque module de recouvrement, puis "
+"invoque la première étape sur chaque module de recouvrement, applique le "
+"délai de retrait, invoque la seconde étape sur chaque module de "
+"recouvrement, puis, applique le délai de recouvrement du module avant de "
+"recommencer la première étape."
+
+#. 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 ""
+"RecoveryClassLoader: charge dynamiquement dans les modules de recouvrement "
+"déterminés dans le fichier de propriétés du gestionnaire de recouvrement. "
+"Chaque module est déterminé comme une forme d'extension du recouvrement dans "
+"le fichier de propriétés (comme, com.arjuna.ats.arjuna.recovery."
+"recoveryExtension1= com.arjuna.ats.internal.ts.arjuna.recovery."
+"AtomicActionRecoveryModule)."
+
+#. 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 ""
+"Par défaut, le gestionnaire de recouvrement écoute le premier port "
+"disponible sur une machine donnée. Si vous souhaitez contrôler le numéro de "
+"port qu'il utilise, vous pouvez le déterminer à l'aide de l'attribut com."
+"arjuna.ats.arjuna.recovery.recoveryPort."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:141
+#, no-c-format
+msgid "Embedding the Recovery Manager"
+msgstr "Intégration du gestionnaire de recouvrement"
+
+#. 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 ""
+"Dans certaines situations, il pourra vous être demandé d'intégrer le "
+"gestionnaire de recouvrement dans le même processus que celui du service de "
+"transaction. Dans ce cas, vous pouvez créer une instance du gestionnaire de "
+"recouvrement par la méthode du gestionnaire sur com.arjuna.ats.arjuna."
+"recovery.RecoveryManager. Un gestionnaire de recouvrement peut être créé "
+"dans un des deux modes, sélectionné par le paramètre à la méthode du "
+"gestionnaire :"
+
+#. 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 ""
+"INDIRECT_MANAGEMENT: le gestionnaire est exécuté périodiquement, mais peut "
+"également être instruit d'être exécuté sur demande via l'opération de "
+"balayage ou par la classe du pilote de recouvrement (RecoveryDriver) décrite "
+"ci-dessous."
+
+#. 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 ""
+"DIRECT_MANAGEMENT: le gestionnaire n'est pas exécuté périodiquement et doit "
+"être dirigé directement par l'opération de balayage ou par RecoverDriver."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:159
+#, no-c-format
+msgid "Managing recovery directly"
+msgstr "Gestion directe du recouvrement"
+
+#. 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 ""
+"Comme mentionné plus haut, le processus de recouvrement est effectué à des "
+"intervalles réguliers. Si vous devez opérer un recouvrement direct, deux "
+"options se présentent à vous, suivant la façon dont le gestionnaire de "
+"recouvrement a été créé."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:165
+#, no-c-format
+msgid "Seperate Recovery Manager"
+msgstr "Gestionnaire de recouvrement séparé."
+
+#. 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 ""
+"Vous pouvez soit utiliser le programme com.arjuna.ats.arjuna.tools."
+"RecoveryMonitor pour envoyer un message au gestionnaire de recouvrement et "
+"lui ordonner d'effectuer un recouvrement, ou bien, vous pouvez créer une "
+"instance de la classe com.arjuna.ats.arjuna.recovery.RecoveryDriver pour le "
+"même effet. Il existe deux types de balayage de recouvrement disponibles :"
+
+#. 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 ""
+"ASYNC_SCAN: ici, un message est envoyé au gestionnaire de recouvrement pour "
+"lui ordonner d'effectuer un recouvrement, mais la réponse revient avant que "
+"le recouvrement ne soit terminé."
+
+#. 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 ""
+"SYNC: ici, un message est envoyé au gestionnaire de recouvrement pour lui "
+"ordonner d'effectuer un recouvrement, et la réponse ne parviendra que "
+"lorsque le recouvrement est terminé."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:183
+#, no-c-format
+msgid "In process Recovery Manager"
+msgstr "Le gestionnaire de recouvrement en cours"
+
+#. 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 ""
+"Vous pouvez invoquer l'opération de balayage sur le gestionnaire de "
+"recouvrement. Cette opération est uniquement retournée quand le recouvrement "
+"est terminé. Cependant, si vous souhaitez obtenir un mode d'interaction "
+"asynchrone, alors l'interface du RecoveryScan est fournie :"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:188
+#, no-c-format
+msgid ""
+"public interface RecoveryScan\n"
+"{\n"
+"        public void completed ();\n"
+"}"
+msgstr ""
+"public interface RecoveryScan\n"
+"{\n"
+"        public void completed ();\n"
+"}"
+
+#. 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 ""
+"Une instance d'un objet qui supporte cette interface peut être passée dans "
+"l'opération de balayage et sa méthode sera appelée en fin de recouvrement. "
+"L'opération de balayage est retournée immédiatement cependant."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:195
+#, no-c-format
+msgid "Recovery Modules"
+msgstr "Les modules de recouvrement"
+
+#. 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 ""
+"Comme nous l'avons déjà expliqué, chaque module de recouvrement est utilisé "
+"pour recouvrir un type différent de transaction/ressource, mais chaque "
+"module de recouvrement doit implémenter l'interface de module de "
+"recouvrement suivant, qui détermine deux méthodes : "
+"<methodname>periodicWorkFirstPass</methodname> et "
+"<methodname>periodicWorkSecondPass</methodname> invoquées par le "
+"gestionnaire de recouvrement."
+
+#. 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 ""
+"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"
+"}"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:201
+#, no-c-format
+msgid "JBossTS Recovery Module Classes"
+msgstr "Classes des modules de recouvrement JBossTS"
+
+#. 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 ""
+"JBossTS fournit un ensemble de modules de recouvrement qui sont conçus pour "
+"gérer le processus de recouvrement en fonction de la nature des participants "
+"et de leur position dans l'arborescence transactionnelle. Les classes "
+"fournies (qui implémentent toutes l'interface <interfacename>RecoveryModule</"
+"interfacename>) sont :"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:209
+#, no-c-format
+msgid "com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"
+msgstr "com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:210
+#, no-c-format
+msgid "Recovers AtomicAction transactions."
+msgstr "Recouvrement des transactions AtomicAction."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:217
+#, no-c-format
+msgid "com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"
+msgstr "com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:218
+#, no-c-format
+msgid "Recovers Transactional Objects for Java."
+msgstr "Recouvre les objets transactionnels pour Java."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:225
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions.TransactionRecoveryModule"
+msgstr ""
+"com.arjuna.ats.internal.jts.recovery.transactions.TransactionRecoveryModule"
+
+#. 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 ""
+"Recouvre les transactions JTS. Il s'agit d'une classe générique dont les "
+"modules de recouvrement de transactions du serveur et du Toplevel (niveau "
+"supérieur) héritent respectivement."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:233
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"TopLevelTransactionRecoveryModule"
+msgstr ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"TopLevelTransactionRecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:234
+#, no-c-format
+msgid "Recovers JTS Toplevel Transactions."
+msgstr "Recouvre les transaction JTS Toplevel."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:241
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"ServerTransactionRecoveryModule"
+msgstr ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"ServerTransactionRecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:242
+#, no-c-format
+msgid "Recovers JTS Server Transactions."
+msgstr "Recouvre les transactions du serveur JTS."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:248
+#, 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 ""
+"Pour illustrer le comportement du module de recouvrement, le code pseudo "
+"suivant décrit l'algorithme de base qui est utilisé pour les transactions "
+"Atomic Action et les objets transactionnels Java."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:252
+#, no-c-format
+msgid "AtomicAction pseudo code"
+msgstr "Pseudo code AtomicAction"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:253
+#, no-c-format
+msgid "First Pass:"
+msgstr "Première étape/passe :"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:257
+#, 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 ""
+"&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."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:258
+#: Architecture_of_the_Recovery_Manager.xml:267
+#, no-c-format
+msgid "Second Pass:"
+msgstr "Seconde étape/passe :"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:261
+#, 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 ""
+"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."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:263
+#, no-c-format
+msgid "Transactional Object pseudo code"
+msgstr "Pseudo code d'objet transactionnel"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:264
+#, no-c-format
+msgid "First Pass"
+msgstr "Première étape/passe"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:266
+#, 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 ""
+"&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."
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:270
+#, 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 ""
+"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."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:272
+#, no-c-format
+msgid "A Recovery Module for XA Resources"
+msgstr "Module de recouvrement pour les ressources XA"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:273
+#, 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 ""
+"Pour gérer le recouvrement, nous avons vu dans les chapitres précédents que "
+"le gestionnaire de recouvrement déclenchait un processus de recouvrement en "
+"appelant un ensemble de modules de recouvrement qui implémentent les deux "
+"méthodes déterminées par l'interface de <interfacename>RecoveryModule</"
+"interfacename>."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:277
+#, 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 ""
+"Pour permettre le recouvrement des participants contrôlés par l'interface "
+"<interfacename>XA</interfacename>, un module de recouvrement spécial est "
+"fourni : XARecoveryModule. Le module XARecoveryModule, défini dans les "
+"paquetages <package>com.arjuna.ats.internal.jta.recovery.arjunacore</"
+"package> et <package>com.arjuna.ats.internal.jta.recovery.jts</package>, "
+"s'occupe du recouvrement des ressources <interfacename>XA</interfacename> "
+"(comme par exemple, des bases de données) utilisées par JTA."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:281
+#, 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 ""
+"JBossTS prend en charge deux implémentations JTA : une version purement "
+"locale (pas de transactions distribuées) et une version stratifiée dans le "
+"JTS. Pour cette dernière, le recouvrement est simple. Pour la discussion qui "
+"suit, nous considérerons implicitement l'implémentation JTS."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:285
+#, 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 ""
+"On peut considérer deux aspects pour son comportement : le recouvrement "
+"<emphasis>transaction-initiated</emphasis> (induit-transaction) et le "
+"recouvrement <emphasis>resource-initiated</emphasis> (induit-ressource). Le "
+"recouvrement qui est induit par la transaction est possible quand la branche "
+"précise de transaction a suffisamment progressé pour que l'enregistrement de "
+"la ressource JTA soit inscrite dans l'ObjectStore, comme illustré dans le "
+"Schéma 2."
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:292
+#, no-c-format
+msgid "JTA/JDBC information stored in the ObjectStore"
+msgstr "Informations JTA/JDBC stockées dans l'ObjectStore"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:294
+#, 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 ""
+"Un enregistrement d'une ressource JTA contient l'information nécessaire pour "
+"lier la transaction, telle qu'elle est connue dans le reste de JBossTS, à la "
+"base de données. Le recouvrement induit-ressource est utile pour les "
+"branches quand on est en situation d'échec après que la base de données ait "
+"fait un enregistrement persistant de la transaction, mais avant que le JTA "
+"ResourceRecord n'ait été persisté. Le recouvrement initié-ressource est "
+"également utile aux sources de données pour lesquelles il n'est pas possible "
+"de détenir des informations dans le journal d'enregistrement des ressources "
+"JTA, ce qui aurait pu permettre la recréation dans le RecoveryManager du "
+"XAConnection/XAResource utilisé dans l'application d'origine."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:298
+#, 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 ""
+"Quand on exécute le recouvrement XA, il est important de préciser à JBossTS "
+"quels types de Xid il peut recouvrir. Chaque Xid créé par JBossTS comprend "
+"un identifiant de noeud unique encodé et JBossTS ne recouvrira que des "
+"transactions et des états qui correspondent à un identifiant de noeud "
+"spécifique. L'identifiant de noeud à utiliser devrait être fourni par "
+"JBossTS par une propriété qui commence par le nom <property>com.arjuna.ats."
+"jta.xaRecoveryNode</property>. Il est possible que des valeurs multiples "
+"soient fournies. Une valeur pour ‘*’ forcera JBossTS à recouvrir (et "
+"potentiellement reprendre) toutes les transactions quel que soit leur "
+"identifiant de noeud et devra être utilisée avec soin. Les contenus de "
+"<property>com.arjuna.ats.jta.xaRecoveryNode</property> devront être "
+"alphanumériques et correspondre aux valeurs de <property>com.arjuna.ats."
+"arjuna.xa.nodeIdentifier</property>."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:302
+#, 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 ""
+"Le recouvrement initié-transaction est automatique. Le module "
+"XARecoveryModule cherche l'enregistrement de la ressource JTA qui a besoin "
+"d'être recouverte, puis il utilise les mécanismes habituels de recouvrement "
+"pour trouver le statut de la transaction dans laquelle il était impliqué "
+"(ainsi, il appelle replay_completion sur le RecoverCoordinator pour la "
+"branche de transaction), (re)crée les XAResource qui conviennent, et lance "
+"des validations ou reprises selon les cas. La création de XAResource "
+"utilisera les mêmes information, nom de base de données, nom d'utilisateur, "
+"mot de passe etc., que l'application d'origine."
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:309
+#, no-c-format
+msgid "Transaction-Initiated Recovery and XA Recovery"
+msgstr "Recouvrement initié-transaction et recouvrement XA"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:311
+#, 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 ""
+"Le recouvrement initié-ressource doit être spécialement configuré, en "
+"procurant au gestionnaire de recouvrement l'information qui convient pour "
+"interroger toutes les bases de données (XADataSources) auxquelles n'importe "
+"quelle application JBossTS a pu avoir accès. L'accès à chaque XADataSource "
+"est dirigé par une classe qui implémente l'interface <interfacename>com."
+"arjuna.ats.jta.recovery.XAResourceRecovery</interfacename>, comme illustré "
+"dans le Schéma 4. Les instances de classes qui implémentent l'interface "
+"XAResourceRecovery sont chargées dynamiquement, et sont contrôlées par les "
+"propriétés dont les noms commencent par <property>com.arjuna.ats.jta."
+"recovery.XAResourceRecovery</property>."
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:318
+#, no-c-format
+msgid "Resource-initiated recovery and XA Recovery"
+msgstr "Recouvrement initié-ressource et recouvrement XA"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:321
+#, 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 ""
+"<interfacename>XAConnectionRecovery</interfacename> de JBossTS 3.3 a été "
+"déprécié au détriment de <interfacename>XAResourceRecovery</interfacename>. "
+"Malgré que l'ancienne interface existe toujours, les utilisateurs sont "
+"encouragés à migrer vers la nouvelles interface."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:325
+#, 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 ""
+"Le module XARecoveryModule utilisera l'implémentation XAResourceRecovery "
+"pour obtenir une XAResource de la source de données ciblée. Pour chaque "
+"invocation de periodicWorkSecondPass, le module de recouvrement lancera une "
+"demande de XAResource.recover - qui retournera (comme décrit dans les "
+"spécifications XA) une liste des identifiants (Xid) de transaction connus "
+"par la source de données et qui sont dans un état indéterminé (douteux). La "
+"liste de ces Xid douteux reçus par étapes successives (c.-à-d. "
+"periodicWorkSecondPass-es) est comparée. Tout Xid qui apparaît sur les deux "
+"listes, et pour lesquels le recouvrement induit-transaction en cours ne "
+"trouve pas d'enregistrement JTA ResourceRecord, est sensé appartenir à une "
+"transaction qui a été impliquée dans un crash avant que le JTA "
+"ResourceRecord n'ait été rédigé, et un rollback est émis sur le XAResource "
+"pour cette transaction."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:328
+#, 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 ""
+"Ce mécanisme de double-balayage est utilisé car il est possible que le Xid "
+"ait été obtenu en provenance de la source de données juste au moment où le "
+"processus d'application d'origine devait créer le JTA_ResourceRecord "
+"correspondant. L'intervalle entre les balayages devrait procurer "
+"suffisamment de temps pour l'enregistrement à moins d'un plantage (et dans "
+"ce cas, rollback est la solution)."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:331
+#, 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 ""
+"Une classe d'implémentation <classname>XAResourceRecovery</classname> peut "
+"être rédigée de façon à contenir toutes les informations nécessaires pour "
+"procéder au recouvrement de certaines sources de données. Sinon, une simple "
+"classe peut gérer plusieurs sources de données. Le constructeur de la classe "
+"d'implémentation doit avoir une liste de paramètre vierge (car elle est "
+"chargée de façon dynamique), mais l'interface comprend une méthode "
+"d'initialisation qui passe toute information supplémentaire sous forme de "
+"chaîne. Le contenu de la chaîne provient de la valeur de la propriété qui "
+"fournit le nom de classe: tout ce qui suit le point-virgule correspond à la "
+"valeur de la chaîne. L'utilisation qui en est faite est déterminée par la "
+"classe d'implémentation de <classname>XAResourceRecovery</classname>."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:334
+#, 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 ""
+"Pour obtenir davantage de détails sur la façon d'implémenter une classe qui "
+"implémente l'interface <interfacename>XAResourceRecovery</interfacename>, se "
+"réferrer au chapitre JDBC du Guide de programmation JTA. Il est fourni une "
+"classe d'implémentation qui prend en charge le recouvrement induit-resource "
+"pour n'importe quelle XADataSource. Cette classe pourrait être utilisée "
+"comme modèle pour construire votre propre classe d'implémentation."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:338
+#, no-c-format
+msgid "Assumed complete"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:339
+#, no-c-format
+msgid ""
+"If a failure occurs in the transaction environment after the transaction "
+"coordinator had told the XAResource to commit but before the transaction log "
+"has been updated to remove the participant, then recovery will attempt to "
+"replay the commit. In the case of a Serialized XAResource, the response from "
+"the XAResource will enable the participant to be removed from the log, which "
+"will eventually be deleted when all participants have been committed. "
+"However, if the XAResource is not recoverable then it is extremely unlikely "
+"that any <interfacename>XAResourceRecovery</interfacename> instance will be "
+"able to provide the recovery sub-system with a fresh XAResource to use in "
+"order to attempt recovery; in which case recovery will continually fail and "
+"the log entry will never be removed."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:343
+#, no-c-format
+msgid "There are two possible solutions to this problem:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:348
+#, no-c-format
+msgid ""
+"Rely on the relevant ExpiryScanner to eventually move the log elsewhere. "
+"Manual intervention will then be needed to ensure the log can be safely "
+"deleted. If a log entry is moved, suitable warning messages will be output."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:353
+#, no-c-format
+msgid ""
+"Set <property>com.arjuna.ats.jta.xaAssumeRecoveryComplete</property> to "
+"true. This option is checked whenever a new XAResource instance cannot be "
+"located from any registered <interfacename>XAResourceRecovery</"
+"interfacename> instance. If false (the default), recovery assumes that there "
+"is a transient problem with the <interfacename>XAResourceRecovery</"
+"interfacename> instances (for example, not all have been registered with the "
+"sub-system) and will attempt recovery periodically. If true then recovery "
+"assumes that a previous commit attempt succeeded and this instance can be "
+"removed from the log with no further recovery attempts. This option is "
+"global, so needs to be used with care since if used incorrectly, XAResource "
+"instances may remain in an uncommitted state."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:359
+#, no-c-format
+msgid "Writing a Recovery Module"
+msgstr "Rédiger un module de recouvrement"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:360
+#, 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 ""
+"Pour pouvoir recouvrir suite à un échec, on a pu voir que le gestionnaire de "
+"recouvrement contacte les modules de recouvrement en invoquant "
+"périodiquement les méthodes <methodname>periodicWorkFirstPass</methodname> "
+"et <methodname>periodicWorkSecondPass</methodname>. Chaque module de "
+"recouvrement est alors capable de gérer le recouvrement suivant le type de "
+"ressources qui ont besoin d'être recouvrées. Le produit JBoss Transaction "
+"est présenté avec un ensemble de modules de recouvrement (TOReceveryModule, "
+"XARecoveryModule…), mais il est possible pour un utilisateur de définir leur "
+"propre module de recouvrement qui correspond à leur application. L'exemple "
+"de base suivant illustre les étapes nécessaires pour mettre en place un tel "
+"module de recouvrement."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:363
+#, no-c-format
+msgid "A basic scenario"
+msgstr "Un scénario de base"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:364
+#, 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 ""
+"Cet exemple de base n'a pas pour but de présenter un processus complet de "
+"recouvrement, mais surtout d'illustrer la façon d'implémenter un module de "
+"recouvrement."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:366
+#, 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 ""
+"L'application utilisée ici consiste à créer une transaction atomique, "
+"d'enregistrer un participant au sein d'une transaction créée et finalement "
+"de la terminer soit en la validant, soit en l'abandonnant. Voici l'ensemble "
+"des arguments fournis :"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:371
+#, no-c-format
+msgid "to decide to commit or abort the transaction,"
+msgstr "pour décider de valider ou d'abandonner une transaction,"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:376
+#, no-c-format
+msgid "to decide generating a crash during the commitment process."
+msgstr ""
+"pour décider de générer un plantage pendant le processus de validation."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:381
+#, no-c-format
+msgid "The code of the main class that control the application is given below"
+msgstr ""
+"Le code de la classe principale qui contrôle l'application est donnée ci-"
+"dessous"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:384
+#, 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 ""
+"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"
+"}"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:385
+#, no-c-format
+msgid "The registered participant has the following behavior:"
+msgstr "Le participant enregistré a le comportement suivant :"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:390
+#, 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 ""
+"Pendant la phase de préparation, il écrit un simple message - <emphasis>Je "
+"suis préparé</emphasis>- sur le disque de façon à ce que le message soit "
+"inscrit dans un fichier bien connu."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:395
+#, 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 ""
+"Pendant la phase de validation, il écrit un autre message <emphasis>Je suis "
+"prêt</emphasis>- dans le même fichier que celui qui a été utilisé pendant la "
+"phase de préparation."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:400
+#, no-c-format
+msgid ""
+"If it receives an abort message, it removes from the disk the file used for "
+"prepare if any."
+msgstr ""
+"S'il reçoit un message d'abandon, il retire du disque le fichier utilisé "
+"pour la préparation, s'il existe."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:405
+#, 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 ""
+"Si on a envisagé un plantage pour le test, alors ce plantage aura lieu "
+"pendant l'étape de validation - le fichier conserve le même message "
+"<emphasis>Je suis préparé</emphasis>."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:410
+#, no-c-format
+msgid ""
+"The main portion of the code illustrating such behavior is described "
+"hereafter."
+msgstr ""
+"La portion principale du code illustrant un tel comportement est décrit ci-"
+"dessous."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:414
+#, fuzzy, no-c-format
+msgid ""
+"The location specified as the value for the variable <varname>filename</"
+"varname> can be altered."
+msgstr ""
+"On peut changer la location du fichier donné avec des noms de fichiers divers"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:418
+#, 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 ""
+"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"
+"}"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:419
+#, 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 ""
+"Le rôle du module de recouvrement dans de telles applications est de lire le "
+"contenu du fichier utilisé pour stocker le statut du participant, pour "
+"déterminer ce statut et imprimer un message qui indique si une action de "
+"recouvrement est nécessaire ou non."
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:422
+#, 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 ""
+"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"
+"}"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:423
+#, 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 ""
+"Le module de recouvrement doit maintenant être déployé pour être appelé par "
+"le gestionnaire de recouvrement. Pour cela, on a juste besoin d'ajouter une "
+"entrée dans le <filename>RecoveryManager-properties.xml</filename> en "
+"ajoutant une nouvelle propriété ainsi :"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:426
+#, 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 ""
+"&lt;property\n"
+"                 name=\"com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;"
+"i&gt;\"\n"
+"        value=\"com.arjuna.demo.recoverymodule.SimpleRecoveryModule\"/&gt;"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:427
+#, 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 ""
+"Quand &lt;i&gt; représente le nouveau numéro de l'occurence qui suit celle "
+"qui est déjà présente dans le fichier, le gestionnaire de recouvrement devra "
+"automatiquement charger le module de recouvrement qui a été ajouté, dès "
+"qu'il est activé."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:431
+#, no-c-format
+msgid ""
+"The source of the code can be retrieved under the trailmap directory of the "
+"JBossTS installation."
+msgstr ""
+"La source du code peut être retirée sous le répertoire du trailmap de "
+"l'installation JBossTS."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:436
+#, no-c-format
+msgid "Another scenario"
+msgstr "Un autre scénario"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:437
+#, 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 ""
+"Comme mentionné, l'application de base présentée ci-dessus ne montre pas le "
+"processus complet de recouvrement après un échec, mais elle a été juste "
+"présentée pour décrire comment construire un module de recouvrement. Dans le "
+"cas du protocole OTS, considérons comment un module de recouvrement qui gère "
+"le recouvrement des ressources OTS peut être configuré."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:441
+#, 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 ""
+"Pour gérer le recouvrement en cas d'échec, la spécification OTS a défini un "
+"protocole de recouvrement. Les participants à la transaction qui sont en "
+"statut douteux pourraient utiliser le RecoveyCoordinator pour déterminer le "
+"statut de la transaction. Suivant le statut de cette transaction, ces "
+"participants peuvent prendre la décision qui convient, le rejet ou la "
+"validation. Demander au RecoveryCoordinator de déterminer le statut consiste "
+"à invoquer l'opération replay_completion sur le RecoveryCoordinator."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:444
+#, 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 ""
+"Pour chaque ressource OTS en statut douteux, on sait bien quel "
+"RecoveryCoordinator invoquer pour déterminer le statut de la transaction "
+"dans laquelle la Ressource est impliquée - c'est le RecoveryCoordinator "
+"retourné au cours du processus d'enregistrement de la Ressource. Quand on "
+"retire le RecoveryManager d'une resource, signifie qu'il a été stocké en "
+"plus des autres informations décrivant la ressource."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:447
+#, 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 ""
+"Un module de recouvrement dédié au recouvrement des Ressources OTS pourrait "
+"avoir le comportement suivant. Une fois invité par le gestionnaire de "
+"recouvrement au cours de la première étape, il extrait du disque la liste "
+"des ressources de statut douteux. Au cours de la deuxième étape, si les "
+"ressources qui avaient été retirées au cours de la première étape, sont "
+"toujours sur le disque, alors elles deviennent candidates au recouvrement. "
+"Ainsi, le module de recouvrement extrait le RecoveryCoordinator associé à "
+"chaque candidat et invoque l'opération replay_completion en fonction du "
+"statut de la transaction. Selon le statut retourné, une action appropriée "
+"sera prise (comme un rollback de la ressource si le statut est abandonné ou "
+"inactif)."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:452
+#, no-c-format
+msgid "TransactionStatusConnectionManager"
+msgstr "TransactionStatusConnectionManager"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:453
+#, 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 ""
+"L'objet TransactionStatusConnectionManager est utilisé par les modules de "
+"recouvrement pour extraire le statut des transactions et pour agir en tant "
+"que proxy pour les objets TransactionStatusManager. Il maintient une table "
+"d'objets TransactionStatusManager dans un processus d'application."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:456
+#, 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 ""
+"Le statut des transactions est extrait grâce aux méthodes "
+"getTransactionStatus, en utilisant un Uid de transaction et s'il est "
+"disponible, un type de transaction, comme paramètres. Le champ Uid du "
+"processus du paramètre Uid des transactions, est utilisé pour chercher la "
+"paire ciblée TransactionStatusManagerItem hôte/port dans l'Object Store. La "
+"paire hôte/port est utilisée pour créer une connexion TCP vers l'objet ciblé "
+"TransactionStatusManager par un objet TransactionStatusConnector. Le "
+"TransactionStatusConnector passe les Uid de transaction/types de transaction "
+"au TransactionStatusManager pour extraire le statut des transactions."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:461
+#, no-c-format
+msgid "Expired Scanner Thread"
+msgstr "Thread de scanner expiré"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:462
+#, 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 ""
+"Quand le gestionnaire de recouvrement initialise un thread de scanner expiré "
+"ExpiryEntryMonitor est créé pour retirer les éléments morts depuis longtemps "
+"de l'ObjectStore. Un nombre de modules de scanner sont chargés "
+"dynamiquement, retirant ainsi des éléments morts depuis longtemps pour un "
+"type particulier."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:465
+#, no-c-format
+msgid ""
+"Scanner modules are loaded at initialisation and are specified as properties "
+"beginning with"
+msgstr ""
+"Les modules du scanner sont chargés en cours d'initialisation et sont "
+"spécifiés en tant que propriétés commençant par"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:468
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScanner&lt;Scanner Name&gt;=&lt;Scanner "
+"Class&gt;"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.expiryScanner&lt;Scanner Name&gt;=&lt;Scanner "
+"Class&gt;"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:469
+#, 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 ""
+"Tous les modules du scanner sont appelés périodiquement pour chercher les "
+"éléments morts par le thread ExpiryEntryMonitor. Cette période est "
+"déterminée dans la propriété :"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:472
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.expiryScanInterval"
+msgstr "com.arjuna.ats.arjuna.recovery.expiryScanInterval"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:473
+#, no-c-format
+msgid ""
+"All scanners inherit the same behaviour from the java interface "
+"<interfacename>ExpiryScanner</interfacename> as illustrated in diagram below:"
+msgstr ""
+"Tous les scanners héritent du même comportement de l'interface java "
+"<interfacename>ExpiryScanner</interfacename> comme illustré dans le "
+"diagramme ci-dessous :"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:481
+#, 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 ""
+"Cette interface procure une méthode de balayage qui est implémentée par tous "
+"les modules du scanner: c'est la méthode qui est appelée par le thread du "
+"scanner."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:484
+#, 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 ""
+"Le ExpiredTransactionStatusManagerScanner retire les "
+"ExpiredTransactionStatusManagerScanner morts depuis longtemps de l'Object "
+"Store. Ces éléments demeureront dans l'Object Store pendant un long moment "
+"avant d'être effacés. Cette période est déterminée par la propriété :"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:487
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime"
+msgstr "com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:488
+#, no-c-format
+msgid "(default 12 hours)"
+msgstr "(12 heures par défaut)"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:493
+#, no-c-format
+msgid "Application Process"
+msgstr "Processus d'application"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:494
+#, 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 ""
+"Cela représente le programme transactionnel de l'utilisateur. Une table de "
+"transactions Locale (hash), qui est maintenue dans le processus "
+"d'application en cours, conserve la trace du statut courant de toutes les "
+"transactions créées par le processus de cette application. Le gestionnaire "
+"de recouvrement a besoin d'accéder aux tables de la transaction afin de "
+"déterminer si une transaction est toujours en progrès. Si la transaction est "
+"en cours, le recouvrement est impossible."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:497
+#, 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 ""
+"Les tables de la transaction sont accessibles via l'objet "
+"TransactionStatusManager. Au moment de l'initialisation du programme de "
+"l'application, la paire hôte/port, qui représente le "
+"TransactionStatusManager est inscrite dans l'Object Store dans la partie '../"
+"Recovery/TransactionStatusManager’ de la hiérarchie du fichier d'Object "
+"Store et est identifiée par l'Uid de processus de l'application."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:500
+#, 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 ""
+"Le gestionnaire de recouvrement utilise l'objet "
+"TransactionStatusConnectionManager pour retirer le statut d'une transaction "
+"et un objet TransactionStatusConnector est utilisé pour faire une connexion "
+"TCP avec le TransactionStatusManager."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:505
+#, no-c-format
+msgid "TransactionStatusManager"
+msgstr "TransactionStatusManager"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:506
+#, 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 ""
+"L'objet agit comme interface pour le gestionnaire de recouvrement en vue "
+"d'obtenir le statut de transactions en exécutant les processus "
+"d'applications HPTS. Un TransactionStatusManager est créé par processus "
+"d'application par la classe com.arjuna.ats.arjuna.coordinator.InitAction.. "
+"Actuellement, une connexion tcp est utilisée pour la communication entre "
+"RecoveryManager et TransactionStatusManager. N'importe quel port libre est "
+"utilisé par le TransactionStatusManager par défaut. Cependant, le port peut "
+"être déterminé par la propriété :"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:509
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort"
+msgstr "com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:510
+#, 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 ""
+"Au moment de la création, le TransactionStatusManager obtient un port qu'il "
+"stocke avec l'hôte dans l'Object Store comme une "
+"TransactionStatusManagerItem. Un thread de Listener est démarré aux aguets "
+"d'une demande de connexion venant d'un TransactionStatusConnector. Quand une "
+"connexion est établie, un thread de connexion est créé pour exécuter un "
+"Service (AtomicActionStatusService) qui accepte un Uid de transaction et un "
+"type de transaction (si disponible) à partir d'un "
+"TransactionStatusConnector. Le statut de la transaction est obtenu à partir "
+"de la table de la transaction locale et est retournée au "
+"TransactionStatusConnector."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:515
+#, no-c-format
+msgid "Object Store"
+msgstr "Object Store"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:516
+#, 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 ""
+"Tous les objets sont stockée dans le chemin d'accès d'un fichier qui est "
+"équivalent à l'héritage de leur classe. Ainsi, les transactions AtomicAction "
+"sont stockées dans le fichier path ../StateManager/BasicAction/AtomicAction."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:519
+#, 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 ""
+"Tous les objets sont identifiés par un identifiant Uid unique, dont l'une "
+"des valeurs est celle de l'id d'un processus dans lequel l'objet a été créé. "
+"Le RecoverManager utilise l'id du processus pour localiser les éléments du "
+"manager des statuts de transactions, lorsqu'il contacte le processus "
+"d'application d'origine pour l'interroger sur le statut de la transaction."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:524
+#, no-c-format
+msgid "Stock free operation"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:525
+#, no-c-format
+msgid ""
+"The use of TCP/IP sockets for TransactionStatusManager and RecoveryManager "
+"provides for maximum flexibility in the deployment architecture. It is often "
+"desirable to run the RecoveryManager in a separate JVM from the Transaction "
+"manager(s) for increased reliability. In such deployments, TCP/IP provides "
+"for communication between the RecoveryManager and transaction manager(s), as "
+"detailed in the preceding sections. Specifically, each JVM hosting a "
+"TransactionManager will run a TransactionStatusManager listener, through "
+"which the RecoveryManager can contact it to determine if a transaction is "
+"still live or not. The RecoveryManager likewise listens on a socket, through "
+"which it can be contacted to perform recovery scans on demand. The presence "
+"of a recovery listener is also used as a safety check when starting a "
+"RecoveryManager, since at most one should be running for a given ObjectStore."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:528
+#, no-c-format
+msgid ""
+"There are some deployment scenarios in which there is only a single "
+"TransactionManager accessing the ObjectStore and the RecoveryManager is co-"
+"located in the same JVM. For such cases the use of TCP/IP sockets for "
+"communication introduces unnecessary runtime overhead. Additionally, if "
+"several such distinct processes are needed for e.g. replication or "
+"clustering, management of the TCP/IP port allocation can become unwieldy. "
+"Therefore it may be desirable to configure for socketless recovery operation."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:531
+#, no-c-format
+msgid ""
+"The property <property>com.arjuna.ats.arjuna.coordinator."
+"transactionStatusManagerEnable</property> can be set to a value of "
+"<literal>NO</literal> to disable the TransactionStatusManager for any given "
+"TransactionManager. Note that this must not be done if recovery runs in a "
+"separate process, as it may lead to incorrect recovery behavior in such "
+"cases. For an in-process recovery manager, the system will use direct access "
+"to the ActionStatusService instead."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:534
+#, no-c-format
+msgid ""
+"The property <property>com.arjuna.ats.arjuna.recovery.recoveryListener</"
+"property> can likewise be used to disable the TCP/IP socket listener used by "
+"the recovery manager. Care must be taken not to inadvertently start multiple "
+"recovery managers for the same ObjectStore, as this error, which may lead to "
+"significant crash recovery problems, cannot be automatically detected and "
+"prevented without the benefit of the socket listener."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/Author_Group.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,23 @@
+# translation of Preface.po to French
+# Language fr-FR translations for  package.
+#
+# Automatically generated, 2008.
+# Corina Roe <croe at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-10-23 15:05+1000\n"
+"Last-Translator: Corina Roe <croe at redhat.com>\n"
+"Language-Team: French <i18 at redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: author
+#: Author_Group.xml:6
+#, fuzzy, no-c-format
+msgid "<firstname>Red Hat Documentation Group</firstname> <surname></surname>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/Book_Info.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,51 @@
+# translation of Preface.po to French
+# Language fr-FR translations for  package.
+#
+# Automatically generated, 2008.
+# Corina Roe <croe at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-10-23 15:05+1000\n"
+"Last-Translator: Corina Roe <croe at redhat.com>\n"
+"Language-Team: French <i18 at redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Failure Recovery Guide"
+msgstr "Guide de recouvrement des transactions JBoss"
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, fuzzy, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 5.0"
+msgstr "à utiliser avec JBoss Enterprise Application Platform 4.3"
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss "
+"Transactions Failure Recovery Guide"
+msgstr ""
+"Cet ouvrage est l'édition Enterprise Application Platform du guide de "
+"recouvrement d'applications JBoss"
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr "Logo"
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/How_JBossTS_managers_the_OTS_Recovery_Protocol.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/How_JBossTS_managers_the_OTS_Recovery_Protocol.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/How_JBossTS_managers_the_OTS_Recovery_Protocol.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,592 @@
+# translation of Preface.po to French
+# Language fr-FR translations for  package.
+#
+# Automatically generated, 2008.
+# Corina Roe <croe at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-10-23 15:05+1000\n"
+"Last-Translator: Corina Roe <croe at redhat.com>\n"
+"Language-Team: French <i18 at redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:6
+#, no-c-format
+msgid "How JBossTS manages the OTS Recovery Protocol"
+msgstr "Comment JBossTS gère le Protocol de recouvrement OTS"
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:10
+#, no-c-format
+msgid "Recovery Protocol in OTS-Overview"
+msgstr "Protocol de recouvrement dans OTS- Aperçu général"
+
+#. 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 ""
+"Pour gérer le recouvrement en cas d'échec, la spécification OTS définit un "
+"protocole de recouvrement. Les participants à la transaction face à un "
+"statut douteux, peuvent utiliser le RecoveryCoordinator pour déterminer le "
+"statut de la transaction. En fonction de ce statut de transaction, ces "
+"participants peuvent prendre les décisions qui conviennent, c'est à dire "
+"soit annuler/ou tenter un nouveau passage, soit valider. "
+
+#. 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 ""
+"On obtient un retour du RecoveryCoordinator si on a bien réussi à appeler "
+"register_resource sur le Coordinateur de transactions. Cet objet, qui est "
+"implicitement associé à une seule Ressource, peut être utilisé pour conduire "
+"Ressource à travers des procédures de recouvrement en cas d'échec en cours "
+"de transaction."
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:21
+#, no-c-format
+msgid "Resource and RecoveryCoordinator relationship."
+msgstr "Relation entre Ressources et RecoveryCoordinator."
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:26
+#, no-c-format
+msgid "RecoveryCoordinator in JBossTS"
+msgstr "RecoveryCoordinator dans JBossTS"
+
+#. 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 ""
+"Pour chaque enregistrement de ressource, on espère créer un Objet "
+"RecoveryCoordinator et de le retourner vers l'application qui a appelé "
+"l'opération register_resource. Derrière chaque objet CORBA, on devrait "
+"trouver une implémentation d'objet ou un objet Servant, en termes POA, qui "
+"performe des opérations effectuées par un objet RecoveryCoordinator. Au lieu "
+"de créer un objet RecoveryCoordinator associé à un servant sur chaque "
+"register_resource, JBossTS améliore la performance en évitant la création de "
+"servants, mais il compte sur un objet RecoveryCoordinator par défaut associé "
+"à un servant par défaut pour gérer toutes les invocations replay_completion."
+
+#. 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 ""
+"Dans les sections suivantes, nous donnons tout d'abord un aperçu général de "
+"l'architecture du Portable Object Adapter, puis nous décrivons comment cette "
+"architecture est utilisée pour fournir à RecoveryCoordinator création avec "
+"optimisation, comme expliqué ci-dessus."
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:34
+#, no-c-format
+msgid "Understanding POA"
+msgstr "Comprendre POA"
+
+#. 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 ""
+"Simplement, Portable Object Adapter, ou POA est un objet qui intercepte la "
+"demande d'un client et qui identifie l'objet qui répond à cette demande. "
+"L'Objet est alors appelé et la réponse retourne vers le client."
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:43
+#, no-c-format
+msgid "Overview of the POA."
+msgstr "Aperçu du POA."
+
+#. 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 ""
+"L'objet qui traite la demande du client est considéré comme un Servant, qui "
+"procure l'implémentation de l'objet CORBA demandé par le client. Un Servant "
+"procure l'implémentation pour une ou plusieurs références objet CORBA. Pour "
+"extraire un Servant, chaque POA maintient une Active Object Map qui "
+"configure tous les objets qui ont été activés comme servant dans le POA. "
+"Pour chaque nouvelle demande, le POA cherche la référence de l'objet dans "
+"Active Object Map et tente de trouver quel servant en est responsable. S'il "
+"n'en trouve aucun, la demande est soit déléguée au Servant par défaut, ou "
+"bien on appelle un gestionnaire de Servants pour activer ou localiser un "
+"Servant par défaut. En plus de l'espace nom pour les objets identifiés par "
+"Ids Objets, un POA procure également un espace nom pour les POA. Un POA est "
+"créé en tant qu'enfant d'un POA existant, qui forme une hiérarchie avec pour "
+"racine POA."
+
+#. 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 ""
+"Chaque POA comprend un ensemble de politiques qui définissent ses "
+"caractéristiques. Lorsque vous créez un nouveau POA, l'ensemble des "
+"politiques par défaut peuvent être utilisées ou bien diverses valeurs "
+"peuvent être assignées suivant les besoins de l'application. La "
+"spécification POA détermine :"
+
+#. 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 ""
+"<emphasis>la Politique Thread:</emphasis> qui précise quel modèle de "
+"threading est utilisé par le POA. Les valeurs possibles sont :"
+
+#. 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 ""
+"ORB_CTRL_MODEL (défaut): Le POA est responsable d'assigner les demandes aux "
+"threads."
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:63
+#, no-c-format
+msgid "SINGLE_THREAD_MODEL: The POA processes requests sequentially"
+msgstr "SINGLE_THREAD_MODEL: Le POA traite les demandes par séquences"
+
+#. 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 ""
+"<emphasis>Lifespan policy:</emphasis> précise la durée de vie des objets "
+"implémentés dans le POA. La durée de vie de la politique peut avoir les "
+"valeurs suivantes :"
+
+#. 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 ""
+"TRANSIENT (Défaut) Les objets implémentés dans le POA ne peuvent pas "
+"survivre au processus dans lequel ils ont été créés. Une fois que le POA est "
+"désactivé, une exception OBJECT_NOT_EXIST surgit quand on tente d'utiliser "
+"toute référence d'objet générée par le POA."
+
+#. 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 ""
+"Les objets PERSISTANTS implémentés dans le POA peuvent survivre au processus "
+"dans lequel ils ont été créés."
+
+#. 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 ""
+"Politique d'Objet Unique ID : autorise à un simple servant d'être partagé "
+"par plusieurs objets abstraits. La politique d'Objet Unique ID peut avoir "
+"les valeurs suivantes :"
+
+#. 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 ""
+"UNIQUE_ID (Défaut): les servants activés ne supportent qu'une ID Objet."
+
+#. 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 ""
+"MULTIPLE_ID: les servants activés peuvent avoir une ou plusieurs ID Objet. "
+"L'ID Objet doit être déterminée au sein de la méthode appelée en cours "
+"d'exécution."
+
+#. 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 ""
+"La politique d'allocation d'ID : spécifie si les ID d'objets sont générés "
+"par les applications serveur ou par le POA. La politique d'allocation d'ID "
+"peut avoir les valeurs suivantes :"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:109
+#, no-c-format
+msgid "USER_ID is for persistent objects, and"
+msgstr "USER_ID pour les objets persistants, et"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:114
+#, no-c-format
+msgid "SYSTEM_ID is for transient objects."
+msgstr "SYSTEM_ID pour les objets transitoires."
+
+#. 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 ""
+"Politique de rétention de Servant: spécifie si le POA retient des Servants "
+"actifs dans Active Object Map. La politique de rétention de Servant peut "
+"avoir les valeurs suivantes :"
+
+#. 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 ""
+"RETAIN (Default) Le POA détecte les activations objet dans Active Object "
+"Map. RETAIN est normalement utilisé avec ServantActivators ou avec les "
+"méthodes d'activation explicites sur POA."
+
+#. 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 ""
+"NON_RETAIN Le POA ne retient pas les Servants actifs dans Active Object Map. "
+"NON_RETAIN est normalement utilisé avec ServantLocators."
+
+#. 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 ""
+"Politique de traitement des demandes: spécifie comment les demandes sont "
+"traitées par le POA."
+
+#. 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 ""
+"USE_ACTIVE_OBJECT_MAP (Défaut): si l'ID d'un Objet ne figure pas surActive "
+"Object Map, une exception OBJECT_NOT _EXIST est retournée. Le POA doit "
+"également utiliser la politique RETAIN (rétention) pour cette valeur."
+
+#. 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 ""
+"USE_DEFAULT_SERVANT: si l'ID d'un Objet ne figure pas sur la liste d'Active "
+"Object Map ou que la politique NON_RETAIN est activée, la demande est alors "
+"envoyée vers le Servant par défaut. Si aucun Servant par défaut n'a été "
+"enregistré, une exception OBJ_ADAPTER est retournée. Le POA doit également "
+"utiliser la politique MULTIPLE_ID pour cette valeur."
+
+#. 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 ""
+"USE_SERVANT_MANAGER: Si l'ID Objet ne figure pas sur la liste d'Active "
+"Object Map ou que la politique NON_RETAIN est fixée, le gestionnaire de "
+"Servants est utilisé pour obtenir un Servant."
+
+#. 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 ""
+"Politique d'activation implicite: spécifie si le POA supporte l'activation "
+"implicite des Servants. La politique d'activation implicite peut avoir les "
+"valeurs suivantes :"
+
+#. 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 ""
+"IMPLICIT_ACTIVATION: le POA prend en charge l'activation implicite des "
+"Servants. Les Servants peuvent être activés par conversion en référence "
+"objet grâce à <methodname>org.omg.PortableServer.POA.servant_to_reference()</"
+"methodname> ou en appelant <methodname>_this()</methodname> sur le Servant. "
+"Le POA doit également utiliser les politiques SYSTEM_ID et RETAIN avec cette "
+"valeur."
+
+#. 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 ""
+"NO_IMPLICIT_ACTIVATION (Défaut): Le POA ne prend pas en charge l'activation "
+"implicite de Servants."
+
+#. 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. JBossTS provides one servant "
+"per machine to perform replay_completion invocations. This servant is "
+"located in the RecoveryManager process. The RecoveryManager process is a "
+"separate process from the client and 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 ""
+"Il semble que pour rediriger les invocations de replay_completion vers un "
+"Servant par défaut, nous avons besoin de créer un POA lié à une politique de "
+"traitement des demandes, assignée à la valeur USE_DEFAUT_SERVANT. Cependant, "
+"pour atteindre cette valeur par défaut du Servant, nous devons tout d'abord "
+"atteindre le POA qui a transmis la demande au servant par défaut. Biensûr, "
+"l'ORB utilise un ensemble d'informations pour extraire un POA; ces "
+"informations sont contenues dans la référence de l'objet utilisée par le "
+"client. Parmi ces informations, on trouvera l'adresse IP et le numéro de "
+"port où se trouve le serveur et le nom du POA. JBossTS propose un servant "
+"par machine pour procéder aux invocations replay_completion. Ce servant se "
+"trouve dans le processus RecoverManager. Le processus RecoveryManager est un "
+"processus séparé des applications du serveur et du client. La prochaine "
+"section explique comment l'indirection vers un Servant par défaut, situé sur "
+"un processus séparé, est proposé avec ORBIX et JacORB."
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:282
+#, no-c-format
+msgid "The default RecoveryCoordinator in JacOrb"
+msgstr "Le RecoveryCoordinator par défaut dans JacOrb"
+
+#. 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 ""
+"JacORB ne détermine pas de politiques supplémentaires pour rediriger des "
+"demandes sur l'objet RecoveryManager vers un servant par défaut situé dans "
+"un processus RecoveryManager. Cependant, il procure un ensemble d'API qui "
+"permettent de construire des références d'objets associées à une adresse IP "
+"particulière, un numéro de port et un nom de POA pour pouvoir atteindre le "
+"servant par défaut qui convient."
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:287
+#, no-c-format
+msgid "How it works"
+msgstr "Comment cela fonctionne"
+
+#. 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 ""
+"Quand le gestionnaire de recouvrement est lancé, il recherche le "
+"RecoveryActivator qui a besoin d'être chargé dans la configuration. Une fois "
+"que c'est fait, il invoque la méthode <methodname>startRCservice</"
+"methodname> pour chacune des instances chargées. Comme nous l'avons vu dans "
+"le chapitre précédent (Gestionnaire de recouvrement) la classe à charger qui "
+"implémente l'interface <interfacename>RecoveryActivator</interfacename> est "
+"la classe <classname>RecoveryEnablement</classname>. Cette classe générique, "
+"située dans le paquetage <package>com.arjuna.ats.internal.jts.orbspecific."
+"recovery</package> cache la nature de l'ORB utilisé par l'application "
+"(JavORB). Le schéma suivant illustre le comportement du "
+"<interfacename>RecoveryActivator</interfacename> qui mène à la création du "
+"Servant par défaut qui performe les demandes d'invocation replay_completion. "
+
+#. 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 ""
+"En plus de la création du Servant par défaut, une référence objet vers un "
+"objet <code>RecoveryCoordinator</code> est créée et stockée dans "
+"ObjectStore. Comme nous le verrons, cette référence objet sera utilisée pour "
+"obtenir l'adresse IP, le nom de port, et le nom POA pour les assigner à "
+"n'importe quelle référence d'objet <code>RecoveryCoordinator</code> créée "
+"sur register_resource."
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:299
+#, no-c-format
+msgid ""
+"replay_completion invocation forwarded to the default RecoveryCoordinator."
+msgstr ""
+"l'invocation replay_completion envoyée au RecoveryCoordinator par défaut."
+
+#. 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 ""
+"Quand une application enregistre une ressource dans une transaction, une "
+"référence objet <code>RecoveryCoordinator</code> devrait être retournée. "
+"Pour construire cette référence d'objet, le service de transaction utilise "
+"la référence objet RecoveryCoordinator créée dans le gestionnaire de "
+"recouvrement comme modèle de saisie. La nouvelles référence d'objet comprend "
+"pratiquement les mêmes informations pour extraire le servant par défaut "
+"(adresse IP, numéro de port, nom de POA, etc.), mais l'ID de l'Objet est "
+"changée, maintenant, elle contient l'ID de la transaction en cours et l'ID "
+"du processus qui a créé la nouvelle référence de l'objet "
+"<code>RecoveryCoordinator</code> comme illustré ci-dessous."
+
+#. 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 ""
+"Enregistrement de la ressource et référence de l'objet RecoveryCoordinateur "
+"construits à partir d'une référence stockée dans l'ObjectStore."
+
+#. 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 ""
+"Comme une référence d'objet <code>RecoveryCoordinator</code> retournée vers "
+"une application contient toutes les information qu'il faut pour extraire le "
+"POA, le Servant par défaut, situé dans le gestionnaire de recouvrement, et "
+"toutes les invocation replay_completion de la machine, sont transmis à un "
+"<code>RecoveryCoordinator</code> unique capable d'extraire l'ID de l'objet "
+"des demandes pour en extraire l'identifiant de transaction et l'identifiant "
+"du processus nécessaires pour déterminer le statut de la transaction "
+"demandée."

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/JBoss_Transactions_Failure_Recovery_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/JBoss_Transactions_Failure_Recovery_Guide_CP06.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/Preface.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,23 @@
+# translation of Preface.po to French
+# Language fr-FR translations for  package.
+#
+# Automatically generated, 2008.
+# Corina Roe <croe at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-10-23 15:05+1000\n"
+"Last-Translator: Corina Roe <croe at redhat.com>\n"
+"Language-Team: French <i18 at redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr "Préface"

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/fr-FR/Revision_History.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,29 @@
+# translation of Preface.po to French
+# Language fr-FR translations for  package.
+#
+# Automatically generated, 2008.
+# Corina Roe <croe at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-10-23 15:05+1000\n"
+"Last-Translator: Corina Roe <croe at redhat.com>\n"
+"Language-Team: French <i18 at redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr "Historique de révision"
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"

Modified: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/Architecture_of_the_Recovery_Manager.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/Architecture_of_the_Recovery_Manager.po	2009-09-17 02:48:30 UTC (rev 29386)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/Architecture_of_the_Recovery_Manager.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -1,29 +1,32 @@
+# translation of Preface.po to Japanese
 # Language ja-JP translations for Transactions_Failure_Recovery_Guide package.
+#
 # Automatically generated, 2008.
-#
+# Junko Ito <junko.ito at rehdat.com>, 2008.
 msgid ""
 msgstr ""
-"Project-Id-Version: Transactions_Failure_Recovery_Guide 0.1\n"
+"Project-Id-Version: Preface\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"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-08-05 11:46+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
 #: Architecture_of_the_Recovery_Manager.xml:6
 #, no-c-format
 msgid "Architecture of the Recovery Manager"
-msgstr ""
+msgstr "Recovery Manager のアーキテクチャ"
 
 #. Tag: title
 #: Architecture_of_the_Recovery_Manager.xml:8
 #, no-c-format
 msgid "Crash Recovery Overview"
-msgstr ""
+msgstr "クラッシュリカバリの概要"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:9
@@ -32,6 +35,7 @@
 "The main architectural components within Crash Recovery are illustrated in "
 "the diagram below:"
 msgstr ""
+"下図は、Crash Recovery 内の主なアーキテクチャのコンポーネントを表しています。"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:17
@@ -45,12 +49,19 @@
 "transaction this data is removed, however if the transaction fails then this "
 "data remains within the Object Store."
 msgstr ""
+"Recovery Manager とは、クラッシュリカバリを実行するデーモンプロセスのことで"
+"す。ノードごとに 1 つの Recovery Manager のみが実行されます。Object Store "
+"は、データのログを記録するため、トランザクションに対して永続データストレージ"
+"を提供します。通常のトランザクションプロセスでは、各トランザクションがコミッ"
+"ト段階で必要な永続データを Object Store にログします。トランザクションが無事"
+"コミットされると、このデータは削除されますが、トランザクションが失敗すると、"
+"このデータは Object Store 内に保持されます。"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:20
 #, no-c-format
 msgid "The Recovery Manager functions by:"
-msgstr ""
+msgstr "Recovery Manager は下記によって機能します:"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:25
@@ -61,6 +72,9 @@
 "a period of time that the transaction would have normally been expected to "
 "finish."
 msgstr ""
+"失敗したトランザクションがないか Object Store を定期的にスキャンします。トラ"
+"ンザクションが通常終了する時間の後にログデータが存在する場合、トランザクショ"
+"ンが失敗したことを示しています。"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:30
@@ -69,6 +83,8 @@
 "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
@@ -77,6 +93,8 @@
 "Recovering the transaction by re-activating the transaction and then "
 "replaying phase two of the commit protocol."
 msgstr ""
+"トランザクションを再度アクティブにしてから、コミットプロトコルのフェーズ 2 を"
+"再生し、トランザクションをリカバリします。"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:40
@@ -84,12 +102,13 @@
 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 ""
+msgstr "リカバリマネージャ"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:47
@@ -99,6 +118,9 @@
 "information via a properties file. This configuration includes a number of "
 "recovery activators and recovery modules, which are then dynamically loaded."
 msgstr ""
+"初期化の際、Recovery Manager は最初に設定情報をプロパティファイルよりロードし"
+"ます。この設定には、動的にロードされるリカバリアクティベータの数やリカバリモ"
+"ジュールの数が含まれています。"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:50
@@ -115,6 +137,15 @@
 "create a RecoveryCoordinator object able to respond to the replay_completion "
 "operation."
 msgstr ""
+"JBossTS バージョン3.0 より、Recovery Manager は Object Request Broker (ORB) "
+"には明確に拘束されなくなりました。そのため、OTS リカバリプロトコルは暗黙的に"
+"有効になっていません。このプロトコルを有効にするには、"
+"<interfacename>RecoveryActivator</interfacename> インターフェイスで定義される"
+"リカバリアクティベータの概念を使用します。<interfacename>RecoveryActivator</"
+"interfacename> は基礎の通信プロトコルに関係するリカバリクラスをインスタンス化"
+"します。例えば、<interfacename>RecoveryActivitor</interfacename> を OTS と使"
+"用すると、replay_completion 操作に応答できる RecoveryCoordinator オブジェクト"
+"を作成します。"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:53
@@ -124,6 +155,10 @@
 "same interface. They are loaded via the following recovery extension "
 "property:"
 msgstr ""
+"すべての <interfacename>RecoveryActivator</interfacename> インスタンスは同じ"
+"インターフェイスを継承します。<interfacename>RecoveryActivator</"
+"interfacename> インスタンスは、次のリカバリ拡張プロパティによってロードされま"
+"す。"
 
 #. Tag: screen
 #: Architecture_of_the_Recovery_Manager.xml:56
@@ -133,6 +168,9 @@
 "                   name=\"com.arjuna.ats.arjuna.recovery."
 "recoveryActivator_&lt;number&gt;\" value=\"RecoveryClass\" /&gt;"
 msgstr ""
+"&lt;property  \n"
+"                   name=\"com.arjuna.ats.arjuna.recovery."
+"recoveryActivator_&lt;number&gt;\" value=\"RecoveryClass\" /&gt;"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:57
@@ -141,6 +179,8 @@
 "For instance the <interfacename>RecoveryActivator</interfacename> provided "
 "in the distribution of JTS/OTS, which shall not be commented, is as follow:"
 msgstr ""
+"例えば、コメントされない JTS/OTS のディストリビューション内で提供される "
+"<interfacename>RecoveryActivator</interfacename> は次のようになります。"
 
 #. Tag: screen
 #: Architecture_of_the_Recovery_Manager.xml:60
@@ -150,6 +190,9 @@
 "        name=\"com.arjuna.ats.arjuna.recovery.recoveryActivator_1\" value="
 "\"com.arjuna.ats.internal.jts.orbspecific.recovery.RecoveryEnablement/&gt;"
 msgstr ""
+"&lt;property \n"
+"        name=\"com.arjuna.ats.arjuna.recovery.recoveryActivator_1\" value="
+"\"com.arjuna.ats.internal.jts.orbspecific.recovery.RecoveryEnablement/&gt;"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:61
@@ -161,6 +204,12 @@
 "to receive recovery requests according to a particular transaction protocol. "
 "For instance the RecoveryCoordinator defined by the OTS protocol."
 msgstr ""
+"すべての <interfacename>RecoveryActivator</interfacename> インスタンスがロー"
+"ドされると、<methodname>startRCservice</methodname> メソッドを提供します。"
+"<methodname>startRCservice</methodname> メソッドは、Recovery Manager により呼"
+"び出され、特定のトランザクションプロトコルに基づいてリカバリ要求を受信できる "
+"Recovery Component を作成するために使用されます。RecoveryCoordinator は OTS "
+"プロトコルによって定義されます。"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:64
@@ -169,6 +218,8 @@
 "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
@@ -182,6 +233,13 @@
 "of the first pass is the recovery period. The recovery period is larger than "
 "the backoff period."
 msgstr ""
+"リカバリは、2 つのタイムアウト期間によって分けられた 2 つの受け渡し (pass) /"
+"フェーズによって構成されます。最初の受け渡しは、失敗した可能性があるトランザ"
+"クションがあるか判断するため、オブジェクトストアを調べます。2 番目の受け渡し"
+"は失敗したトランザクションに対してクラッシュリカバリを実行します。最初の受け"
+"渡しと 2 番目の受け渡しの間に生じるタイムアウトはバックオフ期間と呼ばれ、2 番"
+"目の受け渡しの終了時と最初の受け渡しの開始時の間に生じるタイムアウトはリカバ"
+"リ期間と呼ばれます。リカバリ期間はバックオフ期間よりも長くなります。"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:70
@@ -192,6 +250,10 @@
 "recovery module and finally applies the recovery period timeout before "
 "restarting the first pass again."
 msgstr ""
+"Recovery Manager は各リカバリモジュールで最初の受け渡しを呼び出し、バックオフ"
+"期間のタイムアウトを適応します。そして、各リカバリモジュールで 2 番目の受け渡"
+"しを呼び出し、リカバリ期間のタイムアウトを適応してから、最初の受け渡しを再度"
+"開始します。"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:73
@@ -199,7 +261,7 @@
 msgid ""
 "The recovery modules are loaded via the following recovery extension "
 "property:"
-msgstr ""
+msgstr "リカバリモジュールは次のリカバリ拡張プロパティによってロードされます。"
 
 #. Tag: screen
 #: Architecture_of_the_Recovery_Manager.xml:76
@@ -208,6 +270,8 @@
 "com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;number&gt;=&lt;"
 "RecoveryClass&gt;"
 msgstr ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;number&gt;=&lt;"
+"RecoveryClass&gt;"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:77
@@ -216,6 +280,7 @@
 "The backoff period and recovery period are set using the following "
 "properties:"
 msgstr ""
+"バックオフ期間およびリカバリ期間は、次のプロパティによって設定されます。"
 
 #. Tag: screen
 #: Architecture_of_the_Recovery_Manager.xml:80
@@ -226,18 +291,22 @@
 "com.arjuna.ats.arjuna.recovery.periodicRecovery                (default 120 "
 "secs)"
 msgstr ""
+"com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod        (default 10 "
+"secs)\n"
+"com.arjuna.ats.arjuna.recovery.periodicRecovery                (default 120 "
+"secs)"
 
 #. 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 ""
+msgstr "Recovery Manager の実装には次の java クラスが使用されます。"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:86
 #, no-c-format
 msgid "package <package>com.arjuna.ats.arjuna.recovery</package>:"
-msgstr ""
+msgstr "<package>com.arjuna.ats.arjuna.recovery</package> パッケージ:"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:91
@@ -246,12 +315,15 @@
 "RecoveryManager: The daemon process that starts up by instantiating an "
 "instance of the RecoveryManagerImple class."
 msgstr ""
+"RecoveryManager: RecoveryManagerImple クラスのインスタンスをインスタンス化す"
+"ることで起動するデーモンプロセスです。"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:96
 #, no-c-format
 msgid "RecoveryEnvironment: Properties used by the recovery manager."
 msgstr ""
+"RecoveryEnvironment: リカバリマネージャによって使用されるプロパティです。"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:101
@@ -260,12 +332,15 @@
 "RecoveryConfiguration: Specifies the name of the Recovery Manager property "
 "file. (for instance, RecoveryManager-properties.xml)"
 msgstr ""
+"RecoveryConfiguration: Recovery Manager プロパティファイルの名前を指定します "
+"(例:RecoveryManager-properties.xml)。"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:108
 #, no-c-format
 msgid "package <package>com.arjuna.ats.internal.ts.arjuna.recovery</package>:"
 msgstr ""
+"<package>com.arjuna.ats.internal.ts.arjuna.recovery</package> パッケージ:"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:113
@@ -275,6 +350,8 @@
 "RecActivatorLoader, the PeriodicRecovery thread and the ExpiryEntryMonitor "
 "thread."
 msgstr ""
+"RecoveryManagerImple: RecActivatorLoader や PeriodicRecovery スレッド、"
+"ExpiryEntryMonitor スレッドのインスタンスを作成し、開始します。"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:118
@@ -284,6 +361,9 @@
 "the Recovery Manager property file. Each RecoveryActicator is specified as a "
 "recovery extension in the properties file."
 msgstr ""
+"RecActivatorLoader: Recovery Manager プロパティファイルに指定された "
+"RecoveryActivator を動的にロードします。各 RecoveryActicator はプロパティファ"
+"イルのリカバリ拡張として指定されます。"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:123
@@ -294,6 +374,10 @@
 "the second pass method for each module and applies the recovery period "
 "timeout."
 msgstr ""
+"PeriodicRecovery: 各リカバリモジュールをロードするスレッドです。ロードした"
+"後、各モジュールの最初の受け渡しを呼び出してバックオフ期間のタイムアウトを適"
+"応し、その後、各モジュールの 2 番目の受け渡しを呼び出してリカバリ期間のタイム"
+"アウトを適応します。"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:128
@@ -305,6 +389,10 @@
 "recovery.recoveryExtension1= com.arjuna.ats.internal.ts.arjuna.recovery."
 "AtomicActionRecoveryModule)."
 msgstr ""
+"RecoveryClassLoader: Recovery Manager プロパティファイルに指定されたリカバリ"
+"モジュールを動的にロードします。各モジュールはプロパティファイルのリカバリ拡"
+"張として指定されます (例:com.arjuna.ats.arjuna.recovery.recoveryExtension1= "
+"com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule)。"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:136
@@ -314,12 +402,15 @@
 "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 ""
+"デフォルトでは、リカバリマネージャはマシン上で最初に利用可能なポートをリッス"
+"ンします。リカバリマネージャが使用するポート番号を指定するには、com.arjuna."
+"ats.arjuna.recovery.recoveryPort 属性を使用して指定します。"
 
 #. Tag: title
 #: Architecture_of_the_Recovery_Manager.xml:141
 #, no-c-format
 msgid "Embedding the Recovery Manager"
-msgstr ""
+msgstr "Recovery Manager の組み込み"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:142
@@ -331,6 +422,11 @@
 "arjuna.recovery.RecoveryManager. A RecoveryManager can be created in one of "
 "two modes, selected via the parameter to the manager method:"
 msgstr ""
+"場合によっては、同じプロセスで Recoverymanager をトランザクションサービスとし"
+"て組み込む必要があることがあります。この場合、com.arjuna.ats.arjuna.recovery."
+"RecoveryManager のマネージャメソッドにて RecoveryManager のインスタンスを作成"
+"することができます。RecoveryManager は 2 つのモードの 1 つで作成することがで"
+"き、マネージャメソッドへのパラメータを使用して選択します:"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:148
@@ -340,6 +436,8 @@
 "instructed to run when desired via the scan operation or through the "
 "RecoveryDriver class to be described below."
 msgstr ""
+"INDIRECT_MANAGEMENT: マネージャは周期的に実行されますが、下記のように、スキャ"
+"ン操作または RecoveryDrive によって必要な時に実行を指示できます。"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:153
@@ -348,12 +446,14 @@
 "DIRECT_MANAGEMENT: the manager does not run periodically and must be driven "
 "directly via the scan operation or RecoveryDriver."
 msgstr ""
+"DIRECT_MANAGEMENT: マネージャは周期的に実行されず、スキャン操作または "
+"RecoveryDriver より直接指示されなければなりません。"
 
 #. Tag: title
 #: Architecture_of_the_Recovery_Manager.xml:159
 #, no-c-format
 msgid "Managing recovery directly"
-msgstr ""
+msgstr "リカバリを直接管理する"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:160
@@ -363,12 +463,15 @@
 "you require to drive recovery directly, then there are two options, "
 "depending upon how the RecoveryManager has been created."
 msgstr ""
+"前述の通り、リカバリは通常定期的な間隔で実行されます。直接リカバリを実行する"
+"必要がある場合、RecoveryManager がどのように作成されたかにより、2 つの方法か"
+"ら選択します。"
 
 #. Tag: title
 #: Architecture_of_the_Recovery_Manager.xml:165
 #, no-c-format
 msgid "Seperate Recovery Manager"
-msgstr ""
+msgstr "個別 Recovery Manager"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:166
@@ -380,6 +483,10 @@
 "recovery.RecoveryDriver class to do likewise. There are two types of "
 "recovery scan available:"
 msgstr ""
+"com.arjuna.ats.arjuna.tools.RecoveryMonitor プログラムを使用するか、com."
+"arjuna.ats.arjuna.recovery.RecoveryDriver クラスのインスタンスを作成して、リ"
+"カバリを実行するよう指示するメッセージを Recovery Manager に送信します。使用"
+"できるリカバリスキャンは次の 2 つになります。"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:172
@@ -388,6 +495,8 @@
 "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 ""
+"ASYNC_SCAN: リカバリの実行を指示するメッセージが RecoveryManager へ送信されま"
+"すが、応答はリカバリが終了する前に返されます。"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:177
@@ -396,12 +505,14 @@
 "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 ""
+"SYNC: リカバリの実行を指示するメッセージが RecoveryManager へ送信され、応答は"
+"リカバリが終了した後のみ発生します。"
 
 #. Tag: title
 #: Architecture_of_the_Recovery_Manager.xml:183
 #, no-c-format
 msgid "In process Recovery Manager"
-msgstr ""
+msgstr "インプロセス Recovery Manager "
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:184
@@ -412,6 +523,9 @@
 "asynchronous interaction pattern, then the RecoveryScan interface is "
 "provided:"
 msgstr ""
+"RecoveryManager 上でスキャン操作を呼び出せます。この操作はリカバリが終了した"
+"時にのみ返されます。非同期の対話パターンを使用する場合は、RecoveryScan イン"
+"ターフェイスが提供されます。"
 
 #. Tag: screen
 #: Architecture_of_the_Recovery_Manager.xml:188
@@ -422,6 +536,10 @@
 "        public void completed ();\n"
 "}"
 msgstr ""
+"public interface RecoveryScan\n"
+"{\n"
+"        public void completed ();\n"
+"}"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:189
@@ -431,12 +549,15 @@
 "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 ""
+msgstr "リカバリモジュール"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:196
@@ -449,6 +570,12 @@
 "<methodname>periodicWorkSecondPass</methodname> invoked by the Recovery "
 "Manager."
 msgstr ""
+"各リカバリモジュールは異なるタイプのトランザクション/リソースをリカバリする"
+"ために使用されますが、各モジュールは次の RecoveryModule インターフェイスを実"
+"装しなければなりません。この RecoveryModule インターフェイスは、Recovery "
+"Manager によって呼び出される <methodname>periodicWorkFirstPass</methodname> "
+"および <methodname>periodicWorkSecondPass</methodname> の 2 つのメソッドを定"
+"義します。"
 
 #. Tag: screen
 #: Architecture_of_the_Recovery_Manager.xml:199
@@ -470,12 +597,27 @@
 "        public void periodicWorkSecondPass ();\n"
 "}"
 msgstr ""
+"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"
+"}"
 
 #. Tag: title
 #: Architecture_of_the_Recovery_Manager.xml:201
 #, no-c-format
 msgid "JBossTS Recovery Module Classes"
-msgstr ""
+msgstr "JBossTS のリカバリモジュールクラス"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:202
@@ -486,30 +628,34 @@
 "transactional tree. The provided classes (that all implements the "
 "<interfacename>RecoveryModule</interfacename> interface) are:"
 msgstr ""
+"JBossTS は、参加者の性質やトランザクションツリーにおける場所に基づいてリカバ"
+"リを管理する一連のリカバリモジュールを提供します。提供されるクラスは次の通り"
+"です (すべて <interfacename>RecoveryModule</interfacename> インターフェイスを"
+"実装します)。"
 
 #. Tag: title
 #: Architecture_of_the_Recovery_Manager.xml:209
 #, no-c-format
 msgid "com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"
-msgstr ""
+msgstr "com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:210
 #, no-c-format
 msgid "Recovers AtomicAction transactions."
-msgstr ""
+msgstr "AtomicAction トランザクションをリカバリします。"
 
 #. Tag: title
 #: Architecture_of_the_Recovery_Manager.xml:217
 #, no-c-format
 msgid "com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"
-msgstr ""
+msgstr "com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:218
 #, no-c-format
 msgid "Recovers Transactional Objects for Java."
-msgstr ""
+msgstr "Java のトランザクションオブジェクトをリカバリします。"
 
 #. Tag: title
 #: Architecture_of_the_Recovery_Manager.xml:225
@@ -517,6 +663,7 @@
 msgid ""
 "com.arjuna.ats.internal.jts.recovery.transactions.TransactionRecoveryModule"
 msgstr ""
+"com.arjuna.ats.internal.jts.recovery.transactions.TransactionRecoveryModule"
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:226
@@ -525,6 +672,8 @@
 "Recovers JTS Transactions. This is a generic class from which TopLevel and "
 "Server transaction recovery modules inherit, respectively"
 msgstr ""
+"JTS トランザクションをリカバリします。以下は、TopLevel および Server トランザ"
+"クションリカバリモジュールがそれぞれ継承する汎用クラスになります。"
 
 #. Tag: title
 #: Architecture_of_the_Recovery_Manager.xml:233
@@ -533,38 +682,57 @@
 "com.arjuna.ats.internal.jts.recovery.transactions."
 "TopLevelTransactionRecoveryModule"
 msgstr ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"TopLevelTransactionRecoveryModule"
 
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:234
+#, fuzzy, no-c-format
+msgid "Recovers JTS Toplevel Transactions."
+msgstr "AtomicAction トランザクションをリカバリします。"
+
 #. Tag: title
-#: Architecture_of_the_Recovery_Manager.xml:240
+#: Architecture_of_the_Recovery_Manager.xml:241
 #, no-c-format
 msgid ""
 "com.arjuna.ats.internal.jts.recovery.transactions."
 "ServerTransactionRecoveryModule"
 msgstr ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"ServerTransactionRecoveryModule"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:246
+#: Architecture_of_the_Recovery_Manager.xml:242
+#, fuzzy, no-c-format
+msgid "Recovers JTS Server Transactions."
+msgstr "AtomicAction トランザクションをリカバリします。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:248
 #, 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 ""
+"リカバリモジュールの動作を説明するため、次の擬似コードで Atomic Action トラン"
+"ザクションおよび Java の Tranactional Object に使用される基本アルゴリズムを表"
+"します。"
 
 #. Tag: title
-#: Architecture_of_the_Recovery_Manager.xml:250
+#: Architecture_of_the_Recovery_Manager.xml:252
 #, no-c-format
 msgid "AtomicAction pseudo code"
-msgstr ""
+msgstr "AtomicAction の擬似コード"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:251
+#: Architecture_of_the_Recovery_Manager.xml:253
 #, no-c-format
 msgid "First Pass:"
-msgstr ""
+msgstr "最初の受け渡し:"
 
 #. Tag: screen
-#: Architecture_of_the_Recovery_Manager.xml:255
+#: Architecture_of_the_Recovery_Manager.xml:257
 #, no-c-format
 msgid ""
 "&lt; create a transaction vector for transaction Uids. &gt;\n"
@@ -574,16 +742,23 @@
 "        &lt; add the transaction to the vector of transactions. &gt;\n"
 "end while."
 msgstr ""
+"&lt; トランザクション UID のトランザクションベクトルを作成する &gt;\n"
+"&lt; トランザクションタイプ AtomicAction のすべてのトランザクションを読み取"
+"る &gt;\n"
+"while &lt; トランザクションのベクトル内にトランザクションがある &gt;\n"
+"do\n"
+"        &lt; トランザクションのベクトルにトランザクションを追加する &gt;\n"
+"end while."
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:256
-#: Architecture_of_the_Recovery_Manager.xml:265
+#: Architecture_of_the_Recovery_Manager.xml:258
+#: Architecture_of_the_Recovery_Manager.xml:267
 #, no-c-format
 msgid "Second Pass:"
-msgstr ""
+msgstr "2 番目の受け渡し:"
 
 #. Tag: screen
-#: Architecture_of_the_Recovery_Manager.xml:259
+#: Architecture_of_the_Recovery_Manager.xml:261
 #, no-c-format
 msgid ""
 "while &lt; there are transactions in the transaction vector &gt;\n"
@@ -600,21 +775,35 @@
 "        endif.\n"
 "end while."
 msgstr ""
+"while &lt; トランザクションベクトルにトランザクションがある &gt;\n"
+"do\n"
+"        if &lt; トランザクションの意図リストがまだ存在する &gt;\n"
+"        then\n"
+"                &lt; トランザクションがキャッシュした新しい項目を作成する "
+"&gt;\n"
+"                &lt; トランザクションの状況を取得する &gt;\n"
+"                                        \n"
+"                if         &lt; トランザクションが実行中でない &gt;\n"
+"                then\n"
+"                        &lt; コミットプロトコルのフェーズ 2 を再生する &gt;\n"
+"                endif.\n"
+"        endif.\n"
+"end while."
 
 #. Tag: title
-#: Architecture_of_the_Recovery_Manager.xml:261
+#: Architecture_of_the_Recovery_Manager.xml:263
 #, no-c-format
 msgid "Transactional Object pseudo code"
-msgstr ""
+msgstr "Transactional Object の擬似コード"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:262
+#: Architecture_of_the_Recovery_Manager.xml:264
 #, no-c-format
 msgid "First Pass"
-msgstr ""
+msgstr "最初の受け渡し"
 
 #. Tag: screen
-#: Architecture_of_the_Recovery_Manager.xml:264
+#: Architecture_of_the_Recovery_Manager.xml:266
 #, no-c-format
 msgid ""
 "&lt; Create a hash table for uncommitted transactional objects. &gt;\n"
@@ -629,9 +818,22 @@
 "        end if.\n"
 "end while."
 msgstr ""
+"&lt; コミットされていないトランザクションオブジェクト用のハッシュテーブルを作"
+"成する &gt;\n"
+"&lt; オブジェクトストア内ですべてのトランザクションオブジェクトを読み込む "
+"&gt;\n"
+"while &lt; トランザクションオブジェクトがある &gt;\n"
+"do\n"
+"        if         &lt; トランザクションオブジェクトがオブジェクトストア内で "
+"Uncommited 状態 &gt;\n"
+"        then\n"
+"                &lt; トランザクションオブジェクトをコミットされていないトラン"
+"ザクションオブジェクト用のハッシュテーブルに追加する &gt;\n"
+"        end if.\n"
+"end while."
 
 #. Tag: screen
-#: Architecture_of_the_Recovery_Manager.xml:268
+#: Architecture_of_the_Recovery_Manager.xml:270
 #, no-c-format
 msgid ""
 "while &lt; there are transactions in the hash table for uncommitted "
@@ -653,15 +855,32 @@
 "        endif.\n"
 "end while."
 msgstr ""
+"while &lt; コミットされていないトランザクションオブジェクト用のハッシュテーブ"
+"ルにトランザクションがある &gt;\n"
+"do\n"
+"        if &lt; トランザクションがまだ Uncommitted 状態 &gt;\n"
+"        then\n"
+"                if &lt; トランザクションが Transaction Cache にない &gt;\n"
+"                then\n"
+"                        &lt; 元のアプリケーションプロセスでトランザクションの"
+"状況をチェックする &gt;\n"
+"                        if &lt; トランザクションが Rolled Back 状態またはアプ"
+"リケーションプロセスが非アクティブ &gt;\n"
+"                                &lt; Object Store より Uncommitted 状態を削除"
+"してトランザクションをロールバックする &gt;\n"
+"                        endif.\n"
+"                endif.\n"
+"        endif.\n"
+"end while."
 
 #. Tag: title
-#: Architecture_of_the_Recovery_Manager.xml:270
+#: Architecture_of_the_Recovery_Manager.xml:272
 #, no-c-format
 msgid "A Recovery Module for XA Resources"
-msgstr ""
+msgstr "XA リソースのリカバリモジュール"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:271
+#: Architecture_of_the_Recovery_Manager.xml:273
 #, no-c-format
 msgid ""
 "To manage recovery, we have seen in the previous chapter that the Recovery "
@@ -669,9 +888,13 @@
 "that implements the two methods defined by the "
 "<interfacename>RecoveryModule</interfacename> interface."
 msgstr ""
+"前の項で説明した通り、Recovery Manager は <interfacename>RecoveryModule</"
+"interfacename> インターフェイスで定義された 2 つのメソッドを実装する一連のリ"
+"カバリモジュールを呼び出し、リカバリ処理をトリガすることで、リカバリを管理し"
+"ます。"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:275
+#: Architecture_of_the_Recovery_Manager.xml:277
 #, no-c-format
 msgid ""
 "To enable recovery of participants controlled via the <interfacename>XA</"
@@ -682,9 +905,16 @@
 "<interfacename>XA</interfacename> resources (for example, databases) used in "
 "JTA."
 msgstr ""
+"<interfacename>XA</interfacename> インターフェイスによって制御される参加者の"
+"リカバリを有効にするため、専用のリカバリモジュールである XARecoveryModule が"
+"提供されます。XARecoveryModule は、<package>com.arjuna.ats.internal.jta."
+"recovery.arjunacore</package> および <package>com.arjuna.ats.internal.jta."
+"recovery.jts</package> パッケージ内で定義され、JTA 内で使用される "
+"<interfacename>XA</interfacename> リソース (例:データベース) のリカバリを処"
+"理します。"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:279
+#: Architecture_of_the_Recovery_Manager.xml:281
 #, no-c-format
 msgid ""
 "JBossTS supports two JTA implementations: a purely local version (no "
@@ -692,9 +922,12 @@
 "former is straightforward. In the following discussion we shall implicitly "
 "consider on the JTS implementation."
 msgstr ""
+"JBossTS は、純粋なローカルバージョン(分散トランザクションなし)と JTS 上で階"
+"層化されたバージョンの 2 つの JTA 実装をサポートしています。純粋なローカル"
+"バージョンのリカバリは簡単です。次の説明では、JTS 実装を暗黙的に考慮します。"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:283
+#: Architecture_of_the_Recovery_Manager.xml:285
 #, no-c-format
 msgid ""
 "Its behavior consists of two aspects: <emphasis>transaction-initiated</"
@@ -703,15 +936,19 @@
 "progressed far enough for a JTA Resource Record to be written in the "
 "ObjectStore, as illustrated in Figure 2."
 msgstr ""
+"動作には、<emphasis>トランザクション起動</emphasis>リカバリと<emphasis>リソー"
+"ス起動</emphasis>リカバリの 2 つの側面があります。図 2 の通り、JTA Resource "
+"Record が ObjectStore に書き込まれる状態になるまで特定のトランザクションブラ"
+"ンチが進行している場合、トランザクション起動リカバリを使用できます。"
 
 #. Tag: caption
-#: Architecture_of_the_Recovery_Manager.xml:290
+#: Architecture_of_the_Recovery_Manager.xml:292
 #, no-c-format
 msgid "JTA/JDBC information stored in the ObjectStore"
-msgstr ""
+msgstr "ObjectStore に保存される JTA/DBC 情報"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:292
+#: Architecture_of_the_Recovery_Manager.xml:294
 #, no-c-format
 msgid ""
 "A JTA Resource record contains the information needed to link the "
@@ -723,9 +960,16 @@
 "in the JTA Resource record that allows the recreation in the RecoveryManager "
 "of the XAConnection/XAResource that was used in the original application."
 msgstr ""
+"JTA Resource レコードには、JBossTS が認識しているトランザクションをデータベー"
+"スにリンクするために必要な情報が含まれています。データベースがトランザクショ"
+"ンを永続的に記録した後、JTA ResourceRecord が永続化される前に障害が発生した場"
+"合、ブランチに対してリソース起動リカバリが必要となります。また、元のアプリ"
+"ケーションで使用された XAConnection/XAResource を RecoveryManager で再度作成"
+"できるようにする JTA Resource レコードに情報を保持できない場合、データソース"
+"に対してリソース起動リカバリが必要となります。"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:296
+#: Architecture_of_the_Recovery_Manager.xml:298
 #, no-c-format
 msgid ""
 "When running XA recovery it is necessary to tell JBossTS which types of Xid "
@@ -740,9 +984,20 @@
 "property> should be alphanumeric and match the values of <property>com."
 "arjuna.ats.arjuna.xa.nodeIdentifier</property>."
 msgstr ""
+"XA リカバリを実行する場合、JBossTS にリカバリできる Xid タイプを伝える必要が"
+"あります。JBossTS が作成する Xid には、各 Xid 固有のノード識別子がエンコード"
+"され、JBossTS は特定のノード識別子と一致するトランザクションや状態のみをリカ"
+"バリします。名前が <property>com.arjuna.ats.jta.xaRecoveryNode</property> で"
+"始まるプロパティより、使用するノード識別子を JBossTS へ提供しなければなりませ"
+"ん。複数の値を提供することもできます。「*」を値として指定すると、ノード識別子"
+"に関係なくすべてのトランザクションをリカバリ(場合によってはロールバック)す"
+"るよう JBossTS を強制することになるため、十分注意して使用するようにしてくださ"
+"い。<property>com.arjuna.ats.jta.xaRecoveryNode</property> の内容は英数字を使"
+"用し、<property>com.arjuna.ats.arjuna.xa.nodeIdentifier</property> の値と一致"
+"しなければなりません。"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:300
+#: Architecture_of_the_Recovery_Manager.xml:302
 #, no-c-format
 msgid ""
 "Transaction-initiated recovery is automatic. The XARecoveryModule finds the "
@@ -754,15 +1009,22 @@
 "information, database name, username, password etc., as the original "
 "application."
 msgstr ""
+"トランザクション起動リカバリは自動的に実行されます。XARecoveryModule がリカバ"
+"リが必要な JTA Resource レコードを特定し、普通のリカバリメカニズムによって、"
+"関係しているトランザクションの状態を特定します (例:トランザクションブランチ"
+"に対して RecoveryCoordinator 上で replay_completion を呼び出す)。そして、適切"
+"な XAResource を(再)作成し、コミットまたはロールバックを発行します。"
+"XAResource の作成には、元のアプリケーションと同じ情報、データベース名、ユー"
+"ザー名、パスワードなどが使用されます。"
 
 #. Tag: caption
-#: Architecture_of_the_Recovery_Manager.xml:307
+#: Architecture_of_the_Recovery_Manager.xml:309
 #, no-c-format
 msgid "Transaction-Initiated Recovery and XA Recovery"
-msgstr ""
+msgstr "トランザクション起動リカバリと XA リカバリ "
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:309
+#: Architecture_of_the_Recovery_Manager.xml:311
 #, no-c-format
 msgid ""
 "Resource-initiated recovery has to be specifically configured, by supplying "
@@ -775,15 +1037,23 @@
 "dynamically loaded, as controlled by properties with names beginning "
 "<property>com.arjuna.ats.jta.recovery.XAResourceRecovery</property>."
 msgstr ""
+"リソース起動リカバリを設定するには、JBoss TS のアプリケーションがアクセスした"
+"全データベース (XADataSources) を問い合わせるために必要な情報を Recovery "
+"Manager に提供しなければなりません。図 4 の通り、各 XADataSource は "
+"<interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</"
+"interfacename> インターフェイスを実証するクラスによって処理されます。"
+"XAResourceRecovery インターフェイスを実装するクラスのインスタンスは、動的に"
+"ロードされ、名前が <property>com.arjuna.ats.jta.recovery.XAResourceRecovery</"
+"property> で始まるプロパティによって制御されます。"
 
 #. Tag: caption
-#: Architecture_of_the_Recovery_Manager.xml:316
+#: Architecture_of_the_Recovery_Manager.xml:318
 #, no-c-format
 msgid "Resource-initiated recovery and XA Recovery"
-msgstr ""
+msgstr "リソース起動リカバリと XA リカバリ"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:319
+#: Architecture_of_the_Recovery_Manager.xml:321
 #, no-c-format
 msgid ""
 "JBossTS 3.3 <interfacename>XAConnectionRecovery</interfacename> was "
@@ -791,9 +1061,13 @@
 "Although the old interface still exists at the moment, users are encouraged "
 "to migrate to the new interface."
 msgstr ""
+"<interfacename>XAResourceRecovery</interfacename> の導入により、JBossTS 3.3 "
+"の <interfacename>XAConnectionRecovery</interfacename> は廃止されました。現在"
+"も古いインターフェイスは存在していますが、新しいインターフェイスへの移行を推"
+"奨します。"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:323
+#: Architecture_of_the_Recovery_Manager.xml:325
 #, no-c-format
 msgid ""
 "The XARecoveryModule will use the XAResourceRecovery implementation to get a "
@@ -808,9 +1082,18 @@
 "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 ""
+"XARecoveryModule は XAResourceRecovery の実装を使用し、目的のデータソースに対"
+"してXAResource を取得します。periodicWorkSecondPass が呼び出されると、リカバ"
+"リモジュールは XAResource.recover 要求を発行します。これにより、(XA 仕様の通"
+"り)データーソースが認識する不確定状態のトランザクション識別子 (Xid) の一覧を"
+"返します。前後の受け渡し (例:periodicWorkSecondPass-es) が受け取った不確定 "
+"Xid の一覧が比較されます。両方の一覧に表示され、トランザクション起動リカバリ"
+"によって JTA ResourceRecord が見つからなかった Xid は、TA ResourceRecord が書"
+"き込まれる前に発生した障害に関するトランザクションのものと見なされ、"
+"XAResource のそのトランザクションに対してロールバックが発行されます。"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:326
+#: Architecture_of_the_Recovery_Manager.xml:328
 #, no-c-format
 msgid ""
 "This double-scan mechanism is used because it is possible the Xid was "
@@ -819,9 +1102,14 @@
 "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 ""
+"この 2 重スキャンメカニズムが使用される理由は、元のアプリケーションプロセスが"
+"対応する JTA_ResourceRecord を作成しようとした時に Xid がデータソースより取得"
+"される可能性があるためです。スキャンの間隔は、アプリケーションがクラッシュし"
+"ない限りレコードを書き込むのに十分な時間間隔です(万が一クラッシュした場合"
+"は、ロールバックを行います)。"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:329
+#: Architecture_of_the_Recovery_Manager.xml:331
 #, no-c-format
 msgid ""
 "An <classname>XAResourceRecovery</classname> implementation class can be "
@@ -835,9 +1123,18 @@
 "the string. The use made of this string is determined by the "
 "<classname>XAResourceRecovery</classname> implementation class."
 msgstr ""
+"データソースのリカバリに必要な情報がすべて含まれるように "
+"<classname>XAResourceRecovery</classname> 実装クラスを書くことができます。ま"
+"た、1 つのクラスが複数のデータソースに対応するようにすることもできます。実装"
+"クラスのコンストラクタは空のパラメータリストを持たなければなりませんが(動的"
+"にロードされるため)、インターフェイスには追加情報をストリングとして渡す初期"
+"化メソッドが含まれます。ストリングの内容はクラス名を提供するプロパティ値より"
+"取得し、最初のセミコロン以降の内容が値としてストリングに渡されます。このスト"
+"リングの使用は <classname>XAResourceRecovery</classname> 実装クラスによって決"
+"定されます。"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:332
+#: Architecture_of_the_Recovery_Manager.xml:334
 #, no-c-format
 msgid ""
 "For further details on the way to implement a class that implements the "
@@ -846,17 +1143,77 @@
 "that supports resource-initiated recovery for any XADataSource. This class "
 "could be used as a template to build your own implementation class."
 msgstr ""
+"<interfacename>XAResourceRecovery</interfacename> インターフェイスを実装する"
+"クラスの実装方法については、JTA プログラミングガイドの JDBC 章をご覧くださ"
+"い。XADataSource のリソース起動リカバリをサポートするため実装クラスが提供され"
+"ます。このクラスは、独自の実装クラスを作成するためのテンプレートとして使用で"
+"きます。"
 
 #. Tag: title
-#: Architecture_of_the_Recovery_Manager.xml:336
+#: Architecture_of_the_Recovery_Manager.xml:338
 #, no-c-format
-msgid "Writing a Recovery Module"
+msgid "Assumed complete"
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:337
+#: Architecture_of_the_Recovery_Manager.xml:339
 #, no-c-format
 msgid ""
+"If a failure occurs in the transaction environment after the transaction "
+"coordinator had told the XAResource to commit but before the transaction log "
+"has been updated to remove the participant, then recovery will attempt to "
+"replay the commit. In the case of a Serialized XAResource, the response from "
+"the XAResource will enable the participant to be removed from the log, which "
+"will eventually be deleted when all participants have been committed. "
+"However, if the XAResource is not recoverable then it is extremely unlikely "
+"that any <interfacename>XAResourceRecovery</interfacename> instance will be "
+"able to provide the recovery sub-system with a fresh XAResource to use in "
+"order to attempt recovery; in which case recovery will continually fail and "
+"the log entry will never be removed."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:343
+#, no-c-format
+msgid "There are two possible solutions to this problem:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:348
+#, no-c-format
+msgid ""
+"Rely on the relevant ExpiryScanner to eventually move the log elsewhere. "
+"Manual intervention will then be needed to ensure the log can be safely "
+"deleted. If a log entry is moved, suitable warning messages will be output."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:353
+#, no-c-format
+msgid ""
+"Set <property>com.arjuna.ats.jta.xaAssumeRecoveryComplete</property> to "
+"true. This option is checked whenever a new XAResource instance cannot be "
+"located from any registered <interfacename>XAResourceRecovery</"
+"interfacename> instance. If false (the default), recovery assumes that there "
+"is a transient problem with the <interfacename>XAResourceRecovery</"
+"interfacename> instances (for example, not all have been registered with the "
+"sub-system) and will attempt recovery periodically. If true then recovery "
+"assumes that a previous commit attempt succeeded and this instance can be "
+"removed from the log with no further recovery attempts. This option is "
+"global, so needs to be used with care since if used incorrectly, XAResource "
+"instances may remain in an uncommitted state."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:359
+#, no-c-format
+msgid "Writing a Recovery Module"
+msgstr "リカバリモジュールを書く"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:360
+#, 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 "
@@ -868,51 +1225,66 @@
 "following basic example illustrates the steps needed to build such recovery "
 "module"
 msgstr ""
+"障害をリカバリするため、Recovery Manager は "
+"<methodname>periodicWorkFirstPass</methodname> および "
+"<methodname>periodicWorkSecondPass</methodname> メソッドを定期的に呼び出し、"
+"リカバリモジュールに接触することを説明しました。これにより、各 Recovery "
+"Module はリカバリする必要があるリソースのタイプに基づき、リカバリを管理できる"
+"ようになります。JBoss Transaction 製品には一連のリカバリモジュール "
+"(TOReceveryModule、XARecoveryModule など) が同梱されていますが、アプリケー"
+"ションに適合する独自のリカバリモジュールを定義することもできます。次の例は、"
+"リカバリモジュールを作成するために必要な手順を表しています。"
 
 #. Tag: title
-#: Architecture_of_the_Recovery_Manager.xml:340
+#: Architecture_of_the_Recovery_Manager.xml:363
 #, no-c-format
 msgid "A basic scenario"
-msgstr ""
+msgstr "基本的なシナリオ"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:341
+#: Architecture_of_the_Recovery_Manager.xml:364
 #, 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
+#: Architecture_of_the_Recovery_Manager.xml:366
 #, 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
+#: Architecture_of_the_Recovery_Manager.xml:371
 #, no-c-format
 msgid "to decide to commit or abort the transaction,"
-msgstr ""
+msgstr "トランザクションのコミットまたはアボートを決定する"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:353
+#: Architecture_of_the_Recovery_Manager.xml:376
 #, no-c-format
 msgid "to decide generating a crash during the commitment process."
-msgstr ""
+msgstr "コミット処理の間にクラッシュを生成するか決定する"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:358
+#: Architecture_of_the_Recovery_Manager.xml:381
 #, no-c-format
 msgid "The code of the main class that control the application is given below"
-msgstr ""
+msgstr "アプリケーションを制御するメインクラスのコードは次の通りです。"
 
 #. Tag: screen
-#: Architecture_of_the_Recovery_Manager.xml:361
+#: Architecture_of_the_Recovery_Manager.xml:384
 #, no-c-format
 msgid ""
 "package com.arjuna.demo.recoverymodule;\n"
@@ -956,62 +1328,113 @@
 "        protected static boolean _crash = false;\n"
 "}"
 msgstr ""
+"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"
+"}"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:362
+#: Architecture_of_the_Recovery_Manager.xml:385
 #, no-c-format
 msgid "The registered participant has the following behavior:"
-msgstr ""
+msgstr "登録された参加者は以下のように動作します:"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:367
+#: Architecture_of_the_Recovery_Manager.xml:390
 #, 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 ""
+"準備段階で、<emphasis>I’m prepared</emphasis> という簡単なメッセージをディス"
+"ク上で既知のファイルに書き込みます。"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:372
+#: Architecture_of_the_Recovery_Manager.xml:395
 #, 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 ""
+"コミット段階で、<emphasis>I’m committed</emphasis> というメッセージを準備段階"
+"で使用した同じファイルに書き込みます。"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:377
+#: Architecture_of_the_Recovery_Manager.xml:400
 #, 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
+#: Architecture_of_the_Recovery_Manager.xml:405
 #, 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 ""
+"テストに対してクラッシュの実行が決定された場合、コミット段階でクラッシュしま"
+"す。ファイルには <emphasis>I’m prepared</emphasis> というメッセージが保持され"
+"ます。"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:387
+#: Architecture_of_the_Recovery_Manager.xml:410
 #, no-c-format
 msgid ""
 "The main portion of the code illustrating such behavior is described "
 "hereafter."
-msgstr ""
+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 ""
+#: Architecture_of_the_Recovery_Manager.xml:414
+#, fuzzy, no-c-format
+msgid ""
+"The location specified as the value for the variable <varname>filename</"
+"varname> can be altered."
+msgstr "変数 filename に指定するファイルの場所は変更可能です。"
 
 #. Tag: screen
-#: Architecture_of_the_Recovery_Manager.xml:395
+#: Architecture_of_the_Recovery_Manager.xml:418
 #, no-c-format
 msgid ""
 "package com.arjuna.demo.recoverymodule;\n"
@@ -1076,9 +1499,70 @@
 "        …\n"
 "}"
 msgstr ""
+"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"
+"}"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:396
+#: Architecture_of_the_Recovery_Manager.xml:419
 #, no-c-format
 msgid ""
 "The role of the Recovery Module in such application consists to read the "
@@ -1086,9 +1570,12 @@
 "determine that status and print a message indicating if a recovery action is "
 "needed or not."
 msgstr ""
+"このようなアプリケーションにおける Recovery Module の役割は、参加者の状態を保"
+"存するために使用するファイルの内容を読み込んで参加者の状況を判断し、リカバリ"
+"が必要であるか否かをメッセージに表示することです。"
 
 #. Tag: screen
-#: Architecture_of_the_Recovery_Manager.xml:399
+#: Architecture_of_the_Recovery_Manager.xml:422
 #, no-c-format
 msgid ""
 "package com.arjuna.demo.recoverymodule;\n"
@@ -1154,9 +1641,71 @@
 "        }\n"
 "}"
 msgstr ""
+"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"
+"}"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:400
+#: Architecture_of_the_Recovery_Manager.xml:423
 #, no-c-format
 msgid ""
 "The recovery module should now be deployed in order to be called by the "
@@ -1164,9 +1713,12 @@
 "<filename>RecoveryManager-properties.xml</filename> by adding a new property "
 "as follow:"
 msgstr ""
+"これで、リカバリモジュールがデプロイされたはずです。Recovery Manager による呼"
+"び出しを有効にするには、下記のように新しいプロパティを追加し、"
+"<filename>RecoveryManager-properties.xml</filename> にエントリを追加します。"
 
 #. Tag: screen
-#: Architecture_of_the_Recovery_Manager.xml:403
+#: Architecture_of_the_Recovery_Manager.xml:426
 #, no-c-format
 msgid ""
 "&lt;property\n"
@@ -1174,32 +1726,40 @@
 "i&gt;\"\n"
 "        value=\"com.arjuna.demo.recoverymodule.SimpleRecoveryModule\"/&gt;"
 msgstr ""
+"&lt;property\n"
+"                 name=\"com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;"
+"i&gt;\"\n"
+"        value=\"com.arjuna.demo.recoverymodule.SimpleRecoveryModule\"/&gt;"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:404
+#: Architecture_of_the_Recovery_Manager.xml:427
 #, 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 ""
+"&lt;i&gt; は、ファイルに存在する発生番号の後に続く新しい番号を示しています。"
+"Recovery Manager が起動すると、追加されたリカバリモジュールが自動的にロードさ"
+"れます。"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:408
+#: Architecture_of_the_Recovery_Manager.xml:431
 #, no-c-format
 msgid ""
 "The source of the code can be retrieved under the trailmap directory of the "
 "JBossTS installation."
 msgstr ""
+"コードのソースは、JBossTS の trailmap ディレクトリ以下より取得できます。"
 
 #. Tag: title
-#: Architecture_of_the_Recovery_Manager.xml:413
+#: Architecture_of_the_Recovery_Manager.xml:436
 #, no-c-format
 msgid "Another scenario"
-msgstr ""
+msgstr "他のシナリオ"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:414
+#: Architecture_of_the_Recovery_Manager.xml:437
 #, no-c-format
 msgid ""
 "As mentioned, the basic application presented above does not present the "
@@ -1208,9 +1768,13 @@
 "consider how a recovery module that manages recovery of OTS resources can be "
 "configured."
 msgstr ""
+"前述の通り、上記の基本アプリケーションは障害をリカバリするための完全なプロセ"
+"スではなく、リカバリモジュールの作成方法を示したものです。ここで、OTS プロト"
+"コルにおいて OTS リソースのリカバリを管理するリカバリモジュールの設定方法を考"
+"えてみましょう。"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:418
+#: Architecture_of_the_Recovery_Manager.xml:441
 #, no-c-format
 msgid ""
 "To manage recovery in case of failure, the OTS specification has defined a "
@@ -1221,9 +1785,15 @@
 "RecoveryCoordinator object to determine the status consists to invoke the "
 "replay_completion operation on the RecoveryCoordinator."
 msgstr ""
+"障害のリカバリを管理するため、OTS 仕様にはリカバリプロトコルが定義されていま"
+"す。ダウト状態にあるトランザクションの参加者は、RecoveryCoordinate を使用して"
+"トランザクションの状態を判断することができます。参加者は、そのトランザクショ"
+"ンの状態を基にロールバックまたはコミットの実行を決定できます。"
+"RecoveryCoordinator オブジェクトにトランザクションの状態を判断するよう要求す"
+"ると、RecoveryCoordinator 上で replay_completion 操作が呼び出されます。"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:421
+#: Architecture_of_the_Recovery_Manager.xml:444
 #, no-c-format
 msgid ""
 "For each OTS Resource in a doubt status, it is well known which "
@@ -1233,9 +1803,13 @@
 "RecoveryCoordinator per resource means that it has been stored in addition "
 "to other information describing the resource."
 msgstr ""
+"ダウト状態にある各 OTS Resource の場合、Resource 登録プロセス中に返された "
+"RecoveryCoordinator を呼び出して Resource が関与するトランザクションの状態を"
+"判断します。リソースごとに RecoveryCoordinator を呼び出すことで、リソースの他"
+"の情報と共に保存されます。"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:424
+#: Architecture_of_the_Recovery_Manager.xml:447
 #, no-c-format
 msgid ""
 "A recovery module dedicated to recover OTS Resources could have the "
@@ -1249,15 +1823,23 @@
 "status, an appropriate action would be taken (for instance, rollback the "
 "resource is the status is aborted or inactive)."
 msgstr ""
+"OTS Resource リカバリ専用のリカバリモジュールは次のように動作することができま"
+"す。最初の受け渡しで Recovery Manager から要求があると、ダウト状態にあるリ"
+"ソースの一覧をディスクより取得します。2 番目の受け渡しの間、最初の受け渡しで"
+"取得したリソースがディスクに保持されている場合、これらのリソースがリカバリ対"
+"象であるとみなされます。そのため、Recovery Module は各リカバリ対象リソースに"
+"関連する RecoveryCoordinator を取得し、replay_completion 操作を呼び出します。"
+"返された状態により適切な処理が行われます(例:状態がアボートまたは非アクティ"
+"ブである場合はリソースをロールバックする)。"
 
 #. Tag: title
-#: Architecture_of_the_Recovery_Manager.xml:429
+#: Architecture_of_the_Recovery_Manager.xml:452
 #, no-c-format
 msgid "TransactionStatusConnectionManager"
-msgstr ""
+msgstr "TransactionStatusConnectionManager"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:430
+#: Architecture_of_the_Recovery_Manager.xml:453
 #, no-c-format
 msgid ""
 "The TransactionStatusConnectionManager object is used by the recovery "
@@ -1266,9 +1848,14 @@
 "TransactionStatusConnector obects each of which connects to a "
 "TransactionStatusManager object in an Application Process."
 msgstr ""
+"リカバリモジュールは TransactionStatusConnectionManager オブジェクトを使用し"
+"てトランザクションの状態を取得します。TransactionStatusConnectionManager オブ"
+"ジェクトは TransactionStatusManager オブジェクトのプロキシのように動作し、ア"
+"プリケーションプロセスの TransactionStatusManager オブジェクトに接続する "
+"TransactionStatusConnector オブジェクトのテーブルを維持します。"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:433
+#: Architecture_of_the_Recovery_Manager.xml:456
 #, no-c-format
 msgid ""
 "The transactions status is retrieved using the getTransactionStatus methods "
@@ -1281,15 +1868,24 @@
 "transaction type to the TransactionStatusManager in order to retrieve the "
 "transactions status."
 msgstr ""
+"トランザクションの状態は、トランザクション Uid とトランザクションタイプ(存在"
+"する場合)をパラメータとして取る getTransactionStatus メソッドを使用して取得"
+"します。トランザクション Uid パラメータのプロセス Uid フィールドは、Object "
+"Store にある目的の TransactionStatusManagerItem のホスト/ポートのペアをルッ"
+"クアップするために使用されます。ホスト/ポートのペアは、"
+"TransactionStatusConnector オブジェクトにて目的の TransactionStatusManager オ"
+"ブジェクトへ TCP 接続するために使用されます。トランザクションの状態を取得する"
+"ため、TransactionStatusConnector はトランザクション Uid とトランザクションタ"
+"イプを TransactionStatusManager に渡します。"
 
 #. Tag: title
-#: Architecture_of_the_Recovery_Manager.xml:438
+#: Architecture_of_the_Recovery_Manager.xml:461
 #, no-c-format
 msgid "Expired Scanner Thread"
-msgstr ""
+msgstr "期限切れスキャナスレッド"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:439
+#: Architecture_of_the_Recovery_Manager.xml:462
 #, no-c-format
 msgid ""
 "When the Recovery Manager initialises an expiry scanner thread "
@@ -1297,55 +1893,71 @@
 "the ObjectStore. A number of scanner modules are dynamically loaded which "
 "remove long dead items for a particular type."
 msgstr ""
+"Recovery Manager が有効期限スキャナスレッドを初期化すると、長期不要であった項"
+"目を ObjectStore より削除するため使用する ExpiryEntryMonitor が作成されます。"
+"複数のスキャナモジュールが動的にロードされ、特定タイプの長期不要項目を削除し"
+"ます。"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:442
+#: Architecture_of_the_Recovery_Manager.xml:465
 #, 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
+#: Architecture_of_the_Recovery_Manager.xml:468
 #, no-c-format
 msgid ""
 "com.arjuna.ats.arjuna.recovery.expiryScanner&lt;Scanner Name&gt;=&lt;Scanner "
 "Class&gt;"
 msgstr ""
+"com.arjuna.ats.arjuna.recovery.expiryScanner&lt;Scanner Name&gt;=&lt;Scanner "
+"Class&gt;"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:446
+#: Architecture_of_the_Recovery_Manager.xml:469
 #, 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 ""
+"ExpiryEntryMonitor スレッドによって不要項目をスキャンするため、すべてのスキャ"
+"ナモジュールは周期的に呼び出されます。周期は次のプロパティで設定することがで"
+"きます。"
 
 #. Tag: screen
-#: Architecture_of_the_Recovery_Manager.xml:449
+#: Architecture_of_the_Recovery_Manager.xml:472
 #, no-c-format
 msgid "com.arjuna.ats.arjuna.recovery.expiryScanInterval"
-msgstr ""
+msgstr "com.arjuna.ats.arjuna.recovery.expiryScanInterval"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:450
+#: Architecture_of_the_Recovery_Manager.xml:473
 #, no-c-format
 msgid ""
 "All scanners inherit the same behaviour from the java interface "
 "<interfacename>ExpiryScanner</interfacename> as illustrated in diagram below:"
 msgstr ""
+"下図の通り、すべてのスキャナは java インターフェイスの "
+"<interfacename>ExpiryScanner</interfacename> より同じ動作を継承します。"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:458
+#: Architecture_of_the_Recovery_Manager.xml:481
 #, 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
+#: Architecture_of_the_Recovery_Manager.xml:484
 #, no-c-format
 msgid ""
 "The ExpiredTransactionStatusManagerScanner removes long dead "
@@ -1353,27 +1965,31 @@
 "in the Object Store for a period of time before they are deleted. This time "
 "is set by the property:"
 msgstr ""
+"ExpiredTransactionStatusManagerScanner は、長期不要であった "
+"TransactionStatusManagerItems を Object Store より削除します。"
+"TransactionStatusManagerItems は一定期間 Object Store で保持された後に削除さ"
+"れます。保持する期間は下記のプロパティで設定できます。"
 
 #. Tag: screen
-#: Architecture_of_the_Recovery_Manager.xml:464
+#: Architecture_of_the_Recovery_Manager.xml:487
 #, no-c-format
 msgid "com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime"
-msgstr ""
+msgstr "com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:465
+#: Architecture_of_the_Recovery_Manager.xml:488
 #, no-c-format
 msgid "(default 12 hours)"
-msgstr ""
+msgstr "(デフォルトは 12 時間です)"
 
 #. Tag: title
-#: Architecture_of_the_Recovery_Manager.xml:470
+#: Architecture_of_the_Recovery_Manager.xml:493
 #, no-c-format
 msgid "Application Process"
-msgstr ""
+msgstr "アプリケーションプロセス"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:471
+#: Architecture_of_the_Recovery_Manager.xml:494
 #, no-c-format
 msgid ""
 "This represents the user transactional program. A Local transaction (hash) "
@@ -1383,9 +1999,15 @@
 "determine whether a transaction is still in progress, if so then recovery "
 "does not happen."
 msgstr ""
+"アプリケーションプロセスはユーザートランザクションプログラムを示します。実行"
+"されているアプリケーションプロセス内で維持されるローカルトランザクション"
+"(ハッシュ)テーブルは、そのアプリケーションプロセスによって作成されたトラン"
+"ザクションの現在の状態を追跡します。Recovery Manager はトランザクションテーブ"
+"ルにアクセスする必要があるため、トランザクションが実行中であるか判断すること"
+"ができます。トランザクションが実行中の場合、リカバリは実行されません。"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:474
+#: Architecture_of_the_Recovery_Manager.xml:497
 #, no-c-format
 msgid ""
 "The transaction tables are accessed via the TransactionStatusManager object. "
@@ -1394,24 +2016,32 @@
 "TransactionStatusManager’ part of the Object Store file hierarchy and "
 "identified by the process Uid of the application process."
 msgstr ""
+"トランザクションテーブルは TransactionStatusManager オブジェクトを通じてアク"
+"セスされます。アプリケーションプログラムの初期化時、TransactionStatusManager "
+"を示すホスト/ポートのペアが Object Store ファイル階層の「'../Recovery/"
+"TransactionStatusManager」部分内の Object Store に書き込まれ、アプリケーショ"
+"ンプロセスのプロセス Uid によって識別されます。"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:477
+#: Architecture_of_the_Recovery_Manager.xml:500
 #, 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 ""
+"Recovery Manager は TransactionStatusConnectionManager オブジェクトを使用して"
+"トランザクションの状態を取得し、TransactionStatusConnector オブジェクトを使用"
+"して TransactionStatusManager への TCP 接続を確立します。"
 
 #. Tag: title
-#: Architecture_of_the_Recovery_Manager.xml:482
+#: Architecture_of_the_Recovery_Manager.xml:505
 #, no-c-format
 msgid "TransactionStatusManager"
-msgstr ""
+msgstr "TransactionStatusManager"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:483
+#: Architecture_of_the_Recovery_Manager.xml:506
 #, no-c-format
 msgid ""
 "This object acts as an interface for the Recovery Manager to obtain the "
@@ -1422,15 +2052,22 @@
 "Any free port is used by the TransactionStatusManager by default, however "
 "the port can be fixed with the property:"
 msgstr ""
+"このオブジェクトは Recovery Manager のインターフェイスとして動作し、実行され"
+"ている HPTS アプリケーションプロセスよりトランザクションの状態を取得します。"
+"class com.arjuna.ats.arjuna.coordinator.InitAction によってアプリケーションプ"
+"ロセス毎に 1 つの TransactionStatusManager が作成されます。現在、"
+"RecoveryManager と TransactionStatusManager 間の通信には TCP 接続が使用されま"
+"す。TransactionStatusManager はデフォルトで任意の空きポートを使用しますが、次"
+"のプロパティでポートを固定することもできます。"
 
 #. Tag: screen
-#: Architecture_of_the_Recovery_Manager.xml:486
+#: Architecture_of_the_Recovery_Manager.xml:509
 #, no-c-format
 msgid "com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort"
-msgstr ""
+msgstr "com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:487
+#: Architecture_of_the_Recovery_Manager.xml:510
 #, no-c-format
 msgid ""
 "On creation the TransactionStatusManager obtains a port which it stores with "
@@ -1442,24 +2079,35 @@
 "TransactionStatusConnector, the transaction status is obtained from the "
 "local thransaction table and returned back to the TransactionStatusConnector."
 msgstr ""
+"TransactionStatusManager が作成されると、TransactionStatusManagerItem として "
+"Object Store にホストと共に保存するポートを取得します。リスナスレッドが起動"
+"し、TransactionStatusConnector からの接続要求を待ちます。接続が確立されると "
+"Connection スレッドが作成され、TransactionStatusConnector からのトランザク"
+"ション Uid とトランザクションタイプ(存在する場合)を許可する Service  "
+"(AtomicActionStatusService) が実行されます。トランザクションの状態はローカル"
+"のトランザクションテーブルより取得され、TransactionStatusConnector に返されま"
+"す。"
 
 #. Tag: title
-#: Architecture_of_the_Recovery_Manager.xml:492
+#: Architecture_of_the_Recovery_Manager.xml:515
 #, no-c-format
 msgid "Object Store"
-msgstr ""
+msgstr "Object Store"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:493
+#: Architecture_of_the_Recovery_Manager.xml:516
 #, 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 ""
+"すべてのオブジェクトはクラス継承と同等のファイルパスで保存されます。よって、"
+"AtomicAction トランザクションは「 ../StateManager/BasicAction/AtomicAction」"
+"に保存されます。"
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:496
+#: Architecture_of_the_Recovery_Manager.xml:519
 #, no-c-format
 msgid ""
 "All objects are identified by a unique identifier Uid. One of the values of "
@@ -1467,3 +2115,69 @@
 "uses the process id to locate transaction status manager items when "
 "contacting the originator application process for the transaction status."
 msgstr ""
+"オブジェクトは固有の Uid によって識別されます。その値の 1 つが、オブジェクト"
+"が作成されたプロセスの ID になります。Recovery Manager は、トランザクションの"
+"状態を取得するため元のアプリケーションプロセスに接触する際、プロセス IDを使用"
+"してトランザクションステータスマネージャの項目を探します。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:524
+#, no-c-format
+msgid "Stock free operation"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:525
+#, no-c-format
+msgid ""
+"The use of TCP/IP sockets for TransactionStatusManager and RecoveryManager "
+"provides for maximum flexibility in the deployment architecture. It is often "
+"desirable to run the RecoveryManager in a separate JVM from the Transaction "
+"manager(s) for increased reliability. In such deployments, TCP/IP provides "
+"for communication between the RecoveryManager and transaction manager(s), as "
+"detailed in the preceding sections. Specifically, each JVM hosting a "
+"TransactionManager will run a TransactionStatusManager listener, through "
+"which the RecoveryManager can contact it to determine if a transaction is "
+"still live or not. The RecoveryManager likewise listens on a socket, through "
+"which it can be contacted to perform recovery scans on demand. The presence "
+"of a recovery listener is also used as a safety check when starting a "
+"RecoveryManager, since at most one should be running for a given ObjectStore."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:528
+#, no-c-format
+msgid ""
+"There are some deployment scenarios in which there is only a single "
+"TransactionManager accessing the ObjectStore and the RecoveryManager is co-"
+"located in the same JVM. For such cases the use of TCP/IP sockets for "
+"communication introduces unnecessary runtime overhead. Additionally, if "
+"several such distinct processes are needed for e.g. replication or "
+"clustering, management of the TCP/IP port allocation can become unwieldy. "
+"Therefore it may be desirable to configure for socketless recovery operation."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:531
+#, no-c-format
+msgid ""
+"The property <property>com.arjuna.ats.arjuna.coordinator."
+"transactionStatusManagerEnable</property> can be set to a value of "
+"<literal>NO</literal> to disable the TransactionStatusManager for any given "
+"TransactionManager. Note that this must not be done if recovery runs in a "
+"separate process, as it may lead to incorrect recovery behavior in such "
+"cases. For an in-process recovery manager, the system will use direct access "
+"to the ActionStatusService instead."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:534
+#, no-c-format
+msgid ""
+"The property <property>com.arjuna.ats.arjuna.recovery.recoveryListener</"
+"property> can likewise be used to disable the TCP/IP socket listener used by "
+"the recovery manager. Care must be taken not to inadvertently start multiple "
+"recovery managers for the same ObjectStore, as this error, which may lead to "
+"significant crash recovery problems, cannot be automatically detected and "
+"prevented without the benefit of the socket listener."
+msgstr ""

Modified: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/Author_Group.po	2009-09-17 02:48:30 UTC (rev 29386)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/Author_Group.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -1,20 +1,23 @@
+# translation of Preface.po to Japanese
 # Language ja-JP translations for Transactions_Failure_Recovery_Guide package.
+#
 # Automatically generated, 2008.
-#
+# Junko Ito <junko.ito at rehdat.com>, 2008.
 msgid ""
 msgstr ""
-"Project-Id-Version: Transactions_Failure_Recovery_Guide 0.1\n"
+"Project-Id-Version: Preface\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"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-08-05 11:46+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
-#. Tag: corpauthor
+#. Tag: author
 #: Author_Group.xml:6
-#, no-c-format
-msgid "Red Hat Documentation Group"
-msgstr ""
+#, fuzzy, no-c-format
+msgid "<firstname>Red Hat Documentation Group</firstname> <surname></surname>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"

Modified: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/Book_Info.po	2009-09-17 02:48:30 UTC (rev 29386)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/Book_Info.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -1,46 +1,51 @@
+# translation of Preface.po to Japanese
 # Language ja-JP translations for Transactions_Failure_Recovery_Guide package.
+#
 # Automatically generated, 2008.
-#
+# Junko Ito <junko.ito at rehdat.com>, 2008.
 msgid ""
 msgstr ""
-"Project-Id-Version: Transactions_Failure_Recovery_Guide 0.1\n"
+"Project-Id-Version: Preface\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"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-08-05 11:46+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
 #: Book_Info.xml:6
 #, no-c-format
-msgid "Transactions Failure Recovery Guide"
+msgid "JBoss Transactions Failure Recovery Guide"
 msgstr ""
 
 #. Tag: subtitle
 #: Book_Info.xml:7
 #, no-c-format
-msgid "JBoss Enterprise Application Platform"
+msgid "for Use with JBoss Enterprise Application Platform 5.0"
 msgstr ""
 
 #. Tag: para
-#: Book_Info.xml:11
+#: Book_Info.xml:13
 #, no-c-format
 msgid ""
 "This book is the Enterprise Application Platform edition of the JBoss "
 "Transactions Failure Recovery Guide"
 msgstr ""
+"この本は、Enterprise Application Platform 版の JBoss トランザクション障害リカ"
+"バリガイドです。"
 
 #. Tag: phrase
-#: Book_Info.xml:18
+#: Book_Info.xml:20
 #, no-c-format
 msgid "Logo"
-msgstr ""
+msgstr "ロゴ"
 
 #. Tag: holder
-#: Book_Info.xml:24
+#: Book_Info.xml:26
 #, no-c-format
 msgid "&HOLDER;"
-msgstr ""
+msgstr "&HOLDER;"

Modified: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/How_JBossTS_managers_the_OTS_Recovery_Protocol.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/How_JBossTS_managers_the_OTS_Recovery_Protocol.po	2009-09-17 02:48:30 UTC (rev 29386)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/How_JBossTS_managers_the_OTS_Recovery_Protocol.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -1,29 +1,32 @@
+# translation of Preface.po to Japanese
 # Language ja-JP translations for Transactions_Failure_Recovery_Guide package.
-# Automatically generated, 2008.
 #
+# Automatically generated, 2008.
+# Junko Ito <junko.ito at rehdat.com>, 2008.
 msgid ""
 msgstr ""
-"Project-Id-Version: Transactions_Failure_Recovery_Guide 0.1\n"
+"Project-Id-Version: Preface\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"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-08-05 11:46+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:6
 #, no-c-format
 msgid "How JBossTS manages the OTS Recovery Protocol"
-msgstr ""
+msgstr "JBossTS による OTS リカバリプロトコルの管理方法"
 
 #. Tag: title
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:10
 #, no-c-format
 msgid "Recovery Protocol in OTS-Overview"
-msgstr ""
+msgstr "OTS のリカバリプロトコル - 概要"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:11
@@ -35,6 +38,11 @@
 "According to that transaction status, those participants can take "
 "appropriate decision either by roll backing or committing."
 msgstr ""
+"障害が発生した際にリカバリを管理するため、OTS の仕様にはリカバリプロトコルが"
+"定義されています。ダウト状態にあるトランザクションの参加者は、"
+"RecoveryCoordinator を使用してトランザクションの状態を判断することができま"
+"す。参加者はこのトランザクションの状態を基にロールバックまたはコミットを実行"
+"します。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:14
@@ -46,18 +54,22 @@
 "Resource through recovery procedures in the event of a failure occurring "
 "during the transaction."
 msgstr ""
+"トランザクション Coordinator上で register_resource の呼び出しに成功すると、"
+"RecoveryCoordinator への参照が返されます。このオブジェクトは暗黙的に単一の "
+"Resource へ関連付けられおり、トランザクションの間に障害が発生した場合、リカバ"
+"リ手順で Resource に対応するために使用することができます。"
 
 #. Tag: caption
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:21
 #, no-c-format
 msgid "Resource and RecoveryCoordinator relationship."
-msgstr ""
+msgstr "リソースと RecoveryCoordinator の関係"
 
 #. Tag: title
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:26
 #, no-c-format
 msgid "RecoveryCoordinator in JBossTS"
-msgstr ""
+msgstr "JBossTS の RecoveryCoordinator"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:27
@@ -73,6 +85,15 @@
 "default RecoveryCoordinator object with it’s associated default servant to "
 "manage all replay_completion invocations."
 msgstr ""
+"リソースが登録される度に RecoveryCoordinator オブジェクトが作成され、"
+"register_resource 操作を呼び出したアプリケーションに返されるはずです。各 "
+"CORBA オブジェクトの裏には、RecoveryCoordinator オブジェクトで操作を実行する"
+"オブジェクト実装または Servant オブジェクト(POA 用語)があるはずです。"
+"JBossTS は、関連するサーバントを各 register_resource 持つ "
+"RecoveryCoordinator オブジェクトを作成するのではなく、サーバントを作成せずに"
+"パフォーマンスを向上するため、関連するデフォルトのサーバントを持つデフォルト"
+"の RecoveryCoordinator オブジェクトに依存し、すべての replay_completion 呼び"
+"出しを管理します。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:30
@@ -82,12 +103,16 @@
 "Adapter architecture, then we describe how this architecture is used to "
 "provide RecoveryCoordinator creation with optimization as explained above."
 msgstr ""
+"はじめに、ポータブルオブジェクトアダプタ (Portable Object Adapter) アーキテク"
+"チャの概要について次以降の項で説明します。次に、上記の通り最適化された "
+"RecoveryCoordinator の作成を提供するため、このアーキテクチャを使用する方法を"
+"説明します。"
 
 #. Tag: title
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:34
 #, no-c-format
 msgid "Understanding POA"
-msgstr ""
+msgstr "POA を理解する"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:35
@@ -98,12 +123,15 @@
 "request. The Object is then invoked and the response is returned to the "
 "client."
 msgstr ""
+"基本的に、ポータブルオブジェクトアダプタ (POA) とはクライアント要求を阻止し、"
+"そのクライアント要求を満たすオブジェクトを特定するオブジェクトのことです。オ"
+"ブジェクトはその後呼び出され、応答がクライアントへ返されます。"
 
 #. Tag: caption
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:43
 #, no-c-format
 msgid "Overview of the POA."
-msgstr ""
+msgstr "POA の概要"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:45
@@ -122,6 +150,17 @@
 "space for POAs. A POA is created as a child of an existing POA, which forms "
 "a hierarchy starting with the root POA."
 msgstr ""
+"クライアント要求を実行するオブジェクトはサーバントと呼ばれ、クライアントに"
+"よって要求された CORBA オブジェクトの実装を提供します。サーバントは 1 つ以上"
+"の CORBA オブジェクト参照を提供します。サーバントを取得するため、各 POA は "
+"POA でアクティブになったすべてのオブジェクトをサーバントへマップする Active "
+"Object Map を保持します。各着信要求に対して、POA は Active Object Map 内でオ"
+"ブジェクト参照をルックアップし、関与するサーバントを見つけようとします。関与"
+"するサーバントがない場合は、要求がデフォルトのサーバントに委譲されるか、適切"
+"なサーバントをアクティブ化または検索するためにサーバントマネージャが呼び出さ"
+"れます。POA は、Object ID によって指定されるオブジェクトの名前空間だけでな"
+"く、POA の名前空間も提供します。POA は既存 POA の子として作成され、ルート "
+"POA から始まる階層を形成します。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:48
@@ -132,6 +171,9 @@
 "values can be assigned that suit the application requirements. The POA "
 "specification defines:"
 msgstr ""
+"各 POA は特性を定義する一連のポリシーを持っています。新しい POA を作成する"
+"際、デフォルトのポリシーセットを使用するか、アプリケーションの要件に合う値を"
+"適応することができます。POA の仕様は次を定義します。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:53
@@ -140,6 +182,8 @@
 "<emphasis>Thread policy:</emphasis> Specifies the threading model to be used "
 "by the POA. Possible values are:"
 msgstr ""
+"<emphasis>スレッドポリシー:</emphasis> POA が仕様するスレッディングモデルを指"
+"定します。指定可能な値は次の通りです。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:58
@@ -147,13 +191,13 @@
 msgid ""
 "ORB_CTRL_MODEL (default): The POA is responsible for assigning requests to "
 "threads."
-msgstr ""
+msgstr "ORB_CTRL_MODEL (デフォルト): POA がスレッドに要求を割り当てます。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:63
 #, no-c-format
 msgid "SINGLE_THREAD_MODEL: The POA processes requests sequentially"
-msgstr ""
+msgstr "SINGLE_THREAD_MODEL: POA は要求を順次処理します。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:70
@@ -162,6 +206,8 @@
 "<emphasis>Lifespan policy:</emphasis> Specifies the lifespan of the objects "
 "implemented in the POA. The lifespan policy can have the following values:"
 msgstr ""
+"<emphasis>ライフスパンポリシー:</emphasis> POA に実装されたオブジェクトのライ"
+"フスパンを指定します。ライフスパンポリシーに指定できる値は次の通りです。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:75
@@ -172,6 +218,10 @@
 "OBJECT_NOT_EXIST exception occurs when attempting to use any object "
 "references generated by the POA."
 msgstr ""
+"POA に実装された TRANSIENT (デフォルト) オブジェクトは、最初にそのオブジェク"
+"トが作成されたプロセスよりも長く存在することはできません。POA が非アクティブ"
+"になった後に、POA が生成したオブジェクト参照を使用しようとすると、"
+"OBJECT_NOT_EXIST 例外が発生します。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:80
@@ -180,6 +230,8 @@
 "PERSISTENT Objects implemented in the POA can outlive the process in which "
 "they are first created."
 msgstr ""
+"POA に実装された PERSISTENT オブジェクトは、最初にそのオブジェクトが作成され"
+"たプロセスが終了した後も存在することが可能です。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:87
@@ -189,12 +241,17 @@
 "abstract objects. The Object ID Uniqueness policy can have the following "
 "values:"
 msgstr ""
+"オブジェクト ID 一意性ポリシー:複数の抽象オブジェクトが 1 つのサーバントを共"
+"有できるようにします。オブジェクト ID 一意性ポリシーには次の値を指定すること"
+"ができます。"
 
 #. 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 ""
+"UNIQUE_ID (デフォルト): アクティブになったサーバントは 1 つの Object ID のみ"
+"サポートします。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:97
@@ -203,6 +260,9 @@
 "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 ""
+"MULTIPLE_ID: アクティブになったサーバントは 1 つ以上の Object ID を持つことが"
+"できます。実行時に呼び出されたメソッド内で Object ID を決定しなければなりませ"
+"ん。 "
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:104
@@ -212,18 +272,20 @@
 "applications or by the POA. The ID Assignment policy can have the following "
 "values:"
 msgstr ""
+"ID 割り当てポリシー: サーバーアプリケーションと POA のどちらでオブジェクト "
+"ID を生成するか指定します。ID 割り当てポリシーには次の値を指定できます。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:109
 #, no-c-format
 msgid "USER_ID is for persistent objects, and"
-msgstr ""
+msgstr "USER_ID は永続オブジェクト用です。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:114
 #, no-c-format
 msgid "SYSTEM_ID is for transient objects."
-msgstr ""
+msgstr "SYSTEM_ID は一時オブジェクト用です。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:121
@@ -233,6 +295,8 @@
 "in the Active Object Map. The Servant Retention policy can have the "
 "following values:"
 msgstr ""
+"サーバント保持ポリシー: Active Object Map のアクティブサーバントを POA が保持"
+"するか指定します。サーバント保持ポリシーには次の値を指定できます。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:126
@@ -242,6 +306,9 @@
 "RETAIN is usually used with ServantActivators or explicit activation methods "
 "on POA."
 msgstr ""
+"RETAIN (デフォルト) を指定すると、Active Object Map におけるオブジェクトのア"
+"クティブ化を POA が追跡します。RETAIN は通常、ServantActivators または POA 上"
+"の明示的アクティブ化メソッドと共に使用されます。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:131
@@ -250,13 +317,15 @@
 "NON_RETAIN The POA does not retain active servants in the Active Object Map. "
 "NON_RETAIN is typically used with ServantLocators."
 msgstr ""
+"NON_RETAIN を指定すると、POA は アクティブなサーバントを Active Object Map 内"
+"に保持しません。NON_RETAIN は通常、ServantLocators と共に使用されます。"
 
 #. 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 ""
+msgstr "要求処理ポリシー: POA によって要求を処理する方法を指定します。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:143
@@ -266,6 +335,9 @@
 "Active Object Map, an OBJECT_NOT _EXIST exception is returned. The POA must "
 "also use the RETAIN policy with this value."
 msgstr ""
+"USE_ACTIVE_OBJECT_MAP (デフォルト): Object ID がActive Object Map にリストさ"
+"れていない場合、OBJECT_NOT _EXIST 例外が返されます。また、POA はこの値で "
+"RETAIN ポリシーを使用しなければなりません。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:148
@@ -276,6 +348,11 @@
 "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 ""
+"USE_DEFAULT_SERVANT: Object ID が Active Object Map にリストされていなかった"
+"り、NON_RETAIN ポリシーが設定されている場合、要求はデフォルトのサーバントに送"
+"られます。デフォルトのサーバントが設定されていない場合、OBJ_ADAPTER 例外が返"
+"されます。また、POA はこの値で MULTIPLE_ID ポリシーを使用しなければなりませ"
+"ん。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:153
@@ -285,6 +362,9 @@
 "or the NON_RETAIN policy is set, the servant manager is used to obtain a "
 "servant."
 msgstr ""
+"USE_SERVANT_MANAGER: Object ID が Active Object Map にリストされていなかった"
+"り、NON_RETAIN ポリシーが設定されている場合、サーバントマネージャを使用して"
+"サーバントを取得します。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:160
@@ -294,6 +374,8 @@
 "activation of servants. The Implicit Activation policy can have the "
 "following values:"
 msgstr ""
+"暗黙的アクティブ化ポリシー: サーバントの暗示的なアクティブ化を POA がサポート"
+"するか指定します。暗黙的アクティブ化ポリシーには次の値を指定できます。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:165
@@ -305,6 +387,12 @@
 "or by invoking <methodname>_this()</methodname> on the servant. The POA must "
 "also use the SYSTEM_ID and RETAIN policies with this value."
 msgstr ""
+"IMPLICIT_ACTIVATION: POA はサーバントの暗黙的なアクティブ化をサポートします。"
+"サーバントをアクティブにするには、<methodname>org.omg.PortableServer.POA."
+"servant_to_reference()</methodname> でサーバントをオブジェクト参照に変換する"
+"か、サーバントで <methodname>_this()</methodname> を呼び出します。また、POA "
+"はこの値で SYSTEM_ID ポリシーおよび RETAIN ポリシーを使用しなければなりませ"
+"ん。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:170
@@ -313,6 +401,8 @@
 "NO_IMPLICIT_ACTIVATION (Default): The POA does not support implicit "
 "activation of servants."
 msgstr ""
+"NO_IMPLICIT_ACTIVATION (デフォルト):POA はサーバントの暗示的なアクティブ化を"
+"サポートしません。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:177
@@ -325,287 +415,19 @@
 "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."
+"where resides the server and also the POA name. JBossTS provides one servant "
+"per machine to perform replay_completion invocations. This servant is "
+"located in the RecoveryManager process. The RecoveryManager process is a "
+"separate process from the client and 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 ""
+msgstr "JacOrb のおけるデフォルト RecoveryCoordinator"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:283
@@ -617,7 +439,18 @@
 "object references with specific IP address, port number and POA name in "
 "order to reach the appropriate default servant."
 msgstr ""
+"JacORB は、RecoveryCoordinator オブジェクト上の要求を RecoveryManager プロセ"
+"ス内にあるデフォルトサーバントへリダイレクトする追加ポリシーを定義しません。"
+"しかし、適切なデフォルトサーバントにアクセスするため、特定の IP アドレスや"
+"ポート番号、POA 名でオブジェクト参照を作成できるよう、一連の API を提供しま"
+"す。"
 
+#. Tag: title
+#: 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:288
 #, no-c-format
@@ -634,6 +467,17 @@
 "<interfacename>RecoveryActivator</interfacename> that leads to the creation "
 "of the default servant that performs replay_completion invocations requests."
 msgstr ""
+"Recovery Manager が起動すると、ロードする必要がある RecoveryActivator を設定"
+"内で探します。その後、ロードされた各インスタンスの "
+"<methodname>startRCservice</methodname> メソッドを呼び出します。前章 (リカバ"
+"リマネージャ) の説明通り、ロード対象の <interfacename>RecoveryActivator</"
+"interfacename> インターフェイスを実装するクラスは "
+"<classname>RecoveryEnablement</classname> になります。この汎用クラスは "
+"<package>com.arjuna.ats.internal.jts.orbspecific.recovery</package> パッケー"
+"ジ内にあり、アプリケーション (JacORB) が使用する ORB の本質を隠します。次の図"
+"は、すべての replay_invocations 要求を実行するデフォルトサーバントが作成され"
+"ることになる <interfacename>RecoveryActivator</interfacename> の動作を表して"
+"います。"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:292
@@ -646,6 +490,11 @@
 "<code>RecoveryCoordinator</code> object reference created on "
 "register_resource."
 msgstr ""
+"デフォルトのサーバントが作成されるだけでなく、<code>RecoveryCoordinator</"
+"code> オブジェクトへのオブジェクト参照が作成され、ObjectStore に保存されま"
+"す。IP アドレスやポート番号、POA 名を取得するためこのオブジェクト参照が使用さ"
+"れ、これらは register_resource 上に作成された <code>RecoveryCoordinator</"
+"code> オブジェクト参照に割り当てられます。"
 
 #. Tag: caption
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:299
@@ -653,6 +502,7 @@
 msgid ""
 "replay_completion invocation forwarded to the default RecoveryCoordinator."
 msgstr ""
+"デフォルトの RecoveryCoordinator に転送される replay_completion 呼び出し"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:301
@@ -669,6 +519,15 @@
 "that is creating the new <code>RecoveryCoordinator</code> object reference, "
 "as illustrated below."
 msgstr ""
+"アプリケーションがトランザクションにてリソースを登録する際、"
+"<code>RecoveryCoordinator</code> オブジェクト参照が返されるはずです。そのオブ"
+"ジェクト参照を作成するため、Transaction Service は Recovery Manager 内でテン"
+"プレートをして作成された RecoveryCoordinator オブジェクト参照を使用します。新"
+"しいオブジェクト参照は実質的に同じ情報を持ち、デフォルトのサーバントを取得し"
+"ますが(IP アドレス、ポート番号、POA 名など)、Object ID は異なります。下記の"
+"通り、この Object ID には実行中トランザクションの Transaction ID と、新しい "
+"<code>RecoveryCoordinator</code> オブジェクト参照を作成するプロセスの "
+"Process ID が含まれています。"
 
 #. Tag: caption
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:308
@@ -677,6 +536,8 @@
 "Resource registration and returned RecoveryCoordinator Object reference "
 "build from a reference stored in the ObjectStore."
 msgstr ""
+"リソース登録と返される RecoveryCoordinator Object 参照 (ObjectStore に保存さ"
+"れた参照より作成)"
 
 #. Tag: para
 #: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:310
@@ -690,3 +551,9 @@
 "extract the transaction identifier and the process identifier needed to "
 "determine the status of the requested transaction."
 msgstr ""
+"アプリケーションに返された <code>RecoveryCoordintaor</code> オブジェクト参照"
+"は、POA や Recovery Manager にあるデフォルトのサーバントを取得するために必要"
+"な情報をすべて持っているため、マシンごとの replay_completion 呼び出しは同じデ"
+"フォルトの <code>RecoveryCoordinator</code> に転送されます。そのため、着信要"
+"求より Object ID を取得し、要求があったトランザクションの状態を判定するために"
+"必要なトランザクション識別子やプロセス識別子を抽出することができます。"

Modified: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/Preface.po	2009-09-17 02:48:30 UTC (rev 29386)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/Preface.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -1,20 +1,23 @@
+# translation of Preface.po to Japanese
 # Language ja-JP translations for Transactions_Failure_Recovery_Guide package.
+#
 # Automatically generated, 2008.
-#
+# Junko Ito <junko.ito at rehdat.com>, 2008.
 msgid ""
 msgstr ""
-"Project-Id-Version: Transactions_Failure_Recovery_Guide 0.1\n"
+"Project-Id-Version: Preface\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"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-08-05 11:46+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
 #: Preface.xml:6
 #, no-c-format
 msgid "Preface"
-msgstr ""
+msgstr "はじめに"

Modified: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/Revision_History.po	2009-09-17 02:48:30 UTC (rev 29386)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/ja-JP/Revision_History.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -1,20 +1,29 @@
+# translation of Preface.po to Japanese
 # Language ja-JP translations for Transactions_Failure_Recovery_Guide package.
+#
 # Automatically generated, 2008.
-#
+# Junko Ito <junko.ito at rehdat.com>, 2008.
 msgid ""
 msgstr ""
-"Project-Id-Version: Transactions_Failure_Recovery_Guide 0.1\n"
+"Project-Id-Version: Preface\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"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-08-05 11:46+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr "改訂履歴"
+
 #. Tag: author
-#: Revision_History.xml:9
+#: Revision_History.xml:12
 #, no-c-format
 msgid "<firstname></firstname> <surname></surname> <email></email>"
-msgstr ""
+msgstr "<firstname></firstname> <surname></surname> <email></email>"

Modified: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/Architecture_of_the_Recovery_Manager.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/Architecture_of_the_Recovery_Manager.pot	2009-09-17 02:48:30 UTC (rev 29386)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/Architecture_of_the_Recovery_Manager.pot	2009-09-17 02:54:03 UTC (rev 29387)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-14 01:29+0000\n"
+"POT-Creation-Date: 2009-09-17 02:51+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"
@@ -863,13 +863,68 @@
 #. Tag: title
 #: Architecture_of_the_Recovery_Manager.xml:338
 #, no-c-format
-msgid "Writing a Recovery Module"
+msgid "Assumed complete"
 msgstr ""
 
 #. Tag: para
 #: Architecture_of_the_Recovery_Manager.xml:339
 #, no-c-format
 msgid ""
+"If a failure occurs in the transaction environment after the transaction "
+"coordinator had told the XAResource to commit but before the transaction log "
+"has been updated to remove the participant, then recovery will attempt to "
+"replay the commit. In the case of a Serialized XAResource, the response from "
+"the XAResource will enable the participant to be removed from the log, which "
+"will eventually be deleted when all participants have been committed. "
+"However, if the XAResource is not recoverable then it is extremely unlikely "
+"that any <interfacename>XAResourceRecovery</interfacename> instance will be "
+"able to provide the recovery sub-system with a fresh XAResource to use in "
+"order to attempt recovery; in which case recovery will continually fail and "
+"the log entry will never be removed."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:343
+#, no-c-format
+msgid "There are two possible solutions to this problem:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:348
+#, no-c-format
+msgid ""
+"Rely on the relevant ExpiryScanner to eventually move the log elsewhere. "
+"Manual intervention will then be needed to ensure the log can be safely "
+"deleted. If a log entry is moved, suitable warning messages will be output."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:353
+#, no-c-format
+msgid ""
+"Set <property>com.arjuna.ats.jta.xaAssumeRecoveryComplete</property> to "
+"true. This option is checked whenever a new XAResource instance cannot be "
+"located from any registered <interfacename>XAResourceRecovery</"
+"interfacename> instance. If false (the default), recovery assumes that there "
+"is a transient problem with the <interfacename>XAResourceRecovery</"
+"interfacename> instances (for example, not all have been registered with the "
+"sub-system) and will attempt recovery periodically. If true then recovery "
+"assumes that a previous commit attempt succeeded and this instance can be "
+"removed from the log with no further recovery attempts. This option is "
+"global, so needs to be used with care since if used incorrectly, XAResource "
+"instances may remain in an uncommitted state."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:359
+#, no-c-format
+msgid "Writing a Recovery Module"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:360
+#, 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 "
@@ -883,13 +938,13 @@
 msgstr ""
 
 #. Tag: title
-#: Architecture_of_the_Recovery_Manager.xml:342
+#: Architecture_of_the_Recovery_Manager.xml:363
 #, no-c-format
 msgid "A basic scenario"
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:343
+#: Architecture_of_the_Recovery_Manager.xml:364
 #, no-c-format
 msgid ""
 "This basic example does not aim to present a complete process to recover "
@@ -898,7 +953,7 @@
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:345
+#: Architecture_of_the_Recovery_Manager.xml:366
 #, no-c-format
 msgid ""
 "The application used here consists to create an atomic transaction, to "
@@ -907,25 +962,25 @@
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:350
+#: Architecture_of_the_Recovery_Manager.xml:371
 #, no-c-format
 msgid "to decide to commit or abort the transaction,"
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:355
+#: Architecture_of_the_Recovery_Manager.xml:376
 #, no-c-format
 msgid "to decide generating a crash during the commitment process."
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:360
+#: Architecture_of_the_Recovery_Manager.xml:381
 #, 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:363
+#: Architecture_of_the_Recovery_Manager.xml:384
 #, no-c-format
 msgid ""
 "package com.arjuna.demo.recoverymodule;\n"
@@ -971,13 +1026,13 @@
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:364
+#: Architecture_of_the_Recovery_Manager.xml:385
 #, no-c-format
 msgid "The registered participant has the following behavior:"
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:369
+#: Architecture_of_the_Recovery_Manager.xml:390
 #, no-c-format
 msgid ""
 "During the prepare phase, it writes a simple message - <emphasis>I’m "
@@ -986,7 +1041,7 @@
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:374
+#: Architecture_of_the_Recovery_Manager.xml:395
 #, no-c-format
 msgid ""
 "During the commit phase, it writes another message - <emphasis>I’m "
@@ -994,7 +1049,7 @@
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:379
+#: Architecture_of_the_Recovery_Manager.xml:400
 #, no-c-format
 msgid ""
 "If it receives an abort message, it removes from the disk the file used for "
@@ -1002,7 +1057,7 @@
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:384
+#: Architecture_of_the_Recovery_Manager.xml:405
 #, no-c-format
 msgid ""
 "If a crash has been decided for the test, then it crashes during the commit "
@@ -1010,7 +1065,7 @@
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:389
+#: Architecture_of_the_Recovery_Manager.xml:410
 #, no-c-format
 msgid ""
 "The main portion of the code illustrating such behavior is described "
@@ -1018,7 +1073,7 @@
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:393
+#: Architecture_of_the_Recovery_Manager.xml:414
 #, no-c-format
 msgid ""
 "The location specified as the value for the variable <varname>filename</"
@@ -1026,7 +1081,7 @@
 msgstr ""
 
 #. Tag: screen
-#: Architecture_of_the_Recovery_Manager.xml:397
+#: Architecture_of_the_Recovery_Manager.xml:418
 #, no-c-format
 msgid ""
 "package com.arjuna.demo.recoverymodule;\n"
@@ -1093,7 +1148,7 @@
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:398
+#: Architecture_of_the_Recovery_Manager.xml:419
 #, no-c-format
 msgid ""
 "The role of the Recovery Module in such application consists to read the "
@@ -1103,7 +1158,7 @@
 msgstr ""
 
 #. Tag: screen
-#: Architecture_of_the_Recovery_Manager.xml:401
+#: Architecture_of_the_Recovery_Manager.xml:422
 #, no-c-format
 msgid ""
 "package com.arjuna.demo.recoverymodule;\n"
@@ -1171,7 +1226,7 @@
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:402
+#: Architecture_of_the_Recovery_Manager.xml:423
 #, no-c-format
 msgid ""
 "The recovery module should now be deployed in order to be called by the "
@@ -1181,7 +1236,7 @@
 msgstr ""
 
 #. Tag: screen
-#: Architecture_of_the_Recovery_Manager.xml:405
+#: Architecture_of_the_Recovery_Manager.xml:426
 #, no-c-format
 msgid ""
 "&lt;property\n"
@@ -1191,7 +1246,7 @@
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:406
+#: Architecture_of_the_Recovery_Manager.xml:427
 #, no-c-format
 msgid ""
 "Where &lt;i&gt; represent the new occurrence number that follows the last "
@@ -1200,7 +1255,7 @@
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:410
+#: Architecture_of_the_Recovery_Manager.xml:431
 #, no-c-format
 msgid ""
 "The source of the code can be retrieved under the trailmap directory of the "
@@ -1208,13 +1263,13 @@
 msgstr ""
 
 #. Tag: title
-#: Architecture_of_the_Recovery_Manager.xml:415
+#: Architecture_of_the_Recovery_Manager.xml:436
 #, no-c-format
 msgid "Another scenario"
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:416
+#: Architecture_of_the_Recovery_Manager.xml:437
 #, no-c-format
 msgid ""
 "As mentioned, the basic application presented above does not present the "
@@ -1225,7 +1280,7 @@
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:420
+#: Architecture_of_the_Recovery_Manager.xml:441
 #, no-c-format
 msgid ""
 "To manage recovery in case of failure, the OTS specification has defined a "
@@ -1238,7 +1293,7 @@
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:423
+#: Architecture_of_the_Recovery_Manager.xml:444
 #, no-c-format
 msgid ""
 "For each OTS Resource in a doubt status, it is well known which "
@@ -1250,7 +1305,7 @@
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:426
+#: Architecture_of_the_Recovery_Manager.xml:447
 #, no-c-format
 msgid ""
 "A recovery module dedicated to recover OTS Resources could have the "
@@ -1266,13 +1321,13 @@
 msgstr ""
 
 #. Tag: title
-#: Architecture_of_the_Recovery_Manager.xml:431
+#: Architecture_of_the_Recovery_Manager.xml:452
 #, no-c-format
 msgid "TransactionStatusConnectionManager"
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:432
+#: Architecture_of_the_Recovery_Manager.xml:453
 #, no-c-format
 msgid ""
 "The TransactionStatusConnectionManager object is used by the recovery "
@@ -1283,7 +1338,7 @@
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:435
+#: Architecture_of_the_Recovery_Manager.xml:456
 #, no-c-format
 msgid ""
 "The transactions status is retrieved using the getTransactionStatus methods "
@@ -1298,13 +1353,13 @@
 msgstr ""
 
 #. Tag: title
-#: Architecture_of_the_Recovery_Manager.xml:440
+#: Architecture_of_the_Recovery_Manager.xml:461
 #, no-c-format
 msgid "Expired Scanner Thread"
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:441
+#: Architecture_of_the_Recovery_Manager.xml:462
 #, no-c-format
 msgid ""
 "When the Recovery Manager initialises an expiry scanner thread "
@@ -1314,7 +1369,7 @@
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:444
+#: Architecture_of_the_Recovery_Manager.xml:465
 #, no-c-format
 msgid ""
 "Scanner modules are loaded at initialisation and are specified as properties "
@@ -1322,7 +1377,7 @@
 msgstr ""
 
 #. Tag: screen
-#: Architecture_of_the_Recovery_Manager.xml:447
+#: Architecture_of_the_Recovery_Manager.xml:468
 #, no-c-format
 msgid ""
 "com.arjuna.ats.arjuna.recovery.expiryScanner&lt;Scanner Name&gt;=&lt;Scanner "
@@ -1330,7 +1385,7 @@
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:448
+#: Architecture_of_the_Recovery_Manager.xml:469
 #, no-c-format
 msgid ""
 "All the scanner modules are called periodically to scan for dead items by "
@@ -1338,13 +1393,13 @@
 msgstr ""
 
 #. Tag: screen
-#: Architecture_of_the_Recovery_Manager.xml:451
+#: Architecture_of_the_Recovery_Manager.xml:472
 #, no-c-format
 msgid "com.arjuna.ats.arjuna.recovery.expiryScanInterval"
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:452
+#: Architecture_of_the_Recovery_Manager.xml:473
 #, no-c-format
 msgid ""
 "All scanners inherit the same behaviour from the java interface "
@@ -1352,7 +1407,7 @@
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:460
+#: Architecture_of_the_Recovery_Manager.xml:481
 #, no-c-format
 msgid ""
 "A scan method is provided by this interface and implemented by all scanner "
@@ -1360,7 +1415,7 @@
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:463
+#: Architecture_of_the_Recovery_Manager.xml:484
 #, no-c-format
 msgid ""
 "The ExpiredTransactionStatusManagerScanner removes long dead "
@@ -1370,25 +1425,25 @@
 msgstr ""
 
 #. Tag: screen
-#: Architecture_of_the_Recovery_Manager.xml:466
+#: Architecture_of_the_Recovery_Manager.xml:487
 #, no-c-format
 msgid "com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime"
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:467
+#: Architecture_of_the_Recovery_Manager.xml:488
 #, no-c-format
 msgid "(default 12 hours)"
 msgstr ""
 
 #. Tag: title
-#: Architecture_of_the_Recovery_Manager.xml:472
+#: Architecture_of_the_Recovery_Manager.xml:493
 #, no-c-format
 msgid "Application Process"
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:473
+#: Architecture_of_the_Recovery_Manager.xml:494
 #, no-c-format
 msgid ""
 "This represents the user transactional program. A Local transaction (hash) "
@@ -1400,7 +1455,7 @@
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:476
+#: Architecture_of_the_Recovery_Manager.xml:497
 #, no-c-format
 msgid ""
 "The transaction tables are accessed via the TransactionStatusManager object. "
@@ -1411,7 +1466,7 @@
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:479
+#: Architecture_of_the_Recovery_Manager.xml:500
 #, no-c-format
 msgid ""
 "The Recovery Manager uses the TransactionStatusConnectionManager object to "
@@ -1420,13 +1475,13 @@
 msgstr ""
 
 #. Tag: title
-#: Architecture_of_the_Recovery_Manager.xml:484
+#: Architecture_of_the_Recovery_Manager.xml:505
 #, no-c-format
 msgid "TransactionStatusManager"
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:485
+#: Architecture_of_the_Recovery_Manager.xml:506
 #, no-c-format
 msgid ""
 "This object acts as an interface for the Recovery Manager to obtain the "
@@ -1439,13 +1494,13 @@
 msgstr ""
 
 #. Tag: screen
-#: Architecture_of_the_Recovery_Manager.xml:488
+#: Architecture_of_the_Recovery_Manager.xml:509
 #, no-c-format
 msgid "com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort"
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:489
+#: Architecture_of_the_Recovery_Manager.xml:510
 #, no-c-format
 msgid ""
 "On creation the TransactionStatusManager obtains a port which it stores with "
@@ -1459,13 +1514,13 @@
 msgstr ""
 
 #. Tag: title
-#: Architecture_of_the_Recovery_Manager.xml:494
+#: Architecture_of_the_Recovery_Manager.xml:515
 #, no-c-format
 msgid "Object Store"
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:495
+#: Architecture_of_the_Recovery_Manager.xml:516
 #, no-c-format
 msgid ""
 "All objects are stored in a file path which is equivalent to their class "
@@ -1474,7 +1529,7 @@
 msgstr ""
 
 #. Tag: para
-#: Architecture_of_the_Recovery_Manager.xml:498
+#: Architecture_of_the_Recovery_Manager.xml:519
 #, no-c-format
 msgid ""
 "All objects are identified by a unique identifier Uid. One of the values of "
@@ -1482,3 +1537,65 @@
 "uses the process id to locate transaction status manager items when "
 "contacting the originator application process for the transaction status."
 msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:524
+#, no-c-format
+msgid "Stock free operation"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:525
+#, no-c-format
+msgid ""
+"The use of TCP/IP sockets for TransactionStatusManager and RecoveryManager "
+"provides for maximum flexibility in the deployment architecture. It is often "
+"desirable to run the RecoveryManager in a separate JVM from the Transaction "
+"manager(s) for increased reliability. In such deployments, TCP/IP provides "
+"for communication between the RecoveryManager and transaction manager(s), as "
+"detailed in the preceding sections. Specifically, each JVM hosting a "
+"TransactionManager will run a TransactionStatusManager listener, through "
+"which the RecoveryManager can contact it to determine if a transaction is "
+"still live or not. The RecoveryManager likewise listens on a socket, through "
+"which it can be contacted to perform recovery scans on demand. The presence "
+"of a recovery listener is also used as a safety check when starting a "
+"RecoveryManager, since at most one should be running for a given ObjectStore."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:528
+#, no-c-format
+msgid ""
+"There are some deployment scenarios in which there is only a single "
+"TransactionManager accessing the ObjectStore and the RecoveryManager is co-"
+"located in the same JVM. For such cases the use of TCP/IP sockets for "
+"communication introduces unnecessary runtime overhead. Additionally, if "
+"several such distinct processes are needed for e.g. replication or "
+"clustering, management of the TCP/IP port allocation can become unwieldy. "
+"Therefore it may be desirable to configure for socketless recovery operation."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:531
+#, no-c-format
+msgid ""
+"The property <property>com.arjuna.ats.arjuna.coordinator."
+"transactionStatusManagerEnable</property> can be set to a value of "
+"<literal>NO</literal> to disable the TransactionStatusManager for any given "
+"TransactionManager. Note that this must not be done if recovery runs in a "
+"separate process, as it may lead to incorrect recovery behavior in such "
+"cases. For an in-process recovery manager, the system will use direct access "
+"to the ActionStatusService instead."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:534
+#, no-c-format
+msgid ""
+"The property <property>com.arjuna.ats.arjuna.recovery.recoveryListener</"
+"property> can likewise be used to disable the TCP/IP socket listener used by "
+"the recovery manager. Care must be taken not to inadvertently start multiple "
+"recovery managers for the same ObjectStore, as this error, which may lead to "
+"significant crash recovery problems, cannot be automatically detected and "
+"prevented without the benefit of the socket listener."
+msgstr ""

Modified: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/Author_Group.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/Author_Group.pot	2009-09-17 02:48:30 UTC (rev 29386)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/Author_Group.pot	2009-09-17 02:54:03 UTC (rev 29387)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-14 01:29+0000\n"
+"POT-Creation-Date: 2009-09-17 02:51+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"

Modified: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/Book_Info.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/Book_Info.pot	2009-09-17 02:48:30 UTC (rev 29386)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/Book_Info.pot	2009-09-17 02:54:03 UTC (rev 29387)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-14 01:29+0000\n"
+"POT-Creation-Date: 2009-09-17 02:51+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"
@@ -17,14 +17,13 @@
 #. Tag: title
 #: Book_Info.xml:6
 #, no-c-format
-msgid "JBoss Transactions Failure Recovery Guide CP06"
+msgid "JBoss Transactions Failure Recovery Guide"
 msgstr ""
 
 #. Tag: subtitle
 #: Book_Info.xml:7
 #, no-c-format
-msgid ""
-"for Use with JBoss Enterprise Application Platform 4.3 Cumulative Patch 6"
+msgid "for Use with JBoss Enterprise Application Platform 5.0"
 msgstr ""
 
 #. Tag: para

Modified: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/How_JBossTS_managers_the_OTS_Recovery_Protocol.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/How_JBossTS_managers_the_OTS_Recovery_Protocol.pot	2009-09-17 02:48:30 UTC (rev 29386)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/How_JBossTS_managers_the_OTS_Recovery_Protocol.pot	2009-09-17 02:54:03 UTC (rev 29387)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-14 01:29+0000\n"
+"POT-Creation-Date: 2009-09-17 02:51+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"
@@ -335,274 +335,6 @@
 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 "
-"is assigned to the POA included in the object reference, the request is "
-"forward straight 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"
@@ -619,6 +351,12 @@
 "order to reach the appropriate default servant."
 msgstr ""
 
+#. Tag: title
+#: 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:288
 #, no-c-format

Modified: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/Preface.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/Preface.pot	2009-09-17 02:48:30 UTC (rev 29386)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/Preface.pot	2009-09-17 02:54:03 UTC (rev 29387)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-14 01:29+0000\n"
+"POT-Creation-Date: 2009-09-17 02:51+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"

Modified: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/Revision_History.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/Revision_History.pot	2009-09-17 02:48:30 UTC (rev 29386)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pot/Revision_History.pot	2009-09-17 02:54:03 UTC (rev 29387)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-07-14 01:29+0000\n"
+"POT-Creation-Date: 2009-09-17 02:51+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"

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/Architecture_of_the_Recovery_Manager.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/Architecture_of_the_Recovery_Manager.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/Architecture_of_the_Recovery_Manager.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,2238 @@
+# translation of Preface.po to Brazilian Portuguese
+# Language pt-BR translations for  package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-11-13 15:07+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:6
+#, no-c-format
+msgid "Architecture of the Recovery Manager"
+msgstr "Arquitetura do Gerenciador de Recuperação"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:8
+#, no-c-format
+msgid "Crash Recovery Overview"
+msgstr "Visão Geral da Recuperação de Travamento"
+
+#. 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 ""
+"Os principais componentes de arquitetura com a Recuperação de Travamento "
+"estão instalados no diagrama abaixo:"
+
+#. 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 ""
+"O Gerenciador de Recuperação é uma responsabilidade do processo daemon em "
+"desempenhar a recuperação de travamento. Apenas um Gerenciador de "
+"Recuperação roda por nó. O Armazenamento de Objeto fornece armazenamento de "
+"dados persistentes para as transações conectarem dados. Durante o processo "
+"de transação normal cada transação conectará dados persistentes necessários "
+"para a fase de confirmação do Armazenamento de Objeto. Na confirmação com "
+"êxito a transação destes dados são removidos. No entanto, caso a transação "
+"falhar estes dados continuarão com o Armazenamento do Objeto."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:20
+#, no-c-format
+msgid "The Recovery Manager functions by:"
+msgstr "As funções do Gerenciador de Recuperação:"
+
+#. 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 ""
+"Realização freqüente de scan do Armazenamento do Objeto para transações que "
+"possam ter falhado. As transações de falha são indicadas pela presença dos "
+"dados após um período de tempo que a transação poderia ter esperado por ser "
+"finalizada.  "
+
+#. 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 ""
+"Checagem com o processo do aplicativo que origina a transação se é que a "
+"transação continua em andamento ou não."
+
+#. 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 ""
+"Recuperação da transação pela re-ativação da transação e então as duas fases "
+"de execução do protocolo de confirmação. "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:40
+#, no-c-format
+msgid ""
+"The following sections describe the architectural components in more detail"
+msgstr ""
+"As seguintes seções descrevem os componentes de arquitetura em maiores "
+"detalhes:"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:46
+#, no-c-format
+msgid "Recovery Manager"
+msgstr "Gerenciador de Recuperação"
+
+#. 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 ""
+"O Gerenciador da Recuperação primeiramente carrega a informação de "
+"configuração através do arquivo de propriedade na inicialização. Esta "
+"configuração inclui um número de ativadores e módulos de recuperação, que "
+"estão dinamicamente carregados. "
+
+#. 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 ""
+"Desde a versão 3.0 do JBossTS, o Gerenciador da Recuperação não está "
+"especificamente arrumado para o Corretor de Solicitação do Objeto - Object "
+"Request Broker (ORB). Portanto, o protocolo de recuperação OTS não está "
+"implicitamente ativado. Para a ativação de tal protocolo, nós usamos o "
+"conceito do ativador de recuperação, definido com a interface "
+"<interfacename>RecoveryActivator</interfacename>, da qual é utilizada para "
+"instanciar uma classe de recuperação relacionada para o protocolo de "
+"comunicação adjacente. Por exemplo: quando utilizado com o OTS, o "
+"<interfacename>RecoveryActivitor</interfacename> possui por responsabilidade "
+"criar o objeto RecoveryCoordinator apto a responder a operação "
+"replay_completion."
+
+#. 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 ""
+"Todas as instâncias <interfacename>RecoveryActivator</interfacename> herdam "
+"a mesma interface. Elas estão carregadas através da seguinte propriedade de "
+"extensão de recuperação:"
+
+#. 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 ""
+"&lt;property  \n"
+"                   name=\"com.arjuna.ats.arjuna.recovery."
+"recoveryActivator_&lt;number&gt;\" value=\"RecoveryClass\" /&gt;"
+
+#. 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 ""
+"Segue abaixo a instância do <interfacename>RecoveryActivator</interfacename> "
+"fornecido na distribuição do JTS/OTS, que provavelmente não será comentado: "
+
+#. 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 ""
+"&lt;property \n"
+"        name=\"com.arjuna.ats.arjuna.recovery.recoveryActivator_1\" value="
+"\"com.arjuna.ats.internal.jts.orbspecific.recovery.RecoveryEnablement/&gt;"
+
+#. 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 ""
+"Quando carregadas todas as instâncias <interfacename>RecoveryActivator</"
+"interfacename> fornecerão o método <methodname>startRCservice</methodname> "
+"invocado pelo Gerenciador de recuperação e usado para criar o apropriado "
+"Componente de Recuperação apto a receber as solicitações de recuperação de "
+"acordo com um protocolo de transação particular. Por exemplo, o "
+"RecoveryCoordinator definido pelo protocolo OTS."
+
+#. 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 ""
+"Cada módulo de recuperação é usado para recuperar o tipo diferente de "
+"transação/recurso, porém cada módulo de recuperação herda o mesmo "
+"comportamento básico."
+
+#. 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 ""
+"A recuperação consiste de duas fases/passos separados por dois períodos de "
+"intervalo. O primeiro passo examina o armazenamento do objeto para "
+"transações de falha potencial. O segundo passo executa a recuperação de "
+"travamento nas transações de falha. O intervalo entre o primeiro e o segundo "
+"passo é conhecido como um período backoff. O intervalo entre o final do "
+"segundo passo e a inicialização do primeiro passo é o período de "
+"recuperação. O período de recuperação é maior que o período backoff."
+
+#. 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 ""
+"O Gerenciador de Recuperação invoca o primeiro passo até cada módulo de "
+"recuperação, aplicado no intervalo de período backoff, invoca o segundo "
+"passo até cada módulo de recuperação e finalmente aplica o intervalo do "
+"período de recuperação antes de re-inicializar o primeiro passo novamente."
+
+#. 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 ""
+"Os módulos de recuperação estão carregados através da seguinte propriedade "
+"de extensão de recuperação:"
+
+#. 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 ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;number&gt;=&lt;"
+"RecoveryClass&gt;"
+
+#. 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 ""
+"O período backoff e de recuperação estão configurados para uso das seguintes "
+"propriedades:"
+
+#. 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 ""
+"com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod        (default 10 "
+"secs)\n"
+"com.arjuna.ats.arjuna.recovery.periodicRecovery                (default 120 "
+"secs)"
+
+#. 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 ""
+"As seguintes classes java são usadas para implementar o Gerenciador de "
+"Recuperação:"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:86
+#, no-c-format
+msgid "package <package>com.arjuna.ats.arjuna.recovery</package>:"
+msgstr "package <package>com.arjuna.ats.arjuna.recovery</package>:"
+
+#. 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 ""
+"RecoveryManager: O processo daemon que começa pela instancialização de uma "
+"instância da classe RecoveryManagerImple."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:96
+#, no-c-format
+msgid "RecoveryEnvironment: Properties used by the recovery manager."
+msgstr ""
+"RecoveryEnvironment: Propriedades usadas pelo gerenciador de recuperação."
+
+#. 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 ""
+"RecoveryConfiguration: Especifica o nome do arquivo da propriedade do "
+"Gerenciador de Recuperação. (Por exemplo: RecoveryManager-properties.xml)"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:108
+#, no-c-format
+msgid "package <package>com.arjuna.ats.internal.ts.arjuna.recovery</package>:"
+msgstr "pacote <package>com.arjuna.ats.internal.ts.arjuna.recovery</package>:"
+
+#. 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 ""
+"RecoveryManagerImple: Cria e inicializa as instâncias do RecActivatorLoader, "
+"a segmentação PeriodicRecovery e a segmentação ExpiryEntryMonitor."
+
+#. 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 ""
+"RecActivatorLoader: Carrega dinamicamente o RecoveryActivator especificado "
+"no arquivo da propriedade do Gerenciador de Recuperação. Cada "
+"RecoveryActicator é especificado como uma extensão no arquivo das "
+"propriedades."
+
+#. 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 ""
+"PeriodicRecovery: A segmentação carrega cada módulo de recuperação, e então "
+"chama o método do primeiro passo para cada módulo, aplica o intervalo do "
+"período backoff, chama o método de segundo método para cada módulo e aplica "
+"o intervalo do período de recuperação. "
+
+#. 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 ""
+"RecoveryClassLoader: Carrega dinamicamente os módulos de recuperação "
+"especificados no arquivo de propriedade do Gerenciador de Recuperação. Cada "
+"módulo é especificado como uma extensão no arquivo de propriedades (por "
+"exemplo: com.arjuna.ats.arjuna.recovery.recoveryExtension1= com.arjuna.ats."
+"internal.ts.arjuna.recovery.AtomicActionRecoveryModule)."
+
+#. 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 ""
+"Por padrão, o gerenciador de recuperação escuta o primeiro portal disponível "
+"numa máquina dada. Caso você deseje controlar o número do portal que isto "
+"utiliza, você pode especificar isto usando o atributo com.arjuna.ats.arjuna."
+"recovery.recoveryPort."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:141
+#, no-c-format
+msgid "Embedding the Recovery Manager"
+msgstr "Implementação do Gerenciador de Recuperação"
+
+#. 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 ""
+"Em algumas situações, pode ser solicitado a adição do RecoveryManager no "
+"mesmo processo do serviço da transação. Neste caso, você pode criar uma "
+"instância do RecoveryManager através do método gerenciador no com.arjuna.ats."
+"arjuna.recovery.RecoveryManager. Um RecoveryManager pode ser criado em um "
+"dos dois modos, selecionados através do parâmetro para o método gerenciador:"
+
+#. 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 ""
+"INDIRECT_MANAGEMENT:o gerenciador roda periodicamente mas pode ser instruído "
+"para rodar quando desejado através da operação de scan ou através da classe "
+"RecoveryDriver a ser descrita abaixo."
+
+#. 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 ""
+"DIRECT_MANAGEMENT: o gerenciador não roda periodicamente e deve ser dirigido "
+"através da operação do scan ou RecoveryDriver."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:159
+#, no-c-format
+msgid "Managing recovery directly"
+msgstr "Gerenciamento direto de recuperação"
+
+#. 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 ""
+"Conforme mencionado anteriormente, a recuperação acontece tipicamente em "
+"intervalos periódicos. Caso você deseje dirigir a recuperação diretamente, "
+"existe duas opções dependendo de como o RecoveryManager foi criado."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:165
+#, no-c-format
+msgid "Seperate Recovery Manager"
+msgstr "Gerenciador de Recuperação Separado"
+
+#. 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 ""
+"Você pode tanto usar o programa com.arjuna.ats.arjuna.tools.RecoveryMonitor "
+"para enviar uma mensagem ao Gerenciador de Recuperação instruindo isto para "
+"executar a recuperação, ou você pode criar uma instância da classe com."
+"arjuna.ats.arjuna.recovery.RecoveryDriver para realizar algo parecido. "
+"Existem dois tipos e scans de recuperação disponíveis:"
+
+#. 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 ""
+"ASYNC_SCAN: esta mensagem é enviada para o RecoveryManager para instruí-lo a "
+"executar a recuperação, mas a resposta retorna antes da recuperação ter sido "
+"completada."
+
+#. 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 ""
+"SYNC: esta é a mensagem enviada para o RecoveryManager para instruí-lo a "
+"executar a recuperação e a resposta ocorre apenas quando a recuperação for "
+"completada."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:183
+#, no-c-format
+msgid "In process Recovery Manager"
+msgstr "Gerenciador de Recuperação em Processo"
+
+#. 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 ""
+"Você pode invocar a operação scan no RecoveryManager. Esta operação retorna "
+"apenas quando a recuperação tenha sido completada. No entanto, caso você "
+"deseje possuir um padrão de interação assíncrono, então a interface "
+"RecoveryScan será fornecida:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:188
+#, no-c-format
+msgid ""
+"public interface RecoveryScan\n"
+"{\n"
+"        public void completed ();\n"
+"}"
+msgstr ""
+"public interface RecoveryScan\n"
+"{\n"
+"        public void completed ();\n"
+"}"
+
+#. 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 ""
+"Uma instância de um objeto suportando esta interface pode ser passada à "
+"operação de scan e o método completado será chamado quando a recuperação for "
+"finalizada. No entanto, esta recuperação de scan retorna imediatamente."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:195
+#, no-c-format
+msgid "Recovery Modules"
+msgstr "Módulos de Recuperação"
+
+#. 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 ""
+"Conforme mencionado antes, cada módulo de recuperação é usado para recuperar "
+"um tipo diferente de transação/recurso, mas cada módulo de recuperação deve "
+"implementar a seguinte interface RecoveryModule, da qual define dois "
+"métodos: <methodname>periodicWorkFirstPass</methodname> e "
+"<methodname>periodicWorkSecondPass</methodname> invocados pelo Gerenciador "
+"de Recuperação."
+
+#. 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 ""
+"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"
+"}"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:201
+#, no-c-format
+msgid "JBossTS Recovery Module Classes"
+msgstr "Classes do Módulo de Recuperação do JBossTS"
+
+#. 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 ""
+"O JBossTS fornece um conjunto de módulos de recuperação que são responsáveis "
+"em gerenciar a recuperação de acordo com a natureza do participante e sua "
+"posição numa tree transacional. As classes fornecidas (das quais implementam "
+"a interface <interfacename>RecoveryModule</interfacename>) são:"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:209
+#, no-c-format
+msgid "com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"
+msgstr "com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:210
+#, no-c-format
+msgid "Recovers AtomicAction transactions."
+msgstr "Recupera as Transações AtomicAction."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:217
+#, no-c-format
+msgid "com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"
+msgstr "com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:218
+#, no-c-format
+msgid "Recovers Transactional Objects for Java."
+msgstr "Recupera os Objetos Transacionais para Java."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:225
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions.TransactionRecoveryModule"
+msgstr ""
+"com.arjuna.ats.internal.jts.recovery.transactions.TransactionRecoveryModule"
+
+#. 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 ""
+"Recupera as Transações JTS. Isto é uma classe genérica a partir da qual o "
+"Nível Top e da herança dos módulos de recuperação da transação do Servidor, "
+"respectivamente."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:233
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"TopLevelTransactionRecoveryModule"
+msgstr ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"TopLevelTransactionRecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:234
+#, no-c-format
+msgid "Recovers JTS Toplevel Transactions."
+msgstr "Recupera as Transações de Nível Top JTS."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:241
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"ServerTransactionRecoveryModule"
+msgstr ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"ServerTransactionRecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:242
+#, no-c-format
+msgid "Recovers JTS Server Transactions."
+msgstr "Recupera as Transações do Servidor JTS."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:248
+#, 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 ""
+"Para ilustrar o comportamento do módulo de recuperação, o seguinte pseudo "
+"code descreve o algoritmo básico usado para as transações de Ação Atômica e "
+"os Objetos Transacionais para Java."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:252
+#, no-c-format
+msgid "AtomicAction pseudo code"
+msgstr "AtomicAction pseudo code"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:253
+#, no-c-format
+msgid "First Pass:"
+msgstr "Primeiro Passo:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:257
+#, 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 ""
+"&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."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:258
+#: Architecture_of_the_Recovery_Manager.xml:267
+#, no-c-format
+msgid "Second Pass:"
+msgstr "Segundo Passo:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:261
+#, 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 ""
+"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."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:263
+#, no-c-format
+msgid "Transactional Object pseudo code"
+msgstr "Pseudo Code do Objeto Transacional"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:264
+#, no-c-format
+msgid "First Pass"
+msgstr "Primeiro Passo"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:266
+#, 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 ""
+"&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."
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:270
+#, 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 ""
+"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."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:272
+#, no-c-format
+msgid "A Recovery Module for XA Resources"
+msgstr "Um Módulo de recuperação para os Recursos XA"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:273
+#, 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 ""
+"Para gerenciar a recuperação, nós vimos nos capítulos anteriores que o "
+"Gerenciador de recuperação realiza o trigger num processo de recuperação "
+"pela chamada do conjunto dos módulos de recuperação que implementam os dois "
+"métodos definidos pela interface <interfacename>RecoveryModule</"
+"interfacename>."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:277
+#, 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 ""
+"Para ativar a recuperação dos participantes controlados através da interface "
+"<interfacename>XA</interfacename>, um nomeado módulo de recuperação "
+"específico será fornecido. O XARecoveryModule, definido nos pacotes "
+"<package>com.arjuna.ats.internal.jta.recovery.arjunacore</package> e "
+"<package>com.arjuna.ats.internal.jta.recovery.jts</package>, manuseia a "
+"recuperação dos recursos <interfacename>XA</interfacename> (por exemplo: "
+"banco de dados) usados no JTA."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:281
+#, 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 ""
+"O JBossTS suporta duas implementações JTA: uma versão local pura (sem "
+"transações distribuídas) e uma versão em camadas no JTS. A recuperação para "
+"o primeiro é direta. Nós devemos considerar a seguinte discussão nesta "
+"implementação. "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:285
+#, 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 ""
+"Este comportamento consiste em dois aspectos: <emphasis>transaction-"
+"initiated</emphasis> e recuperação <emphasis>resource-initiated</emphasis>. "
+"A recuperação de transação inicializada é possível onde a marca da transação "
+"particular tenha sucedido o suficiente para a Gravação do Recurso JTA ser "
+"gravado no ObjectStore, conforme ilustrado na figura 2."
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:292
+#, no-c-format
+msgid "JTA/JDBC information stored in the ObjectStore"
+msgstr "Informação JTA/JDBC armazenada no ObjectStore"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:294
+#, 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 ""
+"O registro do Recurso JTA contém a informação necessária para conectar a "
+"transação, conforme conhecida com o resto do JBossTS, ao banco de dados. A "
+"recuperação de recurso-inicializado é necessária para marcas onde a falha "
+"ocorrida após o banco da dados foi feito, mas antes do JTA ResourceRecord "
+"ter sido persistido. A recuperação do recurso inicializada é também "
+"necessária para banco de dados pelos quais não é possível manter informação "
+"no registro do Recurso JTA que permite a recriação no RecoveryManager do "
+"XAConnection/XAResource que foi usado no aplicativo original."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:298
+#, 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 ""
+"Quando rodando a recuperação XA é necessário informar o JBossTS os tipos de "
+"Xid que isto pode recuperar. Cada Xid que o JBossTS cria possui um único nó "
+"identificador codificado com isto e o JBossTs irá apenas recuperar as "
+"transações e estados que combinam com o identificador de nó especificado. O "
+"identificador do nó para uso deve ser fornecido para o JBossTS através da "
+"propriedade que inicializa com o nome <property>com.arjuna.ats.jta."
+"xaRecoveryNode</property>. Valores múltiplos poderão ser fornecidos. O valor "
+"do ‘*’ forçará o JBossTS a recuperar (e possivelmente reverter) todas as "
+"transações irrespectivamente de nosso nó identificador e deve ser usado com "
+"cuidado. Os conteúdos do <property>com.arjuna.ats.jta.xaRecoveryNode</"
+"property> devem ser alfa-numéricos e devem combinar com os valores do "
+"<property>com.arjuna.ats.arjuna.xa.nodeIdentifier</property>."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:302
+#, 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 ""
+"A recuperação da transação inicializada é automática. O XARecoveryModule "
+"encontra a Gravação de Recurso JTA que precisa de recuperação e então usa os "
+"mecanismos de recuperação normal para encontrar o status de transação que "
+"isto estava envolvido (por exemplo: isto chama replay_completion no "
+"RecoveryCoordinator para o branch) de transação, (re)criando o XAResource "
+"apropriado e confirma ou reverte os problemas nisto conforme seja "
+"apropriado. A criação XAResource usará a mesma informação, nome do banco de "
+"dados, nome do usuário, senha, etc, conforme o aplicativo original."
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:309
+#, no-c-format
+msgid "Transaction-Initiated Recovery and XA Recovery"
+msgstr "Recuperação da Transação Inicializada e Recuperação XA"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:311
+#, 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 ""
+"A Recuperação do recurso inicializado precisa ser especificamente "
+"configurada, pela substituição do Gerenciador de Recurso com a informação "
+"apropriada para isto interrogar todos os bancos de dados (XADataSources) que "
+"foram acessados por qualquer aplicativo JBossTS. O acesso para cada "
+"XADataSource é manuseado pela classe que implementa a interface "
+"<interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</"
+"interfacename>, conforme ilustrado na Figura 4. As instâncias das classes "
+"que implementam a interface XAResourceRecovery são dinamicamente carregadas, "
+"conforme controladas pelas propriedades com os nomes inicializando com "
+"<property>com.arjuna.ats.jta.recovery.XAResourceRecovery</property>."
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:318
+#, no-c-format
+msgid "Resource-initiated recovery and XA Recovery"
+msgstr "Recuperação do Recurso inicializado e Recuperação XA"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:321
+#, 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 ""
+"O JBossTS 3.3 <interfacename>XAConnectionRecovery</interfacename> é "
+"contrário ao <interfacename>XAResourceRecovery</interfacename>. Mesmo que a "
+"interface antiga continue a existir neste momento, os usuários são motivados "
+"a migrar para a nova interface."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:325
+#, 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 ""
+"O XARecoveryModule usará a implementação XAResourceRecovery para obter um "
+"XAResource à fonte de dados de destinação. Em cada invocação do "
+"periodicWorkSecondPass, o módulo de recuperação emitirá uma solicitação "
+"XAResource.recover - isto irá (conforme descrito na especificação XA) "
+"retornar uma lista de identificadores de transação (Xid’s) que são "
+"conhecidos pela fonte de dados e estão num estado (duvidoso) indeterminado. "
+"A lista destas Xid em dúvida recebidas em passagens sucessivas (por exemplo: "
+"periodicWorkSecondPass-es) é comparada. Assume-se que qualquer Xid que "
+"aparecer em ambas as listas e pela qual nenhum JTA ResourceRecord é "
+"encontrado pela intervenção da recuperação de transação inicializada, "
+"pertence à transação que estava envolvida num travamento antes de qualquer "
+"JTA ResourceRecord ser gravado e uma reversão é emitida para aquela "
+"transação no XAResource."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:328
+#, 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 ""
+"Este mecanismo do scan duplo é usado uma vez que é possível que o Xid seja "
+"obtido a partir de uma fonte de dados assim como o processo do aplicativo "
+"original estava prestes a criar o JTA_ResourceRecord correspondente. O "
+"intervalo entre os scans devem permitir o tempo para o registro a ser "
+"gravado, a não ser que o aplicativo trave ( e se isto acontecer, a reversão "
+"será a resposta mais adequada). "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:331
+#, 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 ""
+"Uma classe da implementação <classname>XAResourceRecovery</classname> pode "
+"ser gravada para conter todas as informações necessárias a executarem a "
+"recuperação para algumas fonte de dados. Alternativamente, uma classe única "
+"pode manusear múltiplas fontes de dados. O construtor da classe da "
+"implementação pode ter uma lista de parâmetros vazia (uma vez que isto é "
+"carregado dinamicamente), mas a interface inclui um método de inicialização "
+"que passa informações futuras como uma seqüência. O conteúdo da seqüência é "
+"retirado do valor da propriedade que fornece o nome de classe: tudo após o "
+"primeiro ponto e vírgula ser passado como o valor da seqüência. O modo de "
+"uso para esta seqüência é determinado pela classe de implementação "
+"<classname>XAResourceRecovery</classname>. "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:334
+#, 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 ""
+"Para maiores detalhes na maneira de implementar a classe que implementa a "
+"<interfacename>XAResourceRecovery</interfacename> da interface, consulte o "
+"capítulo do Guia de Programação JTA. Uma classe de implementação é fornecida "
+"da qual suporta a recuperação do recurso inicializado para qualquer "
+"XADataSource. Esta classe poderia ser usada como modelo para construção de "
+"sua própria classe de implementação."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:338
+#, no-c-format
+msgid "Assumed complete"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:339
+#, no-c-format
+msgid ""
+"If a failure occurs in the transaction environment after the transaction "
+"coordinator had told the XAResource to commit but before the transaction log "
+"has been updated to remove the participant, then recovery will attempt to "
+"replay the commit. In the case of a Serialized XAResource, the response from "
+"the XAResource will enable the participant to be removed from the log, which "
+"will eventually be deleted when all participants have been committed. "
+"However, if the XAResource is not recoverable then it is extremely unlikely "
+"that any <interfacename>XAResourceRecovery</interfacename> instance will be "
+"able to provide the recovery sub-system with a fresh XAResource to use in "
+"order to attempt recovery; in which case recovery will continually fail and "
+"the log entry will never be removed."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:343
+#, no-c-format
+msgid "There are two possible solutions to this problem:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:348
+#, no-c-format
+msgid ""
+"Rely on the relevant ExpiryScanner to eventually move the log elsewhere. "
+"Manual intervention will then be needed to ensure the log can be safely "
+"deleted. If a log entry is moved, suitable warning messages will be output."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:353
+#, no-c-format
+msgid ""
+"Set <property>com.arjuna.ats.jta.xaAssumeRecoveryComplete</property> to "
+"true. This option is checked whenever a new XAResource instance cannot be "
+"located from any registered <interfacename>XAResourceRecovery</"
+"interfacename> instance. If false (the default), recovery assumes that there "
+"is a transient problem with the <interfacename>XAResourceRecovery</"
+"interfacename> instances (for example, not all have been registered with the "
+"sub-system) and will attempt recovery periodically. If true then recovery "
+"assumes that a previous commit attempt succeeded and this instance can be "
+"removed from the log with no further recovery attempts. This option is "
+"global, so needs to be used with care since if used incorrectly, XAResource "
+"instances may remain in an uncommitted state."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:359
+#, no-c-format
+msgid "Writing a Recovery Module"
+msgstr "Gravando um Módulo de Recuperação"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:360
+#, 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 ""
+"Com o objetivo de recuperar-se da falha, nós percebemos que o Gerenciador de "
+"Recuperação contacta os módulos de recuperação pela invocação periódica que "
+"dos métodos <methodname>periodicWorkFirstPass</methodname> e "
+"<methodname>periodicWorkSecondPass</methodname>. Cada módulo de Recuperação "
+"é então apto a gerenciar a recuperação de acordo com o tipo de recursos que "
+"precisam ser recuperados. O produto de Transação do JBoss é lançado com o "
+"conjunto dos módulos de recuperação (TOReceveryModule, XARecoveryModule…), "
+"mas é ainda possível para um usuário definir o próprio módulo de recuperação "
+"de recuperação para encaixar no aplicativo do mesmo. O seguinte exemplo "
+"básico ilustra os passos necessários para construção de tal módulo de "
+"recuperação."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:363
+#, no-c-format
+msgid "A basic scenario"
+msgstr "O cenário básico"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:364
+#, 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 ""
+"O exemplo básico não pretende demonstrar um processo completo para "
+"recuperação da falha, mas principalmente para ilustrar a maneira para "
+"implementar o módulo de recuperação."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:366
+#, 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 ""
+"O aplicativo usado consiste na criação de uma transação atômica para "
+"registrar um participante com a transação criada e finalmente para terminar "
+"isto tanto pela confirmação ou pelo aborto. Um conjunto de discussões é "
+"fornecido:"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:371
+#, no-c-format
+msgid "to decide to commit or abort the transaction,"
+msgstr "para decidir a confirmação ou o aborto da transação,"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:376
+#, no-c-format
+msgid "to decide generating a crash during the commitment process."
+msgstr ""
+"para decidir a geração do travamento durante o processo de confirmação."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:381
+#, no-c-format
+msgid "The code of the main class that control the application is given below"
+msgstr "O código da classe principal que controla o aplicativo é dada abaixo:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:384
+#, 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 ""
+"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"
+"}"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:385
+#, no-c-format
+msgid "The registered participant has the following behavior:"
+msgstr "O participante registrado possui o seguinte comportamento:"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:390
+#, 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 ""
+"Durante a fase de preparo, isto grava uma mensagem simples - <emphasis>Eu "
+"estou preparado</emphasis> - no disco de forma que tal mensagem é gravada "
+"num arquivo bem conhecido."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:395
+#, 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 ""
+"Durante a fase de confirmação, isto grava outra mensagem - <emphasis>Eu "
+"estou confirmado</emphasis>- no mesmo arquivo usado durante o preparo."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:400
+#, no-c-format
+msgid ""
+"If it receives an abort message, it removes from the disk the file used for "
+"prepare if any."
+msgstr ""
+"Caso isto receba uma mensagem de aborto, ele removerá o arquivo usado do "
+"disco para preparo caso algum."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:405
+#, 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 ""
+"Caso um travamento seja decidido para teste, então isto travará durante a "
+"fase de confirmação - o arquivo permanecerá com a mensagem <emphasis>Eu "
+"estou preparado</emphasis>."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:410
+#, no-c-format
+msgid ""
+"The main portion of the code illustrating such behavior is described "
+"hereafter."
+msgstr ""
+"A parte principal do código ilustrando tal comportamento é descrita mais "
+"adiante."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:414
+#, fuzzy, no-c-format
+msgid ""
+"The location specified as the value for the variable <varname>filename</"
+"varname> can be altered."
+msgstr ""
+"A localização do arquivo num nome de arquivo variável pode ser alterado."
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:418
+#, 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 ""
+"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"
+"}"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:419
+#, 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 ""
+"A função do Módulo de Recuperação em tal aplicativo consiste na leitura do "
+"conteúdo do arquivo usado para armazenar o status do participante para "
+"determinar o status e imprimir a mensagem indicando se a ação de recuperação "
+"é necessária ou não."
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:422
+#, 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 ""
+"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"
+"}"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:423
+#, 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 ""
+"O módulo de recuperação deve ser implementado agora, com o objetivo de ser "
+"chamado pelo Gerenciador de Recuperação. Para isto, nós apenas precisamos "
+"adicionar uma entrada no <filename>RecoveryManager-properties.xml</filename> "
+"pela adição de uma nova propriedade conforme abaixo:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:426
+#, 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 ""
+"&lt;property\n"
+"                 name=\"com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;"
+"i&gt;\"\n"
+"        value=\"com.arjuna.demo.recoverymodule.SimpleRecoveryModule\"/&gt;"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:427
+#, 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 ""
+"Onde &lt;i&gt; representa o novo número de ocorrência que segue o último  "
+"número já existente no arquivo. Uma vez inicializado, o Gerenciador de "
+"Recuperação carregará automaticamente o módulo de Recuperação adicionado."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:431
+#, no-c-format
+msgid ""
+"The source of the code can be retrieved under the trailmap directory of the "
+"JBossTS installation."
+msgstr ""
+"A fonte do código pode ser removida sob o diretório de instalação do JBossTS."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:436
+#, no-c-format
+msgid "Another scenario"
+msgstr "Outro cenário"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:437
+#, 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 ""
+"Conforme mencionado, o aplicativo básico presente acima não apresenta o "
+"processo completo para recuperar a falha, mas isto é apenas apresentado para "
+"descrever como construir um módulo de recuperação. Neste caso do protocolo "
+"OTS, vamos considerar como o módulo de recuperação que gerencia os recursos "
+"OTS podem ser configurados. "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:441
+#, 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 ""
+"Para gerenciar a recuperação no caso da falha, a especificação OTS foi "
+"definida como protocolo de recuperação. Os participantes da Transação num "
+"status duvidoso podem usar o RecoveryCoordinator para determinar o status da "
+"transação. De acordo com o status da transação, estes participantes podem "
+"tomar decisão tanto pela reversão ou confirmação. A solicitação do objeto "
+"RecoveryCoordinator para determinar o status consiste na invocação da "
+"operação replay_completion no RecoveryCoordinator."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:444
+#, 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 ""
+"Para cada Recurso OTS num status duvidoso, é bastante comum saber qual "
+"RecoveyCoordinator invocar para determinar o status da transação pela qual o "
+"Recurso é envolvido (este é o RecoveryCoordinator retornado durante o "
+"processo de registro do Recurso). A recuperação de tal RecoveryCoordinator "
+"por recurso significa que isto foi armazenado em adição a outra informação "
+"descrevendo o recurso."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:447
+#, 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 ""
+"O módulo de recuperação dedicado a recuperar os Recursos OTS pode ter o "
+"seguinte comportamento. Quando solicitado pelo Gerenciador de recuperação no "
+"primeiro passo, ele recupera a partir do disco da lista que estão em estado "
+"duvidoso. Durante o segundo passo, caso os recursos que foram recuperados no "
+"primeiro passo permanecerem no disco, eles serão considerados candidatos "
+"para a recuperação. Portanto, o Módulo de Recuperação recupera para cada "
+"candidato o RecoveryCoordinator associado do mesmo e invoca a operação "
+"replay_completion daquele status da transação. De acordo com o status "
+"retornado, uma ação apropriada pode ser efetuada (por exemplo: reversão do "
+"recurso estando o status inativo ou abortado)."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:452
+#, no-c-format
+msgid "TransactionStatusConnectionManager"
+msgstr "TransactionStatusConnectionManager"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:453
+#, 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 ""
+"O objeto TransactionStatusConnectionManager é usado pelos módulos para "
+"recuperar o status das transações e agir como um proxy para os objetos da "
+"TransactionStatusManager. Isto mantém uma tabela de objetos de "
+"TransactionStatusConnector, cada qual conecta a um objeto num Processo do "
+"Aplicativo."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:456
+#, 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 ""
+"O status das transações é recuperado usando os métodos getTransactionStatus "
+"que utilizam o Uid de transação e caso disponível um tipo de transação como "
+"parâmetros. O campo do Uid de processo no parâmetro Uid de transações é "
+"usado para observar o par porto/hospedeiro do TransactionStatusManagerItem "
+"no Armazenamento do Objeto. O par porto/hospedeiro é usado para realizar uma "
+"conexão TCPao objeto TransactionStatusManager de destinação pelo objeto "
+"TransactionStatusConnector. O TransactionStatusConnector passa o tipo de "
+"transação Uid/ para o TransactionStatusManager, com o objetivo de recuperar "
+"o status das transações."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:461
+#, no-c-format
+msgid "Expired Scanner Thread"
+msgstr "Segmentação de Scanner Expirada"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:462
+#, 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 ""
+"Quando o Gerenciador da Recuperação inicializa uma segmentação de scanner "
+"expirada, o ExpiryEntryMonitor é criado e usado para remover itens inativos "
+"longos a partir do ObjectStore. Um número dos módulos do scanner estão "
+"dinamicamente carregados, que remove itens inativos longos para um tipo em "
+"particular."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:465
+#, no-c-format
+msgid ""
+"Scanner modules are loaded at initialisation and are specified as properties "
+"beginning with"
+msgstr ""
+"Os módulos scanner são carregados na inicialização e estão especificados com "
+"propriedades inicializando com:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:468
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScanner&lt;Scanner Name&gt;=&lt;Scanner "
+"Class&gt;"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.expiryScanner&lt;Scanner Name&gt;=&lt;Scanner "
+"Class&gt;"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:469
+#, 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 ""
+"Todos os módulos de scanner são chamados periodicamente para realizar o scan "
+"para os itens inativos pela segmentação do ExpiryEntryMonitor. Este período "
+"é configurado com a propriedade:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:472
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.expiryScanInterval"
+msgstr "com.arjuna.ats.arjuna.recovery.expiryScanInterval"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:473
+#, no-c-format
+msgid ""
+"All scanners inherit the same behaviour from the java interface "
+"<interfacename>ExpiryScanner</interfacename> as illustrated in diagram below:"
+msgstr ""
+"Todos os scanners herdam o mesmo comportamento a partir do "
+"<interfacename>ExpiryScanner</interfacename> de interface conforme ilustrado "
+"no diagrama abaixo:"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:481
+#, 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 ""
+"Um método de scan é fornecido por esta interface e implementado por todos os "
+"módulos de scanner, este é o método que é chamado pela segmentação do "
+"scanner."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:484
+#, 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 ""
+"O ExpiredTransactionStatusManagerScanner remove os "
+"TransactionStatusManagerItems inativos longos do Armazenamento do Objeto. "
+"Estes itens permanecerão no Armazenamento do Objeto por um período de tempo "
+"antes deles serem deletados. Este tempo é determinado pela propriedade:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:487
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime"
+msgstr "com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:488
+#, no-c-format
+msgid "(default 12 hours)"
+msgstr "(padrão 12 horas)"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:493
+#, no-c-format
+msgid "Application Process"
+msgstr "Processo do Aplicativo"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:494
+#, 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 ""
+"Isto representa o programa transacional do usuário. A tabela da transação "
+"(hash) Local, mantida com o processo de aplicativo de execução segue a "
+"execução do status atual de todas as transações criadas pelo processo do "
+"aplicativo. O Gerenciador de Recuperação precisa acessar as tabelas de "
+"transação de forma que elas podem determinar se é que ou não a transação "
+"continua em progresso. Caso ela continue em progresso, a recuperação não "
+"acontecerá."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:497
+#, 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 ""
+"As tabelas de transação são acessadas através do objeto "
+"TransactionStatusManager. Na inicialização do programa do aplicativo o par "
+"porto/hospedeiro que representa o TransactionStatusManager é gravado ao "
+"Armazenamento do Objeto na parte '../Recovery/TransactionStatusManager’ da "
+"hierarquia do arquivo de Armazenamento do Objeto e identificado pelo "
+"processo Uid do processo do aplicativo."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:500
+#, 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 ""
+"O Gerenciador da Recuperação usa o objeto TransactionStatusConnectionManager "
+"para recuperar o status da transação e o objeto TransactionStatusConnector é "
+"usado para fazer uma conexão para o TransactionStatusManager."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:505
+#, no-c-format
+msgid "TransactionStatusManager"
+msgstr "TransactionStatusManager"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:506
+#, 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 ""
+"Este objeto atua como uma interface do Gerenciador da Recuperação para obter "
+"o status das transações a partir do processo do aplicativo HPTS de execução. "
+"Um TransactionStatusManager é criado pelo processo do aplicativo pela classe "
+"com.arjuna.ats.arjuna.coordinator.InitAction. Atualmente a conexão tcp é "
+"usada para conexão entre o RecoveryManager e TransactionStatusManager. "
+"Qualquer porto livre é usado pelo TransactionStatusManager por padrão, no "
+"entanto o porto pode ser ajeitado com a propriedade:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:509
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort"
+msgstr "com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:510
+#, 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 ""
+"Na criação o TransactionStatusManager obtém um porto que armazena com o "
+"hospedeiro no Armazenamento do Objeto como um TransactionStatusManagerItem. "
+"Uma segmentação Listener é inicializada que espera por uma solicitação de "
+"conexão a partir de um TransactionStatusConnector. Quando a conexão é "
+"estabelecida uma segmentação de Conexão é criada pela qual roda um Serviço "
+"(AtomicActionStatusService) que aceita um Uid de transação e o tipo de "
+"transação (caso disponível) a partir de um TransactionStatusConnector. O "
+"status da transação é obtido a partir de uma tabela de transação local e "
+"retornada ao TransactionStatusConnector."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:515
+#, no-c-format
+msgid "Object Store"
+msgstr "Armazenamento do Objeto"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:516
+#, 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 ""
+"Todos os objetos são armazenados numa path do arquivo que é relevante a "
+"herança de classe dos mesmos. Portanto, as transações são armazenadas numa "
+"path de arquivo ../StateManager/BasicAction/AtomicAction."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:519
+#, 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 ""
+"Todos os objetos são identificados por um Uid de identificador único. Um dos "
+"valores pelo qual é uma id de processo em que o objeto foi criado. O "
+"Gerenciador de Recuperação usa a id do processo para localizar os itens do "
+"gerenciador do status da transação quando contactando o processo de "
+"aplicativo originador para o status de transação."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:524
+#, no-c-format
+msgid "Stock free operation"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:525
+#, no-c-format
+msgid ""
+"The use of TCP/IP sockets for TransactionStatusManager and RecoveryManager "
+"provides for maximum flexibility in the deployment architecture. It is often "
+"desirable to run the RecoveryManager in a separate JVM from the Transaction "
+"manager(s) for increased reliability. In such deployments, TCP/IP provides "
+"for communication between the RecoveryManager and transaction manager(s), as "
+"detailed in the preceding sections. Specifically, each JVM hosting a "
+"TransactionManager will run a TransactionStatusManager listener, through "
+"which the RecoveryManager can contact it to determine if a transaction is "
+"still live or not. The RecoveryManager likewise listens on a socket, through "
+"which it can be contacted to perform recovery scans on demand. The presence "
+"of a recovery listener is also used as a safety check when starting a "
+"RecoveryManager, since at most one should be running for a given ObjectStore."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:528
+#, no-c-format
+msgid ""
+"There are some deployment scenarios in which there is only a single "
+"TransactionManager accessing the ObjectStore and the RecoveryManager is co-"
+"located in the same JVM. For such cases the use of TCP/IP sockets for "
+"communication introduces unnecessary runtime overhead. Additionally, if "
+"several such distinct processes are needed for e.g. replication or "
+"clustering, management of the TCP/IP port allocation can become unwieldy. "
+"Therefore it may be desirable to configure for socketless recovery operation."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:531
+#, no-c-format
+msgid ""
+"The property <property>com.arjuna.ats.arjuna.coordinator."
+"transactionStatusManagerEnable</property> can be set to a value of "
+"<literal>NO</literal> to disable the TransactionStatusManager for any given "
+"TransactionManager. Note that this must not be done if recovery runs in a "
+"separate process, as it may lead to incorrect recovery behavior in such "
+"cases. For an in-process recovery manager, the system will use direct access "
+"to the ActionStatusService instead."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:534
+#, no-c-format
+msgid ""
+"The property <property>com.arjuna.ats.arjuna.recovery.recoveryListener</"
+"property> can likewise be used to disable the TCP/IP socket listener used by "
+"the recovery manager. Care must be taken not to inadvertently start multiple "
+"recovery managers for the same ObjectStore, as this error, which may lead to "
+"significant crash recovery problems, cannot be automatically detected and "
+"prevented without the benefit of the socket listener."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/Author_Group.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,23 @@
+# translation of Preface.po to Brazilian Portuguese
+# Language pt-BR translations for  package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-11-13 15:07+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: author
+#: Author_Group.xml:6
+#, fuzzy, no-c-format
+msgid "<firstname>Red Hat Documentation Group</firstname> <surname></surname>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/Book_Info.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,50 @@
+# translation of Preface.po to Brazilian Portuguese
+# Language pt-BR translations for  package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-11-13 15:07+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Failure Recovery Guide"
+msgstr "Guia de Recuperação de Falha das Transações do JBoss"
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, fuzzy, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 5.0"
+msgstr "para Uso com a Plataforma do Aplicativo do Jboss Enterprise 4.3"
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss "
+"Transactions Failure Recovery Guide"
+msgstr ""
+"Este livro é a edição do Guia da Recuperação da Falha das Transações do JBoss"
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr "Logo"
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/How_JBossTS_managers_the_OTS_Recovery_Protocol.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/How_JBossTS_managers_the_OTS_Recovery_Protocol.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/How_JBossTS_managers_the_OTS_Recovery_Protocol.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,587 @@
+# translation of Preface.po to Brazilian Portuguese
+# Language pt-BR translations for  package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-11-13 15:07+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:6
+#, no-c-format
+msgid "How JBossTS manages the OTS Recovery Protocol"
+msgstr "Como o JBossTS gerencia o Protocolo de Recuperação OTS"
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:10
+#, no-c-format
+msgid "Recovery Protocol in OTS-Overview"
+msgstr "Protocolo de Recuperação no OTS - Visão Geral"
+
+#. 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 ""
+"Para gerenciar a recuperação em caso de falha, a especificação OTS define um "
+"protocolo de recuperação. Os participantes da Transação num status duvidoso "
+"podem usar o RecoveryCoordinator para determinar o status da transação. De "
+"acordo com o status da transação, estes participantes podem tomar decisões "
+"apropriadas tanto pela reversão ou confirmação."
+
+#. 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 ""
+"Uma referência para o RecoveryCoordinator é retornada como resultado do "
+"register_resource de chamada com êxito no Coordenador da transação. Este "
+"objeto que está implicitamente associado com um único Recurso, pode ser "
+"usado para dirigir o Recurso através dos procedimentos de recuperação no "
+"evento de falha ocorrido durante a transação."
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:21
+#, no-c-format
+msgid "Resource and RecoveryCoordinator relationship."
+msgstr "Relação de Recurso e RecoveryCoordinator"
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:26
+#, no-c-format
+msgid "RecoveryCoordinator in JBossTS"
+msgstr "O RecoveryCoordinator no JBossTS"
+
+#. 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 ""
+"Espera-se em cada registro de Recurso que um Objeto RecoveryCoordinator seja "
+"criado e retornado ao aplicativo que invocou a operação register_resource. "
+"Por trás de cada objeto CORBA deve estar uma implementação do objeto, nos "
+"termos POA, que executam operações feitas num objeto RecoveryCoordinator. Ao "
+"invés de criar um RecoveryCoordinator com o próprio servidor associado em "
+"cada register_resource, o JBossTS aumenta o desempenho evitando a criação de "
+"servidores, mas ele depende num objeto RecoveryCoordinator padrão que é "
+"associado ao servidor padrão associado para gerenciar todas as invocações "
+"replay_completion."
+
+#. 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 ""
+"Nas próximas seções nós primeiramente daremos uma visão geral da arquitetura "
+"do Adaptador do Objeto Potátil, quando descrevendo como a arquitetura é "
+"usada para fornecer uma criação RecoveryCoordinator com a otimização, "
+"conforme explicado acima."
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:34
+#, no-c-format
+msgid "Understanding POA"
+msgstr "Entendimento do POA"
+
+#. 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 ""
+"Basicamente, o Adaptador do Objeto Portátil, ou POA é um objeto que "
+"interpreta uma solicitação do cliente e identifica o objeto que satisfaz a "
+"solicitação do cliente. O Objeto é então envolvido e a resposta é retornada "
+"ao cliente."
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:43
+#, no-c-format
+msgid "Overview of the POA."
+msgstr "Visão geral do POA."
+
+#. 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 ""
+"O objeto que executa a solicitação do cliente é referido como um servidor, "
+"que fornece a implementação do objeto CORBA solicitado pelo cliente. O "
+"servidor fornece a implementação para uma ou mais referências CORBA. Para "
+"recuperar um servidor, cada POA mantém um Mapa do Objeto Ativo do qual "
+"mapeia todos os objetos que foram ativados no POA para o servidor. Para cada "
+"solicitação de chegada, o POA observa a referência do objeto no Mapa do "
+"Objeto Ativo e tenta encontrar o servidor responsável. Caso nenhum servidor "
+"seja encontrado, a solicitação é tanto delegada a um servidor padrão ou um "
+"gerenciador do servidor é invocado para ativar ou localizar um servidor "
+"apropriado. Adicionado ao espaço do nome para objetos, que são identificados "
+"pelas Ids do Objeto, um POA também fornece um espaço de nome para os POAs. "
+"Um POA é criado como um child de um existente POA, que forma uma hierarquia "
+"inicializada pelo POA de raiz."
+
+#. 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 ""
+"Cada POA possui um conjunto de políticas que definem suas próprias "
+"características. Quando criando um novo POA, o conjunto de políticas padrão "
+"pode ser usado ou valores diferentes podem ser determinados para suprir as "
+"necessidades do aplicativo. A especificação POA define:"
+
+#. 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 ""
+"<emphasis>Política de segmentação:</emphasis> Especifica o modelo de "
+"segmentação a ser usado pelo POA. Os valores possíveis são:"
+
+#. 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 ""
+"ORB_CTRL_MODEL (default): O POA é responsável em determinar solicitações "
+"para as segmentações."
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:63
+#, no-c-format
+msgid "SINGLE_THREAD_MODEL: The POA processes requests sequentially"
+msgstr "SINGLE_THREAD_MODEL: As solicitações dos processos POA em seqüência."
+
+#. 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 ""
+"<emphasis>Política Lifespan:</emphasis> Especifica o lifespan dos objetos "
+"implementados no POA. A política lifespan pode possuir os seguintes valores:"
+
+#. 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 ""
+"TRANSIENT (Padrão) Os objetos implementados no POA não podem viver fora do "
+"processo em que eles são primeiramente criados. Uma vez que o POA é "
+"desativado, uma exceção de OBJECT_NOT_EXIST ocorre na tentativa de uso de "
+"qualquer referência de objeto gerado pelo POA. "
+
+#. 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 ""
+"PERSISTENT Os objetos implementados no POA podem viver fora do processo em "
+"que eles são primeiramente criados."
+
+#. 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 ""
+"Política única de ID do objeto: Permite um único servidor a ser "
+"compartilhado por muitos objetos abstratos. A política única de ID do objeto "
+"pode ter os seguintes valores:"
+
+#. 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 ""
+"UNIQUE_ID (Padrão): Os servidores ativados suportam apenas uma ID de Objeto."
+
+#. 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 ""
+"MULTIPLE_ID: Os servidores ativados podem possuir uma ou mais IDs do Objeto. "
+"A ID do Objeto deve ser determinada com o método sendo invocado no período "
+"de execução."
+
+#. 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 ""
+"Política de Determinação da ID: Especifica se é que ou não as IDs do objeto "
+"são geradas pelos aplicativos do servidor ou pelo POA. A política da "
+"Determinação da ID pode possuir os seguintes valores:"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:109
+#, no-c-format
+msgid "USER_ID is for persistent objects, and"
+msgstr "A USER_ID é para objetos persistentes e:"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:114
+#, no-c-format
+msgid "SYSTEM_ID is for transient objects."
+msgstr "A SYSTEM_ID é para objetos transitórios."
+
+#. 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 ""
+"Política de Retenção do Servidor: Especifica se é que ou não o POA retém os "
+"servidores ativos no Mapa do Objeto Ativo. A política de Retenção do "
+"Servidor pode ter os seguintes valores:"
+
+#. 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 ""
+"RETAIN (Default) O POA rastreia as ativações do objeto no Mapa do Objeto "
+"Ativo. Normalmente, o RETAIN é usado com os ServantActivators ou métodos de "
+"ativação explícitos no POA."
+
+#. 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 ""
+"NON_RETAIN O POA não retém os servidores ativos no Mapa do Objeto Ativo. O "
+"NON_RETAIN é normalmente usado com os ServantLocators."
+
+#. 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 ""
+"Política de Processamento da Solicitação: Especifica como as solicitações "
+"são processadas pelo POA."
+
+#. 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 ""
+"USE_ACTIVE_OBJECT_MAP (Default): Caso a ID do Objeto não estiver listada no "
+"Mapa do Objeto Ativo, uma exceção de OBJECT_NOT _EXIST será retornada. O POA "
+"deve também usar a política RETAIN com este valor."
+
+#. 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 ""
+"USE_DEFAULT_SERVANT: Caso a ID do Objeto não esteja listada no Mapa do "
+"Objeto Ativo ou a política NON_RETAIN é determinada, a solicitação é "
+"despachada ao servidor padrão. Caso o servidor padrão tenha sido registrado, "
+"uma exceção OBJ_ADAPTER será retornada. O POA deve utilizar também a "
+"política MULTIPLE_ID com este valor."
+
+#. 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 ""
+"USE_SERVANT_MANAGER: Caso a ID do Objeto não estiver listada no Mapa do "
+"Objeto Ativo ou a política NON_RETAIN seja determinada, o gerenciador do "
+"servidor é usado para obter o servidor."
+
+#. 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 ""
+"Política de Ativação Implícita: Especifica se é que ou não o POA suporta a "
+"ativação implícita dos servidores. A política de Ativação Implícita pode "
+"possuir os seguintes valores:"
+
+#. 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 ""
+"IMPLICIT_ACTIVATION: O POA suporta a ativação implícita dos servidores. Os "
+"servidores podem ser ativados convertendo-os a uma referência de objeto com "
+"o <methodname>org.omg.PortableServer.POA.servant_to_reference()</methodname> "
+"ou pela invocação <methodname>_this()</methodname> no servidor. O POA deve "
+"ser usar também as políticas SYSTEM_ID e RETAIN com este valor."
+
+#. 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 ""
+"NO_IMPLICIT_ACTIVATION (Default): O POA não suporta a ativação implícita de "
+"suporte dos servidores."
+
+#. 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. JBossTS provides one servant "
+"per machine to perform replay_completion invocations. This servant is "
+"located in the RecoveryManager process. The RecoveryManager process is a "
+"separate process from the client and 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 ""
+"Nós precisamos criar um POA de política de Processamento de Solicitação "
+"determinada com o valor configurado para USE_DEFAULT_SERVANT, com a "
+"finalidade de redirecionar as invocações replay_completion para o servidor "
+"padrão. No entanto, para alcançar o Servidor padrão nós devemos alcançar "
+"primeiro o POA que envia as solicitações ao servidor padrão. Adicionado a "
+"isto, o ORB usa um conjunto de informações para recuperar o POA. Estas "
+"informações estão contidas na referência do objeto usado pelo cliente. Entre "
+"estas informações estão os endereços IP e o número de portal onde reside o "
+"servidor e também o nome POA. O JBossTS fornece um servidor por máquina para "
+"executar as invocações replay_completion. Este servidor é localizado no "
+"processo RecoveryManager. O processo RecoveryManager é um processo separado "
+"dos aplicativos do cliente e servidor. A próxima seção explica como a "
+"indireção ao Servidor padrão localizado num processo separado é fornecida ao "
+"ORBIX e JacORB."
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:282
+#, no-c-format
+msgid "The default RecoveryCoordinator in JacOrb"
+msgstr "O RecoveryCoordinator padrão no JacOrb"
+
+#. 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 ""
+"O JacORB não define as políticas adicionais para redirecionar qualquer "
+"solicitação num objeto do RecoveryCoordinator para um servidor padrão "
+"localizado no processo do Gerenciador de Recuperação. No entanto, isto "
+"fornece um conjunto de APIs que permite a construção das referências do "
+"objeto com o endereço IP especificado, o número do portal e o nome do POA "
+"com a finalidade para atingir o servidor padrão apropriado."
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:287
+#, no-c-format
+msgid "How it works"
+msgstr "Como isto funciona"
+
+#. 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 ""
+"Quando o Gerenciador de Recuperação é executado, ele procura na configuração "
+"o RecoveryActivator que precisa ser carregado. Uma vez que isto é feito, ele "
+"invoca o método <methodname>startRCservice</methodname> de cada uma das "
+"instâncias carregadas. Conforme visto anteriormente em outros capítulos "
+"(Gerenciamento de Recuperação) a classe a ser carregada da qual implementa a "
+"interface <interfacename>RecoveryActivator</interfacename> é a classe "
+"<classname>RecoveryEnablement</classname>. Esta classe genérica, localizada "
+"no pacote <package>com.arjuna.ats.internal.jts.orbspecific.recovery</"
+"package>, esconde a natureza do ORB utilizado pelo aplicativo (JacORB). A "
+"seguinte figura ilustra o comportamento do <interfacename>RecoveryActivator</"
+"interfacename> que leva à criação do servidor padrão que executa as "
+"solicitações de invocações replay_completion."
+
+#. 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 ""
+"Adicionado à criação do servidor padrão, uma referência de objeto ao objeto "
+"<code>RecoveryCoordinator</code> é criada e armazenada no ObjectStore. "
+"Conforme veremos a frente esta referência de objeto será usada para obter "
+"este endereço IP, número do portal e nome do POA e determiná-los a qualquer "
+"referência do objeto criado no register_resource."
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:299
+#, no-c-format
+msgid ""
+"replay_completion invocation forwarded to the default RecoveryCoordinator."
+msgstr "invocação replay_completion enviada ao RecoveryCoordinator padrão."
+
+#. 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 ""
+"Quando um aplicativo registra um recurso com a transação, espera-se que a "
+"referência do objeto <code>RecoveryCoordinator</code> seja retornada. Para "
+"construir aquela referência do objeto, o Serviço de Transação usa a "
+"referência do objeto RecoveryCoordinator criado com o Gerenciador como um "
+"modelo. A nova referência do objeto contém praticamente a mesma informação "
+"para recuperar o servidor padrão (endereço IP, número do portal, nome do "
+"POA, etc.). No entanto, a ID do Objeto é alterada, contendo agora a ID de "
+"transação da transação em desenvolvimento e também a ID de Processo do "
+"processo que cria uma nova referência do objeto <code>RecoveryCoordinator</"
+"code>, conforme ilustrado abaixo. "
+
+#. 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 ""
+"O registro de recurso e a referência do Objeto RecoveryCoordinator retornado "
+"construiram a partir de uma referência armazenada no ObjectStore."
+
+#. 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 ""
+"Uma vez que a referência do objeto <code>RecoveryCoordintaor</code> "
+"retornado a um aplicativo contém toda a informação para recuperar o POA e "
+"então o servidor padrão localizado no Gerenciador de Recuperação, todas as "
+"invocações replay_completion por máquina são passadas ao mesmo padrão "
+"<code>RecoveryCoordinator</code> que está apto a recuperar a ID do Objeto a "
+"partir da solicitação de chegada ao extrato do identificador da transação e "
+"identificador do processo necessário para determinar o status da transação "
+"solicitada."

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/JBoss_Transactions_Failure_Recovery_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/JBoss_Transactions_Failure_Recovery_Guide_CP06.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/Preface.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,23 @@
+# translation of Preface.po to Brazilian Portuguese
+# Language pt-BR translations for  package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-11-13 15:07+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr "Prefácio"

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/pt-BR/Revision_History.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,29 @@
+# translation of Preface.po to Brazilian Portuguese
+# Language pt-BR translations for  package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-11-13 15:07+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr "Histórico de Revisão"
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/Architecture_of_the_Recovery_Manager.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/Architecture_of_the_Recovery_Manager.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/Architecture_of_the_Recovery_Manager.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,2074 @@
+# translation of Preface.po to
+# Language zh-CN translations for  package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-11-18 10:28+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\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 ""
+"恢复管理者(Recovery Manager)是负责执行崩溃恢复的守护进程。每个节点只运行一"
+"个恢复管理者。对象库为事务提供持久性数据存储在记录日志。在普通的事务处理过程"
+"中,每个事务将把提交阶段的日志登记到对象库里。成功提及事务后,这个数据将被删"
+"除,然而如果事务提及失败,这个数据将保留在对象库里。"
+
+#. 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 ""
+"初始化时,恢复管理者首先加载属性文件里的配置信息。这个配置信息包括了大量的恢"
+"复 activator 和恢复模块,它们都是动态加载的。"
+
+#. 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 ""
+"从 JBossTS 3.0 开始,恢复管理者不捆绑专门的 Object Request Broker(ORB)。因"
+"此,OTS 恢复协议没有隐性地启用。要启用这个协议,我们使用恢复催化剂(recovery "
+"activator)的概念,它用初始化一个和底层通信协议相关的 recovery 类的 "
+"<interfacename>RecoveryActivator</interfacename> 接口定义。例如,当和 OTS 一"
+"起使用时,<interfacename>RecoveryActivitor</interfacename> 负责创建能够响应 "
+"replay_completion 操作的 RecoveryCoordinator 对象。"
+
+#. 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 ""
+"所有的 <interfacename>RecoveryActivator</interfacename> 实例都继承了相同的接"
+"口。它们通过下列的恢复扩展属性进行加载:"
+
+#. 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 ""
+"&lt;property  \n"
+"                   name=\"com.arjuna.ats.arjuna.recovery."
+"recoveryActivator_&lt;number&gt;\" value=\"RecoveryClass\" /&gt;"
+
+#. 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 ""
+"JTS/OTS 里提供的 <interfacename>RecoveryActivator</interfacename> 不应该被注"
+"释,如下所示:"
+
+#. 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 ""
+"&lt;property \n"
+"        name=\"com.arjuna.ats.arjuna.recovery.recoveryActivator_1\" value="
+"\"com.arjuna.ats.internal.jts.orbspecific.recovery.RecoveryEnablement/&gt;"
+
+#. 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 ""
+"在加载后,所有的 <interfacename>RecoveryActivator</interfacename> 实例都提供"
+"了 <methodname>startRCservice</methodname> 方法,它被切换管理者调用并用来创建"
+"能够按照特定的事务协议接收切换请求合适的切换组件。例如 OTS 协议定义的 "
+"RecoveryCoordinator。"
+
+#. 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 ""
+"恢复由两个独立的过程/阶段组成,它们由两个超时时期进分隔。第一个阶段检查对象库"
+"里可能失败的事务;第二个阶段对这些事务执行崩溃恢复。两个阶段之间的时间间隔称"
+"为 backoff 周期。第二个阶段结束和第一个阶段开始之间的时间称为恢复周期"
+"(Recovery period)。恢复周期比 backoff 周期要长。"
+
+#. 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 ""
+"恢复管理者对每一个恢复模块调用第一个过程,应用 backoff 周期并为每个恢复模块调"
+"用第二个过程,最后在重启第一个过程之前应用恢复周期。"
+
+#. 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 ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;number&gt;=&lt;"
+"RecoveryClass&gt;"
+
+#. 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 "Backoff 周期和恢复周期用下列属性进行设置:"
+
+#. 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 ""
+"com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod        (缺省为 10 秒)\n"
+"com.arjuna.ats.arjuna.recovery.periodicRecovery                (缺省为 120 "
+"秒)"
+
+#. 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 "下列的 Java 类被用来实现恢复管理者:"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:86
+#, no-c-format
+msgid "package <package>com.arjuna.ats.arjuna.recovery</package>:"
+msgstr "<package>com.arjuna.ats.arjuna.recovery</package> 包:"
+
+#. 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 ""
+"RecoveryManager:通过实例化 RecoveryManagerImple 的一个实例来启动的守护进程。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:96
+#, no-c-format
+msgid "RecoveryEnvironment: Properties used by the recovery manager."
+msgstr "RecoveryEnvironment:恢复管理者使用的属性。"
+
+#. 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 ""
+"RecoveryConfiguration:指定恢复管理者属性文件的名称(例如,RecoveryManager-"
+"properties.xml)。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:108
+#, no-c-format
+msgid "package <package>com.arjuna.ats.internal.ts.arjuna.recovery</package>:"
+msgstr "<package>com.arjuna.ats.internal.ts.arjuna.recovery</package> 包:"
+
+#. 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 ""
+"RecoveryManagerImple:创建和启动 RecActivatorLoader 实例、PeriodicRecovery 线"
+"程和 ExpiryEntryMonitor 线程。"
+
+#. 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 ""
+"RecActivatorLoader:动态地加载属性文件里指定的 RecoveryActivator。每个 "
+"RecoveryActicator 都被指定为属性文件里的恢复扩展选项。"
+
+#. 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 ""
+"PeriodicRecovery:加载每个恢复模块、并为每个模块调用第一个过程的线程,应用 "
+"backoff 周期,为每个模块用第二个过并应用恢复周期。"
+
+#. 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 ""
+"RecoveryClassLoader:定期地加载切换管理者属性文件指定的切换模块。每个模块都作"
+"为切换扩展在属性文件里指定(例如,com.arjuna.ats.arjuna.recovery."
+"recoveryExtension1= com.arjuna.ats.internal.ts.arjuna.recovery."
+"AtomicActionRecoveryModule)。"
+
+#. 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 ""
+"在缺省情况下,切换管理者侦听给定主机上的第一个可用端口。如果你希望控制它使用"
+"的端口号码,你可以使用 com.arjuna.ats.arjuna.recovery.recoveryPort 属性来进行"
+"指定。"
+
+#. 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 ""
+"在某些情况下,你可能需要把切换管理者嵌入到和事务服务相同的进程里。在这种情况"
+"下,你可以通过 com.arjuna.ats.arjuna.recovery.RecoveryManager 的 manager 方法"
+"创建一个 RecoveryManager 实例。RecoveryManager 实例可以下列两种模式之一创建,"
+"这由 manager 方法的参数来决定:"
+
+#. 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 ""
+"INDIRECT_MANAGEMENT:管理者定期运行,但也可以在需要时通过 scan 操作或下面讨论"
+"的RecoveryDriver 类来驱动。"
+
+#. 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 ""
+"DIRECT_MANAGEMENT:管理者不会定期运行,它必须直接通过 scan 操作或 "
+"RecoveryDriver 来驱动。"
+
+#. 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 ""
+"如前所述,切换通常定期地发生。如果你需要直接驱动切换过程,你有两个选择,这取"
+"决于 RecoveryManager 的创建方式。"
+
+#. 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 ""
+"你可以使用 com.arjuna.ats.arjuna.tools.RecoveryMonitor 程序来发送消息给 "
+"Recovery Manager,指引它执行切换,或者你可以创建 com.arjuna.ats.arjuna."
+"recovery.RecoveryDriver 类的实例来实现类似的功能。切换扫描有两种类型:"
+
+#. 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 ""
+"ASYNC_SCAN:消息被发送给 RecoveryManager 来指引它执行切换,但在切换完成前返回"
+"响应。"
+
+#. 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 ""
+"SYNC:消息被发送给 RecoveryManager 来指引其执行切换,只有切换完成时才返回响"
+"应。"
+
+#. 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 ""
+"你可以调用 RecoveryManager 的 scan 操作。这个操作只有在切换完成时才返回。然"
+"而,如果希望使用异步交互模式,你可以使用 RecoveryScan 接口:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:188
+#, no-c-format
+msgid ""
+"public interface RecoveryScan\n"
+"{\n"
+"        public void completed ();\n"
+"}"
+msgstr ""
+"public interface RecoveryScan\n"
+"{\n"
+"        public void completed ();\n"
+"}"
+
+#. 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 ""
+"支持这个接口的对象实例可以传递给 scan 操作,且它的 completed 方法在切换完成时"
+"将被调用。然而,scan 操作会立即返回。"
+
+#. 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 ""
+"如前所述,每个切换模块的都被用来恢复不同类型的事务/资源,但每个资源模块必须实"
+"现下列的 RecoveryModule 接口,它定义了两个方法:切换管理者所调用的 "
+"<methodname>periodicWorkFirstPass</methodname> 和 "
+"<methodname>periodicWorkSecondPass</methodname>。"
+
+#. 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 ""
+"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"
+"}"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:201
+#, no-c-format
+msgid "JBossTS Recovery Module Classes"
+msgstr "JBossTS 切换模块类"
+
+#. 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 ""
+"JBossTS 提供了一系列按照参与者的性质和事务树里位置负责管理切换的模块。所提供"
+"的类(都实现了<interfacename>RecoveryModule</interfacename> 接口)是: "
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:209
+#, no-c-format
+msgid "com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"
+msgstr "com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:210
+#, no-c-format
+msgid "Recovers AtomicAction transactions."
+msgstr "切换 AtomicAction 事务。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:217
+#, no-c-format
+msgid "com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"
+msgstr "com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:218
+#, no-c-format
+msgid "Recovers Transactional Objects for Java."
+msgstr "切换 Transactional Objects for Java。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:225
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions.TransactionRecoveryModule"
+msgstr ""
+"com.arjuna.ats.internal.jts.recovery.transactions.TransactionRecoveryModule"
+
+#. 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 "切换 JTS 事务。这是顶层和服务器事务切换模块继承的通用类。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:233
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"TopLevelTransactionRecoveryModule"
+msgstr ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"TopLevelTransactionRecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:234
+#, no-c-format
+msgid "Recovers JTS Toplevel Transactions."
+msgstr "切换 JTS 顶层事务。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:241
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"ServerTransactionRecoveryModule"
+msgstr ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"ServerTransactionRecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:242
+#, no-c-format
+msgid "Recovers JTS Server Transactions."
+msgstr "切换 JTS 服务器事务。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:248
+#, 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 ""
+"为了解释切换模块的行为,下面的伪代码描述了用于 Atomic Action 事务和 "
+"Transactional Objects for java 的基本算法。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:252
+#, no-c-format
+msgid "AtomicAction pseudo code"
+msgstr "AtomicAction 伪代码"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:253
+#, no-c-format
+msgid "First Pass:"
+msgstr "第一阶段:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:257
+#, 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 ""
+"&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."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:258
+#: Architecture_of_the_Recovery_Manager.xml:267
+#, no-c-format
+msgid "Second Pass:"
+msgstr "第二阶段:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:261
+#, 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 ""
+"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."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:263
+#, no-c-format
+msgid "Transactional Object pseudo code"
+msgstr "Transactional Object 伪代码"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:264
+#, no-c-format
+msgid "First Pass"
+msgstr "第一阶段"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:266
+#, 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 ""
+"&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."
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:270
+#, 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 ""
+"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."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:272
+#, no-c-format
+msgid "A Recovery Module for XA Resources"
+msgstr "用于 XA 资源的切换模块"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:273
+#, 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 ""
+"为了管理切换,在前面的章节里我们已经看到了切换管理者通过调用一系列切换模块来"
+"触发切换过程,它实现了<interfacename>RecoveryModule</interfacename> 接口定义"
+"的两个方法。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:277
+#, 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 ""
+"为了启用通过 <interfacename>XA</interfacename> 接口控制的参与者的切换,我们提"
+"供一个名为 XARecoveryModule 的专门的切换模块。<package>com.arjuna.ats."
+"internal.jta.recovery.arjunacore</package> 和 <package>com.arjuna.ats."
+"internal.jta.recovery.jts</package> 里定义的 XARecoveryModule 处理 JTA 里使用"
+"的 <interfacename>XA</interfacename> 资源(如数据库)的切换。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:281
+#, 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 ""
+"JBossTS 支持两种 JTA 实现:纯本地版本(无分布式事务)和 JTS 分层版本。前者的"
+"切换是简单的。在后面的讨论里,我们只考虑 JTS 实现。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:285
+#, 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 ""
+"它的行为由两个方面组成:<emphasis>transaction-initiated</emphasis> and "
+"<emphasis>resource-initiated</emphasis> 切换。如图 2 所解释的,当特定的事务分"
+"支足够详细,使得 JTA 资源纪录可写入对象库时,事务初始的切换是可能发生的。"
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:292
+#, no-c-format
+msgid "JTA/JDBC information stored in the ObjectStore"
+msgstr "存储在对象库里的 JTA/JDBC 信息"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:294
+#, 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 ""
+"JTA 资源记录包含将事务和 JBossTS 的其他部分(如数据库)链接所需的信息。当故障"
+"发生在数据库已经创建了事务的持久性记录后但又在 JTA ResourceRecord 被持久化之"
+"前,事务分支的 Resource-initiated 切换是必需的。如果数据源不可能保留允许重新"
+"创建原始程序使用的 XAConnection/XAResource 的 RecoveryManager 的 JTA "
+"ResourceRecord 里的信息,Resource-initiated 切换也是必需的。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:298
+#, 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 ""
+"当运行 XA 切换时,通知 JBossTS 切换的 XID 类型是有必要的。JBossTS 创建的每个 "
+"XID 都有一个唯一的节点标识符,JBossTS 将只切换符合指定节点标识符的事务和状"
+"态。要使用的节点标识符应该通过名称以 <property>com.arjuna.ats.jta."
+"xaRecoveryNode</property> 开始的属性提供给 JBossTS;它可以为多个值。“*”将使 "
+"JBossTS 切换(或可能回滚)所有的事务而不顾其节点标识符,你应该小心使用这种方"
+"式。<property>com.arjuna.ats.jta.xaRecoveryNode</property> 的内容应该是字母数"
+"字的且匹配 <property>com.arjuna.ats.arjuna.xa.nodeIdentifier</property> 的"
+"值。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:302
+#, 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 ""
+"Transaction-initiated 切换是自动的。XARecoveryModule 找到需要切换的 JTA "
+"Resource Record,然后使用正常的切换机制来找到所涉及的事务的状态(也就是说,它"
+"为事务分支调用 RecoveryCoordinator 的 replay_completio),合适时创建/重创建合"
+"适的 XAResource 并进行提交或回滚。XAResource 的创建将使用和原始程序相同的信"
+"息、数据库名称、用户名、密码等。"
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:309
+#, no-c-format
+msgid "Transaction-Initiated Recovery and XA Recovery"
+msgstr "Transaction-Initiated 切换和 XA 切换"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:311
+#, 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 ""
+"对于 Resource-initiated 切换,我们得进行特殊配置,为切换管理者提供合适的信息"
+"来查询任何 JBossTS 应用程序访问的所有数据库(XADataSource)。如图例 4 中所"
+"示,对 XADataSource 的访问由实现了 <interfacename>com.arjuna.ats.jta."
+"recovery.XAResourceRecovery</interfacename> 接口的类来处理。实现了 "
+"XAResourceRecovery 接口的类的实例会被动态加载,这是通过名称以 <property>com."
+"arjuna.ats.jta.recovery.XAResourceRecovery</property> 开始的属性来控制的。"
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:318
+#, no-c-format
+msgid "Resource-initiated recovery and XA Recovery"
+msgstr "Resource-initiated 切换和 XA 切换"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:321
+#, 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 ""
+"JBossTS 3.3 <interfacename>XAConnectionRecovery</interfacename> 已经被替换为 "
+"<interfacename>XAResourceRecovery</interfacename>。虽然旧的接口仍然存在,我们"
+"还是鼓励用户使用新的接口。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:325
+#, 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 ""
+"XARecoveryModule 将使用 XAResourceRecovery 实现来获取目标数据源的 "
+"XAResource。每次调用 periodicWorkSecondPass 时,切换模块将发出一个 "
+"XAResource.recover 请求 - 这将(如 XA 规格里说描述的)返回数据源已知的且处于"
+"可疑状态的事务标识符(XID)的列表。在成功地调用后(如 periodicWorkSecondPass-"
+"es),这个可疑 XID 列表将被接收。任何出现在这两个列表里的 XID,以及中介 "
+"transaction-initiated 切换没有找到 JTA ResourceRecord 的 XID,都被假设是属于"
+"涉及在 JTA ResourceRecord 被写入之前的崩溃的事务的。且在该 XAResource 上的事"
+"务将进行回滚。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:328
+#, 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 ""
+"之所以使用这个双重扫描的机制,是因为在原始应用程序进程将要创建相应的 "
+"JTA_ResourceRecord 时,可能从数据源获得 XID。除非应用程序崩溃(如果崩溃将进行"
+"回滚),两个扫描的时间间隔应该允许记录写入。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:331
+#, 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 ""
+"<classname>XAResourceRecovery</classname> 实现类可以被写入,它包含执行切换到"
+"某个数据源所需的所有信息。或者,单个类可以处理多个数据源。实现类的构造函数必"
+"须有一个空参数列表(因为是动态加载),但其接口包括一个 initialise 方法来以字"
+"符串传入进一步信息。这个字符串的内容将从提供类名的属性值里提取:第一个分号后"
+"面的内容都作为字符串的值来传递。<classname>XAResourceRecovery</classname> 实"
+"现类决定了这个字符串的使用方法。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:334
+#, 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 ""
+"关于实现 <interfacename>XAResourceRecovery</interfacename> 接口的类的更多细"
+"节,请阅读《JTA 编程指南》的 JDBC 章节。我们提供了一个支持任何 XADataSource "
+"的 resource-initiated 切换的实现类。这个类可以被用作构建自己的实现类的模板。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:338
+#, no-c-format
+msgid "Assumed complete"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:339
+#, no-c-format
+msgid ""
+"If a failure occurs in the transaction environment after the transaction "
+"coordinator had told the XAResource to commit but before the transaction log "
+"has been updated to remove the participant, then recovery will attempt to "
+"replay the commit. In the case of a Serialized XAResource, the response from "
+"the XAResource will enable the participant to be removed from the log, which "
+"will eventually be deleted when all participants have been committed. "
+"However, if the XAResource is not recoverable then it is extremely unlikely "
+"that any <interfacename>XAResourceRecovery</interfacename> instance will be "
+"able to provide the recovery sub-system with a fresh XAResource to use in "
+"order to attempt recovery; in which case recovery will continually fail and "
+"the log entry will never be removed."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:343
+#, no-c-format
+msgid "There are two possible solutions to this problem:"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:348
+#, no-c-format
+msgid ""
+"Rely on the relevant ExpiryScanner to eventually move the log elsewhere. "
+"Manual intervention will then be needed to ensure the log can be safely "
+"deleted. If a log entry is moved, suitable warning messages will be output."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:353
+#, no-c-format
+msgid ""
+"Set <property>com.arjuna.ats.jta.xaAssumeRecoveryComplete</property> to "
+"true. This option is checked whenever a new XAResource instance cannot be "
+"located from any registered <interfacename>XAResourceRecovery</"
+"interfacename> instance. If false (the default), recovery assumes that there "
+"is a transient problem with the <interfacename>XAResourceRecovery</"
+"interfacename> instances (for example, not all have been registered with the "
+"sub-system) and will attempt recovery periodically. If true then recovery "
+"assumes that a previous commit attempt succeeded and this instance can be "
+"removed from the log with no further recovery attempts. This option is "
+"global, so needs to be used with care since if used incorrectly, XAResource "
+"instances may remain in an uncommitted state."
+msgstr ""
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:359
+#, no-c-format
+msgid "Writing a Recovery Module"
+msgstr "编写恢复模块"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:360
+#, 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 ""
+"为了在失效后进行切换,我们已经看到切换管理者通过定期调用 "
+"<methodname>periodicWorkFirstPass</methodname> 和 "
+"<methodname>periodicWorkSecondPass</methodname> 来联系切换模块。然后,每个切"
+"换模块都能够按照需要切换的资源类型管理切换。JBoss Transaction 带有一系列的切"
+"换模块(TOReceveryModule、 XARecoveryModule 等),但用户可以定义适合自己的应"
+"用程序的切换模块。下面的基本示例解释了构建这样的切换模块的步骤。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:363
+#, no-c-format
+msgid "A basic scenario"
+msgstr "基本模式"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:364
+#, 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:366
+#, 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:371
+#, no-c-format
+msgid "to decide to commit or abort the transaction,"
+msgstr "为了决定提交还是终止事务,"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:376
+#, no-c-format
+msgid "to decide generating a crash during the commitment process."
+msgstr "为了决定在提交过程中生成崩溃。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:381
+#, 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:384
+#, 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 ""
+"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"
+"}"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:385
+#, no-c-format
+msgid "The registered participant has the following behavior:"
+msgstr "注册的参与者有下列的行为:"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:390
+#, 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 ""
+"在准备(prepare)阶段,它在磁盘上写入简单的信息 <emphasis>I’m prepared</"
+"emphasis>- 这条消息存储在知名的文件里。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:395
+#, 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 ""
+"在提交阶段,它在相同的文件里写入另外一条消息 - <emphasis>I’m committed</"
+"emphasis>。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:400
+#, no-c-format
+msgid ""
+"If it receives an abort message, it removes from the disk the file used for "
+"prepare if any."
+msgstr "如果它接受到关于取消(abort)的消息,它将把准备阶段使用的文件删除。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:405
+#, 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 ""
+"如果已经决定崩溃,然后它在提交阶段崩溃 - 该文件保留消息 <emphasis>I’m "
+"prepared</emphasis>。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:410
+#, 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:414
+#, fuzzy, no-c-format
+msgid ""
+"The location specified as the value for the variable <varname>filename</"
+"varname> can be altered."
+msgstr "你可以改变变量 filename 指定的文件位置"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:418
+#, 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 ""
+"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"
+"}"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:419
+#, 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 ""
+"应用程序里的切换模块(Recovery Module)的职责是读取粗存储参与者状态的文件的内"
+"容,以获知相关状态并打印指出是否需要切换动作的消息。"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:422
+#, 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 ""
+"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"
+"}"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:423
+#, 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 ""
+"现在应该部署切换模块以被切换管理者调用。为了实现这一点,我们只需要在 "
+"<filename>RecoveryManager-properties.xml</filename> 里添加一个新的属性:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:426
+#, 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 ""
+"&lt;property\n"
+"                 name=\"com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;"
+"i&gt;\"\n"
+"        value=\"com.arjuna.demo.recoverymodule.SimpleRecoveryModule\"/&gt;"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:427
+#, 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 ""
+"这里的 &lt;i&gt; 代表新的 occurrence 号码,它紧随文件里现有的最后的号码。在启"
+"动后,切换管理者将自动加载切换模块。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:431
+#, no-c-format
+msgid ""
+"The source of the code can be retrieved under the trailmap directory of the "
+"JBossTS installation."
+msgstr "在 JBossTS 的 trailmap 目录下,你可以获得相关源代码。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:436
+#, no-c-format
+msgid "Another scenario"
+msgstr "其他模式"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:437
+#, 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 ""
+"如我们所提及的,上面的基本程序并没有代表失效切换的完整过程,它只是描述了如何"
+"构建一个切换模块。在使用 OTS 协议的情况下,让我们来老虑如何配置管理 OTS 资源"
+"切换的切换模块。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:441
+#, 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 ""
+"要管理失效切换,OTS 规格已经定义了一个切换协议。处于可疑状态的事务参与者可以"
+"使用 RecoveryCoordinator 来决定事务状态。安装事务状态,参与者可以采用合适的措"
+"施,如回滚或提交。请求 RecoveryCoordinator 对象来决定状态包括调用 "
+"RecoveryCoordinator 上的 replay_completion 操作。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:444
+#, 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 ""
+"对于处于可疑状态的每个 OTS 资源,调用哪个 RecoveyCoordinator 来决定资源被调用"
+"时事务的状态 - 在资源注册过程中返回的是 RecoveryCoordinator。为每个资源获取这"
+"样的 RecoveryCoordinator 意味着资源和描述它的其他信息已经被存储。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:447
+#, 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 ""
+"专用于 OTS 资源恢复的切换模块可以有下列的行为。当在第一阶段被切换管理者请求"
+"时,它从磁盘获取处于可疑状态的资源的列表。在第二个阶段,如果在第一阶段获取的"
+"资源仍然保留在磁盘上,它们将被考虑为切换备选者。因此,切换模块为每个备选者获"
+"取现关联的 RecoveryCoordinator 并调用 replay_completion 操作来获取事务状态,"
+"并按照返回的状态采取合适的行动(例如,回滚状态为 aborted 或 inactive 的资"
+"源)。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:452
+#, no-c-format
+msgid "TransactionStatusConnectionManager"
+msgstr "TransactionStatusConnectionManager"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:453
+#, 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 ""
+"切换模块使用 TransactionStatusConnectionManager 对象来获取事务状态并作为 "
+"TransactionStatusManager 对象的代理。它维护一个 TransactionStatusConnector 对"
+"象的表,其中每个对象都连接应用程序进程里的一个 TransactionStatusManager 对"
+"象。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:456
+#, 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 ""
+"getTransactionStatus 方法获取事务状态,它使用事务 UID 和事务类型(如果可用)"
+"作为参数。事务 UID 参数里的进程 UID 被用来定位对象库里的 "
+"TransactionStatusManagerItem 主机/端口对。TransactionStatusConnector 对象使用"
+"主机/端口对来建立到目标 TransactionStatusManager 对象的 TCP 连接。"
+"TransactionStatusConnector 把事务 UID/事务类型传递给 "
+"TransactionStatusManager 来获取事务状态。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:461
+#, no-c-format
+msgid "Expired Scanner Thread"
+msgstr "Expired Scanner 线程"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:462
+#, 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 ""
+"当切换管理者初始化 expiry scanner 线程时,ExpiryEntryMonitor 将被创建并用来从"
+"对象库中删除长时间失效的条目。一些用于删除特殊类型条目的扫描器模块也被动态地"
+"加载。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:465
+#, 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:468
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScanner&lt;Scanner Name&gt;=&lt;Scanner "
+"Class&gt;"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.expiryScanner&lt;Scanner Name&gt;=&lt;Scanner "
+"Class&gt;"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:469
+#, 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 ""
+"所有的扫描器模块都定期地被 ExpiryEntryMonitor 线程调用来扫描无效条目。时间间"
+"隔用如下属性指定:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:472
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.expiryScanInterval"
+msgstr "com.arjuna.ats.arjuna.recovery.expiryScanInterval"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:473
+#, no-c-format
+msgid ""
+"All scanners inherit the same behaviour from the java interface "
+"<interfacename>ExpiryScanner</interfacename> as illustrated in diagram below:"
+msgstr ""
+"如下图所示,所有的扫描器都从 Java 接口 <interfacename>ExpiryScanner</"
+"interfacename> 继承相同的行为:"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:481
+#, 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 ""
+"这个接口提供一个 scan 方法,它被所有扫描器模块实现,它是扫描器线程所调用的方"
+"法。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:484
+#, 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 ""
+"ExpiredTransactionStatusManagerScanner 从对象库里删除长时间无效的 "
+"TransactionStatusManagerItems。在被删除之前,这些条目将保留在对象库一段时间。"
+"这个时间用如下属性设置:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:487
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime"
+msgstr "com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:488
+#, no-c-format
+msgid "(default 12 hours)"
+msgstr "(缺省为 12 个小时)"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:493
+#, no-c-format
+msgid "Application Process"
+msgstr "应用程序进程"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:494
+#, 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 ""
+"它代表用户的事务性程序。应用程序进程维护的本地事务表(Hash)跟踪该进程创建的"
+"所有事务的当前状态,切换管理者需要访问这个事务表来获知某个事务是否仍然在运"
+"行,如果是,那么切换不会进行。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:497
+#, 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 ""
+"事务表通过 TransactionStatusManager 对象进行访问。在应用程序初始化时,代表 "
+"TransactionStatusManager 的主机/端口被写入对象库的文件层次结构“../Recovery/"
+"TransactionStatusManager”,且由应用程序进程的进程 ID 来标识。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:500
+#, 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 ""
+"切换管理者使用 TransactionStatusConnectionManager 对象来获取事务状态而 "
+"TransactionStatusConnector 对象被用来创建到 TransactionStatusManager 的 TCP "
+"连接。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:505
+#, no-c-format
+msgid "TransactionStatusManager"
+msgstr "TransactionStatusManager"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:506
+#, 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 ""
+"这个对象作为切换管理者从运行的 HPTS 应用程序进程获取事务状态的接口。com."
+"arjuna.ats.arjuna.coordinator.InitAction 类为每个应用程序进程都创建一个 "
+"TransactionStatusManager。目前 RecoveryManager 和 TransactionStatusManager 之"
+"间的通信使用了一个 tcp 连接。TransactionStatusManager 缺省使用任何空闲端口,"
+"但你用下面的属性固定端口号:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:509
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort"
+msgstr "com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:510
+#, 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 ""
+"在创建时,TransactionStatusManager 获取一个端口号并和主机一起作为 "
+"TransactionStatusManagerItem 存储到对象库里。Listener 线程被启动,它等待 "
+"TransactionStatusConnector 的连接请求。当连接被建立时,Connection 线程将被创"
+"建,它运行的服务(AtomicActionStatusService)从 TransactionStatusConnector 接"
+"受事务 UID 和事务类型(如果可用),事务状态从本地事务表里获得并返回给 "
+"TransactionStatusConnector。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:515
+#, no-c-format
+msgid "Object Store"
+msgstr "对象库"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:516
+#, 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 ""
+"所有的对象都以类名相等的文件名存储。因此 AtomicAction 事务存储为 ../"
+"StateManager/BasicAction/AtomicAction。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:519
+#, 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 ""
+"所有的对象都以唯一的标识符 UID 进行标识。其中一个是创建对象的进程号。当联系事"
+"务的发起者程序进程时,恢复管理者使用进程号来定位事务状态管理者条目。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:524
+#, no-c-format
+msgid "Stock free operation"
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:525
+#, no-c-format
+msgid ""
+"The use of TCP/IP sockets for TransactionStatusManager and RecoveryManager "
+"provides for maximum flexibility in the deployment architecture. It is often "
+"desirable to run the RecoveryManager in a separate JVM from the Transaction "
+"manager(s) for increased reliability. In such deployments, TCP/IP provides "
+"for communication between the RecoveryManager and transaction manager(s), as "
+"detailed in the preceding sections. Specifically, each JVM hosting a "
+"TransactionManager will run a TransactionStatusManager listener, through "
+"which the RecoveryManager can contact it to determine if a transaction is "
+"still live or not. The RecoveryManager likewise listens on a socket, through "
+"which it can be contacted to perform recovery scans on demand. The presence "
+"of a recovery listener is also used as a safety check when starting a "
+"RecoveryManager, since at most one should be running for a given ObjectStore."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:528
+#, no-c-format
+msgid ""
+"There are some deployment scenarios in which there is only a single "
+"TransactionManager accessing the ObjectStore and the RecoveryManager is co-"
+"located in the same JVM. For such cases the use of TCP/IP sockets for "
+"communication introduces unnecessary runtime overhead. Additionally, if "
+"several such distinct processes are needed for e.g. replication or "
+"clustering, management of the TCP/IP port allocation can become unwieldy. "
+"Therefore it may be desirable to configure for socketless recovery operation."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:531
+#, no-c-format
+msgid ""
+"The property <property>com.arjuna.ats.arjuna.coordinator."
+"transactionStatusManagerEnable</property> can be set to a value of "
+"<literal>NO</literal> to disable the TransactionStatusManager for any given "
+"TransactionManager. Note that this must not be done if recovery runs in a "
+"separate process, as it may lead to incorrect recovery behavior in such "
+"cases. For an in-process recovery manager, the system will use direct access "
+"to the ActionStatusService instead."
+msgstr ""
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:534
+#, no-c-format
+msgid ""
+"The property <property>com.arjuna.ats.arjuna.recovery.recoveryListener</"
+"property> can likewise be used to disable the TCP/IP socket listener used by "
+"the recovery manager. Care must be taken not to inadvertently start multiple "
+"recovery managers for the same ObjectStore, as this error, which may lead to "
+"significant crash recovery problems, cannot be automatically detected and "
+"prevented without the benefit of the socket listener."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/Author_Group.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,23 @@
+# translation of Preface.po to
+# Language zh-CN translations for  package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-11-18 10:28+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: author
+#: Author_Group.xml:6
+#, fuzzy, no-c-format
+msgid "<firstname>Red Hat Documentation Group</firstname> <surname></surname>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/Book_Info.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,49 @@
+# translation of Preface.po to
+# Language zh-CN translations for  package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-11-18 10:28+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Failure Recovery Guide"
+msgstr "JBoss Transactions 失效切换指南"
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, fuzzy, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 5.0"
+msgstr "用于 JBoss 企业级应用程序平台 4.3"
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss "
+"Transactions Failure Recovery Guide"
+msgstr "本书是 JBoss Transactions 失效切换指南的企业级应用程序平台版本"
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr "Logo"
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/How_JBossTS_managers_the_OTS_Recovery_Protocol.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/How_JBossTS_managers_the_OTS_Recovery_Protocol.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/How_JBossTS_managers_the_OTS_Recovery_Protocol.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,524 @@
+# translation of Preface.po to
+# Language zh-CN translations for  package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-11-18 10:28+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:6
+#, no-c-format
+msgid "How JBossTS manages the OTS Recovery Protocol"
+msgstr "JBossTS 如何管理 OTS 切换协议"
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:10
+#, no-c-format
+msgid "Recovery Protocol in OTS-Overview"
+msgstr "OTS 的切换协议概述"
+
+#. 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 ""
+"为了在失效时进行切换,OTS 规格定义了切换协议(Recovery protocol)。处于可疑状"
+"态的事务参与者可以使用 RecoveryCoordinator 来决定事务的状态。安装事务状态,这"
+"些参与者可以采取合适的操作,如回滚或提交。"
+
+#. 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 ""
+"对事务协调者(transaction Coordinator)的 register_resource 的成功调用将返回"
+"对 RecoveryCoordinator 的引用。在事务过程中如果发生失效,这个隐性地和单一自由"
+"关联的对象可被用来驱动资源。"
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:21
+#, no-c-format
+msgid "Resource and RecoveryCoordinator relationship."
+msgstr "资源和 RecoveryCoordinator 的关系。"
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:26
+#, no-c-format
+msgid "RecoveryCoordinator in JBossTS"
+msgstr "JBossTS 里的 RecoveryCoordinator"
+
+#. 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 ""
+"在每个注册的资源上,一个 RecoveryCoordinator 对象将被创建并返回给调用 "
+"register_resource 操作的应用程序。在每个 CORBA 对象后面,都应该有一个对象实现"
+"或 Servant 对象,按照 POA 的术语,它执行 RecoveryCoordinator 对象上的操作。不"
+"是在每个 register_resource 上用相关联的 servant 创建 RecoveryCoordinator 对"
+"象,JBossTS 通过避免 servant 的创建来增强性能,但它依赖于缺省的 "
+"RecoveryCoordinator 对象和相关联的缺省 servant 来管理所有的 "
+"replay_completion 调用。"
+
+#. 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 ""
+"在下面的章节里,我们首先给出可移植对象适配器架构的概述,然后我们将讨论这个构"
+"架是如何被用来提供优化的 RecoveryCoordinator 创建的。"
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:34
+#, no-c-format
+msgid "Understanding POA"
+msgstr "理解 POA"
+
+#. 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 ""
+"基本上,可移植对象适配器(Portable Object Adapter,POA)是一个拦截客户请求并"
+"识别满足客户请求的对象的对象。然后这个对象被调用并把响应返回给客户。"
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:43
+#, no-c-format
+msgid "Overview of the POA."
+msgstr "POA 概述。"
+
+#. 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 ""
+"执行客户请求的对象被称为 servant,它提供客户请求的 CORBA 对象的实现。Servant "
+"提供一个或多个 CORBA 对象引用的实现。要获取 servant,每个 POA 都维护一个活动"
+"对象表(Active Object Map),这个表把所有在 POA 里激活的对象映射到 servant。"
+"对于每个转入请求,POA 查找活动对象表里的对象引用并试图找到负责的 servant。如"
+"果找到,请求将被委托给缺省的 servant,或调用 servant 管理者激活或定位合适的 "
+"servant。除了由对象 ID 标识的对象命名空间外,POA 也为 POA 提供命名空间。POA "
+"作为现有 POA 的子对象被创建,从而组成了从根 POA 开始的层次结构。"
+
+#. 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 ""
+"每个 POA 都有一系列定义其特征的策略。当创建新的 POA 时,可使用缺省的策略集或"
+"者适合应用程序要求而被赋予的不同的值。POA 规格定义了:"
+
+#. 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 ""
+"<emphasis>Thread 策略</emphasis> 指定了 POA 使用的线程模型。可能的值为:"
+
+#. 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 "ORB_CTRL_MODEL(缺省值):POA 负责分配请求给线程。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:63
+#, no-c-format
+msgid "SINGLE_THREAD_MODEL: The POA processes requests sequentially"
+msgstr "SINGLE_THREAD_MODEL:POA 按顺序处理请求"
+
+#. 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 ""
+"<emphasis>Lifespan 策略</emphasis>:指定 POA 里实现的对象的 lifespan。"
+"Lifespan 策略可有下列值:"
+
+#. 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 ""
+"TRANSIENT(缺省):POA 里实现的对象不能比创建它们的进程的生命周期更长。一旦 "
+"POA 被取消激活,试图使用 POA 生成的任何对象引用将抛出 OBJECT_NOT_EXIST 异常。"
+
+#. 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 "PERSISTENT:POA 里实现的对象可以比创建它们的进程的生命周期更长。"
+
+#. 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 ""
+"Object ID Uniqueness 策略:允许单一的 servant 由许多绝对对象共享。Object ID "
+"Uniqueness 策略可以有下列的值:"
+
+#. 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 "UNIQUE_ID(缺省):被激活的 servant 只支持一个对象 ID。"
+
+#. 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 ""
+"MULTIPLE_ID:被激活的 servant 可以有一个或多个对象 ID。对象 ID 必须在运行时被"
+"调用的方法内被决定。"
+
+#. 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 ""
+"ID Assignment 策略:指定对象 ID 是由服务器应用程序还是 POA 生成。ID "
+"Assignment 策略可以有下列的值:"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:109
+#, no-c-format
+msgid "USER_ID is for persistent objects, and"
+msgstr "用于持久性对象的 USER_ID "
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:114
+#, no-c-format
+msgid "SYSTEM_ID is for transient objects."
+msgstr "用于临时对象的 SYSTEM_ID"
+
+#. 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 ""
+"Servant Retention 策略:指定 POA 是否在活动对象表里保留活动的 servant。"
+"Servant Retention 策略可以有下列的值:"
+
+#. 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 ""
+"RETAIN(缺省值):POA 跟踪活动对象表里的对象活动。RETAIN 通常和 "
+"ServantActivators 或显性的激活方法一起使用。"
+
+#. 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 ""
+"NON_RETAIN:POA 不在活动对象表里保留活动 servant。NON_RETAIN 通常和 "
+"ServantLocator 一起使用。"
+
+#. 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 "Request Processing 策略:指定 POA 如何处理请求。"
+
+#. 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 ""
+"USE_ACTIVE_OBJECT_MAP(缺省值):如果对象 ID 没有在活动对象表里列出,"
+"OBJECT_NOT _EXIST 异常将被抛出。POA 必须将这个值和 RETAIN 策略一起使用。"
+
+#. 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 ""
+"USE_DEFAULT_SERVANT:如果对象 ID 没有在活动对象表里列出,或者设置了 "
+"NON_RETAIN 策略,请求将被分派给缺省的 servant。如果没有注册缺省的 servant,"
+"OBJ_ADAPTER 异常将被返回。对于这个值,POA 必须也使用 MULTIPLE_ID 策略。"
+
+#. 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 ""
+"USE_SERVANT_MANAGER:如果对象 ID 没有在活动对象表里列出,或者设置了 "
+"NON_RETAIN 策略,Servant 管理者将被用来获取 servant。"
+
+#. 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 ""
+"Implicit Activation 策略:指定 POA 是否支持隐性地激活 servant。Implicit "
+"Activation 策略可以有下列的值:"
+
+#. 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 ""
+"IMPLICIT_ACTIVATION:POA 支持 servant 的隐性激活。Servant 可以通过转换为带有 "
+"<methodname>org.omg.PortableServer.POA.servant_to_reference()</methodname> 的"
+"对象引用或调用 <methodname>_this()</methodname> 来激活。对于这个值,POA 也必"
+"须使用 SYSTEM_ID 和 RETAIN 策略。"
+
+#. 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 "NO_IMPLICIT_ACTIVATION(缺省):POA 不支持 servant 的隐性激活。"
+
+#. 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. JBossTS provides one servant "
+"per machine to perform replay_completion invocations. This servant is "
+"located in the RecoveryManager process. The RecoveryManager process is a "
+"separate process from the client and 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 ""
+"把 replay_completion 调用重定向到缺省的 servant,我们需要创建使用分配了 "
+"USE_DEFAULT_SERVANT 值的 Request Processing 策略的 POA。然而,为了到达到达缺"
+"省的 Servant,我们首先应该到达转发请求给缺省 servant 的 POA。实际上,ORB 使用"
+"一系列信息来获取 POA;这些信息包含在客户端使用的对象引用里。在这些信息中,有"
+"服务器的 IP 地址和端口号以及 POA 名称。JBossTS 为每台主机提供一个 servant 来"
+"执行 replay_completion 调用。这个 servant 位于 RecoveryManager 进程里。"
+"RecoveryManager 进程是独立于客户端和服务器应用程序的进程。下节解释了如何为 "
+"ORBIX 和 JacORB 提供位于独立进程里的缺省 servant 的间接定位。"
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:282
+#, no-c-format
+msgid "The default RecoveryCoordinator in JacOrb"
+msgstr "JacOrb 里的缺省 RecoveryCoordinator"
+
+#. 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 ""
+"JacORB 不定义额外的策略来把 RecoveryCoordinator 对象上的请求重定向到切换管理"
+"者(Recovery Manager)进程里的缺省 servant 上。然而,为了到达合适的缺省 "
+"servant,它提供一系列 API 来允许构建带有专有 IP 地址、端口号和 POA 名称的对象"
+"引用。"
+
+#. Tag: title
+#: 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: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 ""
+"当切换管理者被启动时,它在配置文件里搜索需要加载的 RecoveryActivator。一旦完"
+"成,它调用每个加载进程的 <methodname>startRCservice</methodname> 方法。如前面"
+"章节(切换管理者)里所述,加载类是实现了 <interfacename>RecoveryActivator</"
+"interfacename> 接口的 <classname>RecoveryEnablement</classname>。这个位于 "
+"<package>com.arjuna.ats.internal.jts.orbspecific.recovery</package> 包里的通"
+"用类,隐藏了应用程序(JacORB)所使用的 ORB 的性质。下图解释了 "
+"<interfacename>RecoveryActivator</interfacename> 的行为,它创建执行 "
+"replay_completion 调用的缺省 servant。"
+
+#. 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 ""
+"除了创建缺省的 servant,<code>RecoveryCoordinator</code> 对象的对象引用也被创"
+"建并存储在对象库里。我们会看到这个对象引用将被用来获取它的 IP 地址、端口号码"
+"和 POA 名称并分配给任何在 register_resource 上创建的 "
+"<code>RecoveryCoordinator</code> 对象引用。"
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:299
+#, no-c-format
+msgid ""
+"replay_completion invocation forwarded to the default RecoveryCoordinator."
+msgstr "转发 replay_completion 调用给缺省的 RecoveryCoordinator。"
+
+#. 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 ""
+"当应用程序在事务里注册资源时,<code>RecoveryCoordinator</code> 对象引用将被返"
+"回。要构建这个对象引用,事务服务(Transaction Service)把资源管理者里创建的 "
+"RecoveryCoordinator 对象引用作为模板使用。新的对象引用包含和获取缺省 servant "
+"几乎相同的信息(IP 地址、端口号、POA 名称等),但对象 ID 改变了。如下所述,它"
+"包含运行的事务的 ID 以及创建新的 <code>RecoveryCoordinator</code> 对象引用的"
+"进程的 ID。"
+
+#. 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 ""
+"资源注册和所返回的从对象库存储的引用构建的 RecoveryCoordinator 对象引用。"
+
+#. 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 ""
+"既然返回给应用程序的 <code>RecoveryCoordintaor</code> 对象引用包含所有用于获"
+"取 POA 的信息,那么位于资源管理者里的缺省 servant、所有的 replay_completion "
+"调用都会被转发给相同的缺省 <code>RecoveryCoordinator</code>,它能够从转入请求"
+"里获取对象 ID 来抽取决定被请求事务的状态的事务标识符和进程标识符。"

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/JBoss_Transactions_Failure_Recovery_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/JBoss_Transactions_Failure_Recovery_Guide_CP06.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/Preface.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,23 @@
+# translation of Preface.po to
+# Language zh-CN translations for  package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-11-18 10:28+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr "序言"

Added: labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_0/Transactions_Failure_Recovery_Guide/zh-CN/Revision_History.po	2009-09-17 02:54:03 UTC (rev 29387)
@@ -0,0 +1,29 @@
+# translation of Preface.po to
+# Language zh-CN translations for  package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-09-17 02:51+0000\n"
+"PO-Revision-Date: 2008-11-18 10:28+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr "修订历史记录"
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"



More information about the jboss-svn-commits mailing list