[jboss-cvs] JBossAS SVN: r75365 - projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jul 4 00:08:43 EDT 2008


Author: croe at redhat.com
Date: 2008-07-04 00:08:42 -0400 (Fri, 04 Jul 2008)
New Revision: 75365

Modified:
   projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Appendix_A.po
   projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Appendix_B.po
   projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Author_Group.po
   projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Book_Info.po
   projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter.po
   projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_02.po
   projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_03.po
   projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_04.po
   projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_05.po
   projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_06.po
   projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_07.po
Log:
translation completed - Requires proof reading

Modified: projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Appendix_A.po
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Appendix_A.po	2008-07-04 02:17:48 UTC (rev 75364)
+++ projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Appendix_A.po	2008-07-04 04:08:42 UTC (rev 75365)
@@ -1,29 +1,32 @@
+# translation of Appendix_A.po to French
 # Language fr-FR translations for JBoss_TS_Programmers_Guide package.
+#
 # Automatically generated, 2008.
-#
+# Corina Roe <croe at redhat.com>, 2008.
 msgid ""
 msgstr ""
-"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\n"
+"Project-Id-Version: Appendix_A\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2008-06-05 22:51+0000\n"
-"PO-Revision-Date: 2008-06-05 22:51+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2008-06-23 16:26+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
 #: Appendix_A.xml:6
 #, no-c-format
 msgid "Object store implementations"
-msgstr ""
+msgstr "objecyt storeImplémentation d'ObjectStore"
 
 #. Tag: title
 #: Appendix_A.xml:9
 #, no-c-format
 msgid "The ObjectStore"
-msgstr ""
+msgstr "ObjectStore"
 
 #. Tag: para
 #: Appendix_A.xml:10
@@ -32,7 +35,7 @@
 "In this appendix we shall examine the various TxCore object store "
 "implementations and give guidelines as to how other implementations may be "
 "created and plugged into an application."
-msgstr ""
+msgstr "Dans cette annexe, nous examinerons les différentes implémentations TcCore ObjectStore et nous vous donnerons des directives sur la manière de créer ou d'ajouter d'autres implémentations à une application."
 
 #. Tag: para
 #: Appendix_A.xml:13
@@ -48,6 +51,8 @@
 "arjuna.ats.arjuna.objectstore.objectStoreType</property> property variable "
 "to one of the types described below."
 msgstr ""
+"Cette mise à jour de JBossTS comprend différents implémentations d'un ObjectStore de base. Chacune a un but précis et est généralement optimisée dans ce but. Toutes les implémentations sont dérivées de l'interface <interface>ObjectStore</interface>, qui détermine le minimum d'opérations nécessaires pour qu'une implémentation d'ObjectStore soit utilisée par JBossTS. L'implémentation ObjectStore par défaut peut être remplacée en cours d'exécution par configuration de la variable de propriété <property>com."
+"arjuna.ats.arjuna.objectstore.objectStoreType</property> avec l'un des types des données proposés ci-dessous."
 
 #. Tag: screen
 #: Appendix_A.xml:16
@@ -118,6 +123,70 @@
 "        public static void printState (PrintStream strm, int res);\n"
 "};"
 msgstr ""
+"/*\n"
+"        * This is the base class from which all object store types are "
+"derived.\n"
+"        * Note that because object store instances are stateless, to "
+"improve\n"
+"        * efficiency we try to only create one instance of each type per "
+"process.\n"
+"        * Therefore, the create and destroy methods are used instead of new\n"
+"        * and delete. If an object store is accessed via create it *must* "
+"be\n"
+"        * deleted using destroy. Of course it is still possible to make use "
+"of\n"
+"        * new and delete directly and to create instances on the stack.\n"
+"        */\n"
+"        \n"
+"        public class ObjectStore\n"
+"        {\n"
+"        public static final int OS_COMMITTED;\n"
+"        public static final int OS_COMMITTED_HIDDEN;\n"
+"        public static final int OS_HIDDEN;\n"
+"        public static final int OS_INVISIBLE;\n"
+"        public static final int OS_ORIGINAL;\n"
+"        public static final int OS_SHADOW;\n"
+"        public static final int OS_UNCOMMITTED;\n"
+"        public static final int OS_UNCOMMITTED_HIDDEN;\n"
+"        public static final int OS_UNKNOWN;\n"
+"        public ObjectStore (ClassName type);\n"
+"        public ObjectStore (ClassName type, String osRoot);\n"
+"        public ObjectStore (String osRoot);\n"
+"        public synchronized boolean allObjUids (String s, InputObjectState "
+"buff)\n"
+"        throws ObjectStoreException;\n"
+"        public synchronized boolean allObjUids (String s, InputObjectState "
+"buff,\n"
+"        int m) throws ObjectStoreException;\n"
+"        \n"
+"        public synchronized boolean allTypes (InputObjectState buff)\n"
+"        throws ObjectStoreException;\n"
+"        public synchronized int currentState(Uid u, String tn)\n"
+"        throws ObjectStoreException;\n"
+"        public synchronized boolean commit_state (Uid u, String tn)\n"
+"        throws ObjectStoreException;\n"
+"        public synchronized boolean hide_state (Uid u, String tn)\n"
+"        throws ObjectStoreException;\n"
+"        public synchronized boolean reveal_state (Uid u, String tn)\n"
+"        throws ObjectStoreException;\n"
+"        public synchronized InputObjectState read_committed (Uid u, String "
+"tn)\n"
+"        throws ObjectStoreException;\n"
+"        public synchronized InputObjectState read_uncommitted (Uid u, String "
+"tn)\n"
+"        throws ObjectStoreException;\n"
+"        public synchronized boolean remove_committed (Uid u, String tn)\n"
+"        throws ObjectStoreException;\n"
+"        public synchronized boolean remove_uncommitted (Uid u, String tn)\n"
+"        throws ObjectStoreException;\n"
+"        public synchronized boolean write_committed (Uid u, String tn,\n"
+"        OutputObjectState buff)\n"
+"        throws ObjectStoreException;\n"
+"        public synchronized boolean write_uncommitted (Uid u, String tn,\n"
+"        OutputObjectState buff)\n"
+"        throws ObjectStoreException;\n"
+"        public static void printState (PrintStream strm, int res);\n"
+"};"
 
 #. Tag: para
 #: Appendix_A.xml:17
@@ -140,7 +209,7 @@
 "however, any other implementation that maintains this abstraction is "
 "permissible. Object states may become hidden (and thus inaccessible) under "
 "the control of the crash recovery system."
-msgstr ""
+msgstr "Les programmeurs JBossTS n'ont normalement pas besoin d'interagir avec aucune implémentation ObjectStore directement, sinon pour les créer au départ (même cela n'est pas strictement nécessaires car JBossTS pourra créer des stores si l'option store par défaut est configurée). Tous les stores manipulent des instances de la classe <classname>ObjectState</classname> qui sont nommées en utilisant un type de données (par l'opération type d'objet) et un Uid. Il existe deux états d'objet pour les actions atomiques, dans le store: OS_COMMITTED, et OS_UNCOMMITTED. Un état d'objet commence par un état OS_COMMITTED, mais peut changer en OS_UNCOMMITTED s'il est modifié sous contrôle d'une action atomique. Si l'action échoue, ce second état est tout simplement ignoré. Toutes les implémentations proposées dans cette version, traitent de ces transitions d'état en utilisant des doubles de copies des états d'objet. Cependant, toute autre implémentation qui mai!
 ntient cette abstraction est permise. Les états d'objet sont alors cachés (et donc inaccessibles) sous le contrôle du système de récupération des données en cas de crash."
 
 #. Tag: para
 #: Appendix_A.xml:20
@@ -155,12 +224,15 @@
 "the Uids of all objects of a given type terminated by the special "
 "<methodname>Uid.nullUid()</methodname>."
 msgstr ""
+"Vous pouvez naviguer à travers le contenu d'un store grâce aux opérations <methodname>allTypes</methodname> et <methodname>allObjUids</methodname>. <methodname>allTypes</methodname> retourne un <type>InputObjectState</type> qui contient tous les types de noms des objets contenus dans le store, terminés par un nom nul. <methodname>allObjUids</"
+"methodname> retourne un <type>InputObjectState</type> qui contient tous les Uids de tous les objects attachés à un type particulier et terminés par le "
+"<methodname>Uid.nullUid()</methodname> spécial."
 
 #. Tag: title
 #: Appendix_A.xml:25
 #, no-c-format
 msgid "Persistent object stores"
-msgstr ""
+msgstr "ObjetStore persistants"
 
 #. Tag: para
 #: Appendix_A.xml:26
@@ -170,13 +242,13 @@
 "of the supplied implementations of the persistent object store. Persistent "
 "object states are mapped onto the structure of the file system supported by "
 "the host operating system."
-msgstr ""
+msgstr "Cette section décrit brièvement les caractéristiques et optimisations de chaque implémentation proposée de l'ObjectStore persistant. Les OjectStore persistants sont mappés dans la structure du système de fichiers supportés par le système d'exploitation de l'hôte."
 
 #. Tag: title
 #: Appendix_A.xml:30
 #, no-c-format
 msgid "Common functionality"
-msgstr ""
+msgstr "Fonctionnalité en commun"
 
 #. Tag: para
 #: Appendix_A.xml:31
@@ -184,7 +256,7 @@
 msgid ""
 "In addition to the features mentioned earlier all of the supplied persistent "
 "object stores obey the following rules:"
-msgstr ""
+msgstr "En plus des fonctions mentionnées ci-dessus, tous les ObjectStores persistants proposées obéissent aux règles suivantes:"
 
 #. Tag: para
 #: Appendix_A.xml:35
@@ -192,7 +264,7 @@
 msgid ""
 "Each object state is stored in its own file that is named using the "
 "<code>Uid</code> of the object."
-msgstr ""
+msgstr "Chaque état d'objet est placé dans son propre fichier, qui est nommé par l'intermédiaire de l'<code>Uid</code> de l'objet."
 
 #. Tag: para
 #: Appendix_A.xml:40
@@ -200,7 +272,7 @@
 msgid ""
 "The type of an object (as given by the <methodname>type()</methodname> "
 "operation) determines the directory into which the object is placed."
-msgstr ""
+msgstr "Le type d'un objet (donné par l'opération <methodname>type()</methodname>) détermine le répertoire dans lequel l'objet est placé."
 
 #. Tag: para
 #: Appendix_A.xml:45
@@ -209,7 +281,7 @@
 "All of the stores have a common root directory that is determined when "
 "JBossTS is configured. This directory name is automatically prepended to any "
 "store specific root information."
-msgstr ""
+msgstr "Tous les stores ont un répertoire root qui détermine quand JBossTS est configuré. Ce nom de répertoire est ajouté comme préfixe à toute information root spécifique au store."
 
 #. Tag: para
 #: Appendix_A.xml:50
@@ -219,7 +291,7 @@
 "automatically prepended to the type of the object to determine the ultimate "
 "directory name. The localised root name is specified when the store is "
 "created. By default the localised root name is <code>defaultStore</code>."
-msgstr ""
+msgstr "Tous les stores ont aussi la notion d'un répertoire root qui est automatiquement ajouté comme préfixe du type d'objet pour déterminer le nom du répertoire ultime. Le nom root localisé est spécifié quand le store est créé. Par défaut, le nom root localisé est <code>defaultStore</code>."
 
 #. Tag: screen
 #: Appendix_A.xml:55
@@ -240,12 +312,26 @@
 "        &lt;ObjectStore Type2&gt;                ActionStore/\n"
 "                &lt;Default root&gt;                        defaultStore/"
 msgstr ""
+"&lt;ObjectStore root Directory from configure&gt;        /JBossTS/"
+"ObjectStore/\n"
+"        &lt;ObjectStore Type1&gt;                        FragmentedStore/\n"
+"                &lt;Default root&gt;                        defaultStore/\n"
+"                        &lt;StateManager&gt;                        "
+"StateManager\n"
+"                                &lt;LockManager&gt;                        "
+"LockManager/\n"
+"                                        &lt;User Types&gt;                \n"
+"        &lt;Localised root 2&gt;                myStore/\n"
+"                &lt;StateManager&gt;                        StateManager/\n"
+"                                                                        \n"
+"        &lt;ObjectStore Type2&gt;                ActionStore/\n"
+"                &lt;Default root&gt;                        defaultStore/"
 
 #. Tag: title
 #: Appendix_A.xml:58
 #, no-c-format
 msgid "The shadowing store"
-msgstr ""
+msgstr "Le shadowing store"
 
 #. Tag: para
 #: Appendix_A.xml:59
@@ -260,6 +346,8 @@
 "simply opening, closing and renaming files, all of which are very expensive "
 "operations."
 msgstr ""
+"Il s'agit de la version originale d'un ObjectStore comme proposé dans les versions antérieures et implémenté par la classe <classname>ShadowingStore</"
+"classname>. C'est simple mais lent. Des paires de fichiers sont utilisée pour représenter les objets (la version shadow et la version soumise) et les fichiers sont ouverts, verouillés, traités, déverrouillés et fermés pour chaque interaction avec l'ObjectStore. Ainsi, on peut passer énormément de temps à simplement ouvrir, fermer et renommer les fichiers, ce qui représente un coût non négligeable."
 
 #. Tag: para
 #: Appendix_A.xml:63
@@ -267,13 +355,13 @@
 msgid ""
 "If overriding the object store implementation, the type of this object store "
 "is <type>ShadowingStore</type>."
-msgstr ""
+msgstr "Si on overide l'implémentation de l'ObjectStore, le type de cet ObjectStore est <type>ShadowingStore</type>."
 
 #. Tag: title
 #: Appendix_A.xml:67 Appendix_A.xml:85
 #, no-c-format
 msgid "No file-level locking"
-msgstr ""
+msgstr "Pas de verrouillage au niveau-fichier"
 
 #. Tag: para
 #: Appendix_A.xml:68
@@ -286,7 +374,7 @@
 "JBossTS, <methodname>ShadowNoFileLockStore</methodname>, relies upon user-"
 "level locking. This enables it to provide better performance than the "
 "<methodname>ShadowingStore</methodname> implementation."
-msgstr ""
+msgstr "Comme les objets transactionnels sont simultanément contrôlés par <methodname>LockManager</methodname>, il n'est pas nécessaire d'imposer de verrouillage supplémentaire au niveau fichier comme dans l'implémentation de base ShadowingStore. Ainsi, l'implémentation ObjetStore par défaut de JBossTS, <methodname>ShadowNoFileLockStore</methodname>, dépend du vérrouillage au niveau-utilisateur. Ceci lui permet d'offrir une meilleure performance que l'implémentation <methodname>ShadowingStore</methodname>."
 
 #. Tag: para
 #: Appendix_A.xml:72 Appendix_A.xml:90
@@ -294,13 +382,13 @@
 msgid ""
 "If overriding the object store implementation, the type of this object store "
 "is <type>ShadowNoFileLockStore</type>."
-msgstr ""
+msgstr "Si elle remplace l'implémentation d'un ObjectStore, le type de cet ObjectStore est <type>ShadowNoFileLockStore</type>."
 
 #. Tag: title
 #: Appendix_A.xml:76 Appendix_A.xml:94
 #, no-c-format
 msgid "The hashed store"
-msgstr ""
+msgstr "The hashed store"
 
 #. Tag: para
 #: Appendix_A.xml:77
@@ -313,7 +401,7 @@
 "hashing function to the object's Uid. By default 255 sub-directories are "
 "used. However, this can be overridden by setting the "
 "<code>HASHED_DIRECTORIES</code> environment variable accordingly."
-msgstr ""
+msgstr "Le <code>HashedStore</code> a la même structure que le sahdowing stores pour les états d'objet, mais ont une structure de répertoire alternante qui est mieux adaptée pour héberger un grand nombre d'objets du même type. En utilisant ce store, les objets sont éparpillés parmi un ensemble de répertoires par l'application de la fonction Hashing aux objets Uid. 255 sous-répertoires sont utilisés par défaut. Cependant, on peut changer cela en configurant ka variable <code>HASHED_DIRECTORIES</code> d'environnement en fonction."
 
 #. Tag: para
 #: Appendix_A.xml:81 Appendix_A.xml:99
@@ -321,7 +409,7 @@
 msgid ""
 "If overriding the object store implementation, the type of this object store "
 "is <type>HashedStore</type>."
-msgstr ""
+msgstr "Si on change l'implémentation d'un ObjetStore, le type de cet ObjetStore est <type>HashedStore</type>."
 
 #. Tag: para
 #: Appendix_A.xml:86
@@ -335,7 +423,7 @@
 "<methodname>ShadowNoFileLockStore</methodname>, relies upon user-level "
 "locking. This enables it to provide better performance than the "
 "<methodname>ShadowingStore</methodname> implementation."
-msgstr ""
+msgstr "Comme les objet transactionnels sont contrôlés simultanément par <methodname>LockManager</methodname>, il n'est pas utile d'imposer de verrouillage supplémentaire au niveau fichierm comme le fait <methodname>ShadowingStore</methodname>, l'implémentation de base. Ainsi, l'implémentation d'ObjectStore par défaut de JBossTS, <methodname>ShadowNoFileLockStore</methodname>, dépend du verrouillage au niveau utilisateur. Ceci lui permet d'offrir une meilleure performance que l'implémentation <methodname>ShadowingStore</methodname>."
 
 #. Tag: para
 #: Appendix_A.xml:95
@@ -348,13 +436,13 @@
 "hashing function to the object's Uid. By default 255 sub-directories are "
 "used. However, this can be overridden by setting the "
 "<code>HASHED_DIRECTORIES</code> environment variable accordingly."
-msgstr ""
+msgstr "<methodname>HashedStore</methodname> a la même structure que les shadowing stores pour les états d'objet, mais possède une structure de répertoire différente, qui est mieux adaptée pour héberger un grand nombre d'objets s=du même type. En utilisant ce store, les objets sont éparpillés parmi un ensemble de répertoires en appliquant la fonction hashing aux objets Uid. 255 sous-répertoires sont utilisés par défaut. Cependant, on peut modifier cela en configurant la variable<code>HASHED_DIRECTORIES</code>d'environnement en fonction."
 
 #. Tag: title
 #: Appendix_A.xml:103
 #, no-c-format
 msgid "The JDBC store"
-msgstr ""
+msgstr "The JDBC store"
 
 #. Tag: para
 #: Appendix_A.xml:104
@@ -368,7 +456,7 @@
 "BLOBs is 64k; if an attempt is made to store an object state which exceeds "
 "this limit an error will be output and the state will not be stored. The "
 "transaction will subsequently be forced to roll back."
-msgstr ""
+msgstr "<methodname>JDBCStore</methodname> utilise une base de données JDBC pour sauvegarder les états d'objets persistants. Lorsqu'utilisé en conjonction avec les Objets Transactionnels pour Java API, il existe un support pour les transactions imbriquées. Dans l'implémentation courante, tous les états d'objet sont hébergés en tant que BLOBs (de l'anglais: Binary Large Objest / Grands objets binaires) dans le même tableau. La limite de la taille des objets imposée par BLOB est de 64k. Si on tente d'héberger un état d'objet dont la taille excède cette limite, il y aura une erreur de sortie et l'état ne pourra pas être hébergé. La transaction sera alors refoulée."
 
 #. Tag: para
 #: Appendix_A.xml:108
@@ -378,6 +466,8 @@
 "implementation of the following interface, located in the <code>com.arjuna."
 "ats.arjuna.objectstore</code> package:"
 msgstr ""
+"Lorsque vous utilisez un ObjectStore JDBC, l'application doit procurer une implémentation de l'interface suivante, située dans le paquetage <code>com.arjuna."
+"ats.arjuna.objectstore</code>:"
 
 #. Tag: screen
 #: Appendix_A.xml:111
@@ -390,6 +480,12 @@
 "        public void initialise (ObjectName objName);\n"
 "}"
 msgstr ""
+"public interface JDBCAccess\n"
+"{\n"
+"        public Connection getConnection () throws SQLException;\n"
+"        public void putConnection (Connection conn) throws SQLException;\n"
+"        public void initialise (ObjectName objName);\n"
+"}"
 
 #. Tag: para
 #: Appendix_A.xml:112
@@ -398,7 +494,7 @@
 "The implementation of this class is responsible for providing the "
 "<emphasis>Connection</emphasis> which the JDBC ObjectStore will use to save "
 "and restore object states:"
-msgstr ""
+msgstr "L'implémentation de cette classe est chargée de procurer la <emphasis>Connexion</emphasis> utilisée par le JDBC ObjectStore pour sauvegarder et restaurer les états d'objet."
 
 #. Tag: para
 #: Appendix_A.xml:117
@@ -409,7 +505,7 @@
 "implementation should use whatever policy is necessary for determining what "
 "connection to return. This method need not return the same Connection "
 "instance more than once."
-msgstr ""
+msgstr "<methodname>getConnection</methodname>: retourne la connexion à utiliser. Cette méthode est utilisée quand on a besoin d'une connexion et que l'implémentation devrait utiliser n'importe quelle politique nécessaire pour déterminer quelle connexion retourner. Cette méthode n'a pas besoin de retourner la même instance de connexion plus d'une fois."
 
 #. Tag: para
 #: Appendix_A.xml:122
@@ -418,7 +514,7 @@
 "<methodname>putConnection</methodname>: this method will be called to return "
 "one of the Connections acquired from getConnection. Connections are returned "
 "if any errors occur when using them."
-msgstr ""
+msgstr "<methodname>putConnection</methodname>: cette méthode est utilisée pour retourner une des connxions provenant de getConnection. Les connexions sont retournées en cas d'errreur."
 
 #. Tag: para
 #: Appendix_A.xml:127
@@ -426,7 +522,7 @@
 msgid ""
 "<methodname>initialise</methodname>: this can be used to pass additional "
 "arbitrary information to the implementation."
-msgstr ""
+msgstr "<methodname>initialise</methodname>: peut être utilisé pour passer des informations arbitraires supplémentaires pour l'implémentation."
 
 #. Tag: para
 #: Appendix_A.xml:132
@@ -438,6 +534,9 @@
 "the <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
 "property> property."
 msgstr ""
+"L'ObjectStore JDBC fera tout d'abord une demande pour un nombre de connexions bien defini dans la propriété <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property> et utilisera se restreindra au nombre déterminé dans la propriété <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
+"property>."
 
 #. Tag: para
 #: Appendix_A.xml:135
@@ -447,6 +546,8 @@
 "interface to use should be set in the <property>com.arjuna.ats.arjuna."
 "objectstore.jdbcUserDbAccess</property> property variable."
 msgstr ""
+"L'implémentation de l'interface <interfacename>JDBCAccess</interfacename> à utiliser, devrait être installée dans la variable de propriété <property>com.arjuna.ats.arjuna."
+"objectstore.jdbcUserDbAccess</property>."
 
 #. Tag: para
 #: Appendix_A.xml:138
@@ -454,7 +555,7 @@
 msgid ""
 "If overriding the object store implementation, the type of this object store "
 "is <type>JDBCStore</type>."
-msgstr ""
+msgstr "Lorsqu'on change l'implémentation d'une implémentation d'ObjectStore, le type de cet ObjectStore est <type>JDBCStore</type>."
 
 #. Tag: para
 #: Appendix_A.xml:141
@@ -467,6 +568,9 @@
 "arjuna.objectstore.jdbcTxDbAccess</property> property variable. In this "
 "case, the default table name is JBossTSTxTable."
 msgstr ""
+"Un ObjetStore JDBC peut être utilisé pour gérer le journal des transactions. Dans ce cas, l'implémentation du journal de transactions devrait être configuré ainsi <property>JDBCActionStore</property> et l'implémentation <methodname>JDBCAccess</"
+"methodname> doit être fournie par la variable de propriété <property>com.arjuna.ats."
+"arjuna.objectstore.jdbcTxDbAccess</property>. Dans ce cas, le nom du tableau par défaut est JBossTSTxTable."
 
 #. Tag: para
 #: Appendix_A.xml:145
@@ -474,13 +578,13 @@
 msgid ""
 "It is possible to use the same JDBCAccess implementation for both the user "
 "object store and also the transaction log."
-msgstr ""
+msgstr "Il est possible d'utiliser la même implémentation JDBCAccess pour l'ObjectStore de l'utilisateur et aussi pour le journal de transaction."
 
 #. Tag: title
 #: Appendix_A.xml:150
 #, no-c-format
 msgid "The cached store"
-msgstr ""
+msgstr "The cached store"
 
 #. Tag: para
 #: Appendix_A.xml:151
@@ -492,7 +596,7 @@
 "it is full. The failure semantics associated with this object store are "
 "different to the normal persistent object stores, because a failure could "
 "result in states in the cache being lost."
-msgstr ""
+msgstr "Cet ObjectStore utilise le Hashed ObjectStore, mais ne peut ni lire, ni écrire les états dans le store de sauvegarde persistant. Il maintient les états dans le cache mémoire volatile et soit vide le cache périodiquement ou bien quand il est plein. Les sémantiques d'échec associées à cet ObjectStore sont différentes des ObjectStores persistants habituels, car un échec pourrait résulter dans des états de cache perdus."
 
 #. Tag: para
 #: Appendix_A.xml:155
@@ -500,13 +604,13 @@
 msgid ""
 "If overriding the object store implementation, the type of this object store "
 "is <type>CachedStore</type>."
-msgstr ""
+msgstr "Si vous changez l'implémentation des ObjectStores, le type de cet ObjectStore est <type>CachedStore</type>."
 
 #. Tag: para
 #: Appendix_A.xml:158
 #, no-c-format
 msgid "The store can be configured with the following properties:"
-msgstr ""
+msgstr "Le store peut être configuré avec les proprités suivantes:"
 
 #. Tag: para
 #: Appendix_A.xml:163
@@ -516,6 +620,8 @@
 "property> sets the number of internal stores to hash the states over. The "
 "default value is 128."
 msgstr ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.hash</"
+"property> détermine le nombre de stores internes pour hasher les états par dessus. La valeur par défaut est 128."
 
 #. Tag: para
 #: Appendix_A.xml:168
@@ -525,6 +631,8 @@
 "property> is the maximum size the cache can reach before a flush is "
 "triggered. The default is 10240 bytes."
 msgstr ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.size</"
+"property> est la taille maximum qu'un cache peut atteindre avant de déclencher un flush. La valeur par défaut est de 10240 octets."
 
 #. Tag: para
 #: Appendix_A.xml:173
@@ -538,6 +646,8 @@
 "affect the performance of the cache). When triggered, these entries are "
 "removed from the cache. The default value is twice the size of the hash."
 msgstr ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore."
+"removedItems</property> est le nombre maximum d'objets mis de coté que le cache puisse contenir avant le déclenchement du flush. Par défaut, les appels pour retirer un état qui se trouve dans le cache aboutira simplement à retirer l'État du cache, mais laissera une entrée vide (plutôt que de supprimer l'entrée immédiatement, ce qui affecterait la performance du cache). Lorsqu'elles sont déclenchées, ces entrées sont retirées du cache. La valeur par défaut est de deux fois celle de la taille de hash."
 
 #. Tag: para
 #: Appendix_A.xml:178
@@ -547,6 +657,8 @@
 "property> is the maximum number of items that are allowed to build up in the "
 "cache before it is flushed. The default value is 100."
 msgstr ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.workItems</"
+"property> est le nombre maximum d'objets que l'on peut accumuler dans le cache avant qu'il ne soit vidé. La valeur par défaut est de 100."
 
 #. Tag: para
 #: Appendix_A.xml:183
@@ -556,6 +668,8 @@
 "property> sets the time in milliseconds for periodically flushing the cache. "
 "The default is 120 seconds."
 msgstr ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.scanPeriod</"
+"property> détermine en millesecondes le temps de vidage périodique du cache. La valeur par défaut est de 120 secondes."
 
 #. Tag: para
 #: Appendix_A.xml:188
@@ -565,3 +679,6 @@
 "property> determines whether flushes of the cache are sync-ed to disk. The "
 "default is OFF. To enable, set to ON."
 msgstr ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.sync</"
+"property> détermine su les vidages périodiques de cache sont sync-ed avec le disque. La valeur par défaut est OFF. Pour l'activer, ON."
+

Modified: projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Appendix_B.po
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Appendix_B.po	2008-07-04 02:17:48 UTC (rev 75364)
+++ projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Appendix_B.po	2008-07-04 04:08:42 UTC (rev 75365)
@@ -1,29 +1,32 @@
+# translation of Appendix_B.po to French
 # Language fr-FR translations for JBoss_TS_Programmers_Guide package.
+#
 # Automatically generated, 2008.
-#
+# Corina Roe <croe at redhat.com>, 2008.
 msgid ""
 msgstr ""
-"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\n"
+"Project-Id-Version: Appendix_B\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2008-06-05 22:51+0000\n"
-"PO-Revision-Date: 2008-06-05 22:51+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2008-06-24 08:39+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
 #: Appendix_B.xml:6
 #, no-c-format
 msgid "Class definitions"
-msgstr ""
+msgstr "Définitions de classes"
 
 #. Tag: title
 #: Appendix_B.xml:9
 #, no-c-format
 msgid "Introduction"
-msgstr ""
+msgstr "Introduction"
 
 #. Tag: para
 #: Appendix_B.xml:10
@@ -34,19 +37,19 @@
 "quick reference guide to these classes for use when writing applications in "
 "TxCore. For clarity only the public and protected interfaces of the classes "
 "will be given."
-msgstr ""
+msgstr "Cette annexe contient un aperçu de ces classes que le programmeur d'application va typiquement utiliser. Le but de cette annexe est de procurer un petit guide rapide de référence de ces classes utilisées pour écrire des applications dans TxCore. Dans un souci de clarification, on ne traitera que des interfaces publiques ou protégées des classes."
 
 #. Tag: title
 #: Appendix_B.xml:15
 #, no-c-format
 msgid "Class library"
-msgstr ""
+msgstr "Bibliothèque de classes"
 
 #. Tag: title
 #: Appendix_B.xml:17
 #, no-c-format
 msgid "Lock Manager"
-msgstr ""
+msgstr "Gestionnaire de verrouillage"
 
 #. Tag: screen
 #: Appendix_B.xml:20
@@ -92,12 +95,51 @@
 "        protected void terminate ();\n"
 "};"
 msgstr ""
+"public class LockResult\n"
+"{\n"
+"        public static final int GRANTED;\n"
+"        public static final int REFUSED;\n"
+"        public static final int RELEASED;\n"
+"};\n"
+"        \n"
+"public class ConflictType\n"
+"{\n"
+"        public static final int CONFLICT;\n"
+"        public static final int COMPATIBLE;\n"
+"        public static final int PRESENT;\n"
+"};\n"
+"        \n"
+"public abstract class LockManager extends StateManager\n"
+"{\n"
+"        public static final int defaultRetry;\n"
+"        public static final int defaultTimeout;\n"
+"        public static final int waitTotalTimeout;\n"
+"        \n"
+"        public final synchronized boolean releaselock (Uid lockUid);\n"
+"        public final synchronized int setlock (Lock toSet);\n"
+"        public final synchronized int setlock (Lock toSet, int retry);\n"
+"        public final synchronized int setlock (Lock toSet, int retry, int "
+"sleepTime);\n"
+"        public void print (PrintStream strm);\n"
+"        public String type ();\n"
+"        public boolean save_state (OutputObjectState os, int ObjectType);\n"
+"        public boolean restore_state (InputObjectState os, int ObjectType);\n"
+"        \n"
+"        protected LockManager ();\n"
+"        protected LockManager (int ot);\n"
+"        protected LockManager (int ot, ObjectName attr);\n"
+"        protected LockManager (Uid storeUid);\n"
+"        protected LockManager (Uid storeUid, int ot);\n"
+"        protected LockManager (Uid storeUid, int ot, ObjectName attr);\n"
+"        \n"
+"        protected void terminate ();\n"
+"};"
 
 #. Tag: title
 #: Appendix_B.xml:22
 #, no-c-format
 msgid "StateManager"
-msgstr ""
+msgstr "StateManager"
 
 #. Tag: screen
 #: Appendix_B.xml:25
@@ -147,12 +189,55 @@
 "        protected synchronized final void modified ();\n"
 "};"
 msgstr ""
+"public class ObjectStatus\n"
+"{\n"
+"        public static final int PASSIVE;\n"
+"        public static final int PASSIVE_NEW;\n"
+"        public static final int ACTIVE;\n"
+"        public static final int ACTIVE_NEW;\n"
+"};\n"
+"        \n"
+"public class ObjectType\n"
+"{\n"
+"        public static final int RECOVERABLE;\n"
+"        public static final int ANDPERSISTENT;\n"
+"        public static final int NEITHER;\n"
+"};\n"
+"        \n"
+"public abstract class StateManager\n"
+"{\n"
+"        public boolean restore_state (InputObjectState os, int ot);\n"
+"        public boolean save_state (OutputObjectState os, int ot);\n"
+"        public String type ();\n"
+"        \n"
+"        public synchronized boolean activate ();\n"
+"        public synchronized boolean activate (String rootName);\n"
+"        public synchronized boolean deactivate ();\n"
+"        public synchronized boolean deactivate (String rootName);\n"
+"        public synchronized boolean deactivate (String rootName, boolean "
+"commit);\n"
+"        \n"
+"        public synchronized int status ();\n"
+"        public final Uid get_uid ();\n"
+"        public void destroy ();\n"
+"        public void print (PrintStream strm);\n"
+"        \n"
+"        protected void terminate ();\n"
+"        \n"
+"        protected StateManager ();\n"
+"        protected StateManager (int ot);\n"
+"        protected StateManager (int ot, ObjectName objName);\n"
+"        protected StateManager (Uid objUid);\n"
+"        protected StateManager (Uid objUid, int ot);\n"
+"        protected StateManager (Uid objUid, int ot, ObjectName objName);\n"
+"        protected synchronized final void modified ();\n"
+"};"
 
 #. Tag: title
 #: Appendix_B.xml:27
 #, no-c-format
 msgid "Input/OutputObjectState"
-msgstr ""
+msgstr "Entrée/SortieObjectState"
 
 #. Tag: screen
 #: Appendix_B.xml:30
@@ -177,12 +262,30 @@
 "        public String type ();\n"
 "};"
 msgstr ""
+"class OutputObjectState extends OutputBuffer\n"
+"{\n"
+"        public OutputObjectState (Uid newUid, String typeName);\n"
+"        \n"
+"        public boolean notempty ();\n"
+"        public int size ();\n"
+"        public Uid stateUid ();\n"
+"        public String type ();\n"
+"};\n"
+"class InputObjectState extends ObjectState\n"
+"{\n"
+"        public OutputObjectState (Uid newUid, String typeName, byte[] b);\n"
+"        \n"
+"        public boolean notempty ();\n"
+"        public int size ();\n"
+"        public Uid stateUid ();\n"
+"        public String type ();\n"
+"};"
 
 #. Tag: title
 #: Appendix_B.xml:32
 #, no-c-format
 msgid "Input/OutputBuffer"
-msgstr ""
+msgstr "Entrée/SortieTampon"
 
 #. Tag: screen
 #: Appendix_B.xml:35
@@ -232,12 +335,55 @@
 "        public synchronized String unpackString () throws IOException;\n"
 "};"
 msgstr ""
+"public class OutputBuffer\n"
+"{\n"
+"        public        OutputBuffer ();\n"
+"        \n"
+"        public final synchronized boolean valid ();\n"
+"        public synchronized byte[] buffer();\n"
+"        public synchronized int length ();\n"
+"        \n"
+"        /* pack operations for standard Java types */\n"
+"        \n"
+"        public synchronized void packByte (byte b) throws IOException;\n"
+"        public synchronized void packBytes (byte[] b) throws IOException;\n"
+"        public synchronized void packBoolean (boolean b) throws "
+"IOException;\n"
+"        public synchronized void packChar (char c) throws IOException;\n"
+"        public synchronized void packShort (short s) throws IOException;\n"
+"        public synchronized void packInt (int i) throws IOException;\n"
+"        public synchronized void packLong (long l) throws IOException;\n"
+"        public synchronized void packFloat (float f) throws IOException;\n"
+"        public synchronized void packDouble (double d) throws IOException;\n"
+"        public synchronized void packString (String s) throws IOException;\n"
+"};\n"
+"public class InputBuffer\n"
+"{\n"
+"        public        InputBuffer ();\n"
+"        \n"
+"        public final synchronized boolean valid ();\n"
+"        public synchronized byte[] buffer();\n"
+"        public synchronized int length ();\n"
+"        \n"
+"        /* unpack operations for standard Java types */\n"
+"        \n"
+"        public synchronized byte unpackByte () throws IOException;\n"
+"        public synchronized byte[] unpackBytes () throws IOException;\n"
+"        public synchronized boolean unpackBoolean () throws IOException;\n"
+"        public synchronized char unpackChar () throws IOException;\n"
+"        public synchronized short unpackShort () throws IOException;\n"
+"        public synchronized int unpackInt () throws IOException;\n"
+"        public synchronized long unpackLong () throws IOException;\n"
+"        public synchronized float unpackFloat () throws IOException;\n"
+"        public synchronized double unpackDouble () throws IOException;\n"
+"        public synchronized String unpackString () throws IOException;\n"
+"};"
 
 #. Tag: title
 #: Appendix_B.xml:37
 #, no-c-format
 msgid "<title>Uid</title>"
-msgstr ""
+msgstr "<title>Uid</title>"
 
 #. Tag: screen
 #: Appendix_B.xml:40
@@ -267,12 +413,35 @@
 "        public static synchronized Uid nullUid ();\n"
 "};"
 msgstr ""
+"public class Uid implements Cloneable\n"
+"{\n"
+"        public Uid ();\n"
+"        public Uid (Uid copyFrom);\n"
+"        public Uid (String uidString);\n"
+"        public Uid (String uidString, boolean errorsOk);\n"
+"        public synchronized void pack (OutputBuffer packInto) throws "
+"IOException;\n"
+"        public synchronized void unpack (InputBuffer unpackFrom) throws "
+"IOException;\n"
+"        \n"
+"        public void print (PrintStream strm);\n"
+"        public String toString ();\n"
+"        public Object clone () throws CloneNotSupportedException;\n"
+"        public synchronized void copy (Uid toCopy) throws UidException;\n"
+"        public boolean equals (Uid u);\n"
+"        public boolean notEquals (Uid u);\n"
+"        public boolean lessThan (Uid u);\n"
+"        public boolean greaterThan (Uid u);\n"
+"        \n"
+"        public synchronized final boolean valid ();\n"
+"        public static synchronized Uid nullUid ();\n"
+"};"
 
 #. Tag: title
 #: Appendix_B.xml:42
 #, no-c-format
 msgid "AtomicAction"
-msgstr ""
+msgstr "AtomicAction"
 
 #. Tag: screen
 #: Appendix_B.xml:45
@@ -305,3 +474,30 @@
 "        Inactive;\n"
 "};"
 msgstr ""
+"public class AtomicAction\n"
+"{\n"
+"        public AtomicAction ();\n"
+"        \n"
+"        public void begin () throws SystemException, "
+"SubtransactionsUnavailable,\n"
+"        NoTransaction;\n"
+"        public void commit (boolean report_heuristics) throws "
+"SystemException, \n"
+"        NoTransaction, HeuristicMixed,\n"
+"        HeuristicHazard,TransactionRolledBack;\n"
+"        public void rollback () throws SystemException, NoTransaction;\n"
+"        public Control control () throws SystemException, NoTransaction;\n"
+"        public Status get_status () throws SystemException;\n"
+"        /* Allow action commit to be supressed */    \n"
+"        public void rollbackOnly () throws SystemException, NoTransaction;\n"
+"        \n"
+"        public void registerResource (Resource r) throws SystemException, "
+"Inactive;\n"
+"        public void registerSubtransactionAwareResource "
+"(SubtransactionAwareResource sr)\n"
+"        throws SystemException, NotSubtransaction;\n"
+"        public void registerSynchronization (Synchronization s) throws "
+"SystemException,\n"
+"        Inactive;\n"
+"};"
+

Modified: projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Author_Group.po
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Author_Group.po	2008-07-04 02:17:48 UTC (rev 75364)
+++ projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Author_Group.po	2008-07-04 04:08:42 UTC (rev 75365)
@@ -1,20 +1,24 @@
+# translation of Author_Group.po to French
 # Language fr-FR translations for JBoss_TS_Programmers_Guide package.
+#
 # Automatically generated, 2008.
-#
+# Corina Roe <croe at redhat.com>, 2008.
 msgid ""
 msgstr ""
-"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\n"
+"Project-Id-Version: Author_Group\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2008-06-05 22:51+0000\n"
-"PO-Revision-Date: 2008-06-05 22:51+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2008-06-24 08:39+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: corpauthor
 #: Author_Group.xml:6
 #, no-c-format
 msgid "Red Hat Documentation Group"
-msgstr ""
+msgstr "Groupe de documentation Red Hat"
+

Modified: projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Book_Info.po
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Book_Info.po	2008-07-04 02:17:48 UTC (rev 75364)
+++ projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Book_Info.po	2008-07-04 04:08:42 UTC (rev 75365)
@@ -1,29 +1,32 @@
+# translation of Book_Info.po to French
 # Language fr-FR translations for JBoss_TS_Programmers_Guide package.
+#
 # Automatically generated, 2008.
-#
+# Corina Roe <croe at redhat.com>, 2008.
 msgid ""
 msgstr ""
-"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\n"
+"Project-Id-Version: Book_Info\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2008-06-05 22:51+0000\n"
-"PO-Revision-Date: 2008-06-05 22:51+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2008-06-24 08:41+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 TS Programmers Guide"
-msgstr ""
+msgstr "Guide des programmeurs JBoss TS"
 
 #. Tag: subtitle
 #: Book_Info.xml:7
 #, no-c-format
 msgid "JBoss Enterprise SOA Platform"
-msgstr ""
+msgstr "Plateforme SOA JBoss Enterprise"
 
 #. Tag: para
 #: Book_Info.xml:11
@@ -31,10 +34,11 @@
 msgid ""
 "This book is the Enterprise Application Platform edition of the JBoss TS "
 "Programmers Guide"
-msgstr ""
+msgstr "Cet ouvrage est l'édition Enterprise Application Platform du guide des programmeurs JBoss TS."
 
 #. Tag: holder
 #: Book_Info.xml:22
 #, no-c-format
 msgid "&HOLDER;"
-msgstr ""
+msgstr "&HOLDER;"
+

Modified: projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter.po
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter.po	2008-07-04 02:17:48 UTC (rev 75364)
+++ projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter.po	2008-07-04 04:08:42 UTC (rev 75365)
@@ -1,29 +1,32 @@
+# translation of Chapter.po to French
 # Language fr-FR translations for JBoss_TS_Programmers_Guide package.
+#
 # Automatically generated, 2008.
-#
+# Corina Roe <croe at redhat.com>, 2008.
 msgid ""
 msgstr ""
-"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\n"
+"Project-Id-Version: Chapter\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2008-06-05 22:51+0000\n"
-"PO-Revision-Date: 2008-06-05 22:51+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2008-07-02 14:19+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
 #: Chapter.xml:6
 #, no-c-format
 msgid "Overview"
-msgstr ""
+msgstr "Aperçu"
 
 #. Tag: title
 #: Chapter.xml:9
 #, no-c-format
 msgid "Introduction"
-msgstr ""
+msgstr "Introduction"
 
 #. Tag: para
 #: Chapter.xml:10
@@ -38,12 +41,16 @@
 "chapter can be found in the <classname>com.arjuna.ats.txoj</classname> and "
 "<classname>com.arjuna.ats.arjuna</classname> packages."
 msgstr ""
+"Ce chapitre comprend une description de l'utilisation du moteur de transactions <classname>TxCore</"
+"classname> et des classes et possibilités de <firstterm>Transactional Objects for "
+"Java</firstterm>. Les classes mentionnées dans ce chapitre représentent une clé de voûte pour écrire des applications sans-fautes, utilisant des transactions. Ainsi, après une brève description, nous pourrons les utiliser pour la construction d'une application simple. Les classses que nous allons décrire dans ce chapitre, peuvent être trouvées dans les paquetages <classname>com.arjuna.ats.txoj</classname> et "
+"<classname>com.arjuna.ats.arjuna</classname>."
 
 #. Tag: title
 #: Chapter.xml:14
 #, no-c-format
 msgid "TxCore – the transaction engine"
-msgstr ""
+msgstr "TxCore – le moteur de transactions"
 
 #. Tag: para
 #: Chapter.xml:16
@@ -56,6 +63,8 @@
 "object storage and transactions, are implemented as <classname>TxCore</"
 "classname> objects that are created and manipulated like any other object."
 msgstr ""
+"Dans le souci de conserver un affichage orienté-objet, les mécanismes utiles à la construction d'applications distribuées fiables, sont présentés aux programmeurs sous un angle orientation-objet. Certains mécanismes doivent être hérités, comme par exemple le contrôle de l'accès simultané et la gestion des états; alors que d'autres mécanismes, comme ObjetStorage et transactions, sont implémentés dans les objets <classname>TxCore</"
+"classname> qui sont créés et manipulés comme n'importe quel autre objet."
 
 #. Tag: para
 #: Chapter.xml:20
@@ -66,6 +75,8 @@
 "emphasis> (TXOJ) classes are being used. If this is not the case then the "
 "programmer is responsible for all of these issues."
 msgstr ""
+"Lorsque le manuel parle de l'utilisation des fonctions de contrôle de l'accès simultané et de la persistance, on assume que les classes <emphasis>Transactional Objects for Java</"
+"emphasis> (TXOJ) sont utilisées. Si ce n'est pas le cas, alors, le programmeur est responsable de tous ces problèmes."
 
 #. Tag: para
 #: Chapter.xml:22
@@ -76,13 +87,13 @@
 "can inherit to obtain desired properties, such as persistence and "
 "concurrency control. These classes form a hierarchy, part of which is shown "
 "below and which will be described later in this document."
-msgstr ""
+msgstr "<classname>TxCore</classname> exploite des techniques orientées-objet pour proposer aux programmeurs une boîte à outils des classes Java grâce à lpartir desquelles les classes d'application peuvent hériter pour obtenir les propriétés voulues, comme la persistance et le conrôle à l'accès simultané. Ces classes forment une hiérarchie, montrée en partie ci-dessous et qui sera décrite plus loin dans ce document."
 
 #. Tag: caption
 #: Chapter.xml:28
 #, no-c-format
 msgid "Txcore class hierarchy"
-msgstr ""
+msgstr "Classe de hiérarchie Txcore"
 
 #. Tag: para
 #: Chapter.xml:31
@@ -95,12 +106,14 @@
 "be registered with, and be driven by, the appropriate transactions, and "
 "crash recovery mechanisms are invoked automatically in the event of failures."
 msgstr ""
+"En plus de spécifier l'étendue des transactions,et de définir les verrouillages qui conviennent dans les objets, le programmeur de l'application n'a pas d'autre responsabilité: <classname>TxCore</classname> et <emphasis>Transactional "
+"Objects for Java</emphasis> (TXOJ) garantissent que les objets transactionnels seront enregistrés avec, et seront contrôlés par les transactions qui conviennent. Les mécanismes de recouvrement après crash sont déclenchés automatiquement en cas d'échecs."
 
 #. Tag: title
 #: Chapter.xml:35
 #, no-c-format
 msgid "Saving object states"
-msgstr ""
+msgstr "Sauvegarder les états d'objet"
 
 #. Tag: para
 #: Chapter.xml:37
@@ -122,12 +135,15 @@
 "or ASN.1) could be implemented simply by replacing the operations with ones "
 "appropriate to the encoding required."
 msgstr ""
+"<classname>TxCore</classname> a besoin de mémoriser l'état d'un objet pour différentes raisons, y compris le recouvrement (l'état représente l'état final de l'objet) et la persistance (l'état représente l'état final d'un objet en terminaison d'application). Comme ces prérequis ont une fonctionnalité en commun, ils sont implémentés en utilisant le même mécanisme: les classes <classname>InputObjectState</classname> et "
+"<classname>OutputObjectState</classname>. Les classes maintiennent un array interne dans lequel les instances de type standard peuvent être paquetés (dépaquetés) en contigu, en utilisant les opérations <command>pack</command> (<command>unpack</"
+"command>) appropriées. Le tampon est reconfiguré automatiquemenet suivant les besoins s'il ne possède pas suffisamment d'espace. Les instances sont toutes hébergées dans le tampon sous une forme standard (dans l'ordre d'octet-réseau) pour les rendre dépendants de la machine. Tout autre format indépendant d'architecture (comme VDR ou ASN.1) peut être tout simplement implémenté en remplaçant les opérations avec celles qui correspondent à l'encodage qui convient."
 
 #. Tag: title
 #: Chapter.xml:43
 #, no-c-format
 msgid "The object store"
-msgstr ""
+msgstr "L'ObjetStore"
 
 #. Tag: para
 #: Chapter.xml:45
@@ -140,7 +156,7 @@
 "write object states to the local file system or database, and remote "
 "implementations, where the interface uses a client stub (proxy) to remote "
 "services."
-msgstr ""
+msgstr "Les implémentations de persistance peuvent être affectées par les restrictions imposées par le SecurityManager Java. Ainsi, l'ObjetStore offert dans <classname>TxCore</classname> est implémenté en utilisant les techniques d'interface/implémentation. La distribution actuelle possède des implémentations qui rédigent les états d'objet dans les bases de données ou les systèmes de fichiers locaux. La distribution actuelle possède également des implémentations distantes, pour les quelles l'interface utilise un proxy pour accéder aux services éloignés."
 
 #. Tag: para
 #: Chapter.xml:47
@@ -151,13 +167,13 @@
 "object store. States are read using the <literal>read_committed</literal> "
 "operation and written by the <literal>write_(un)committed</literal> "
 "operations."
-msgstr ""
+msgstr "Des identifiants uniques (instances de la classe de l'Uid) dont assignés aux objets persistants, au moment de leur création, et ils sont utilisés pour les identifier dans l'ObjectStore. Les états sont lus par l'intermédiaire de l'opération <literal>read_committed</literal> et rédigés par les opérations <literal>write_(un)committed</literal>."
 
 #. Tag: title
 #: Chapter.xml:53
 #, no-c-format
 msgid "Recovery and persistence"
-msgstr ""
+msgstr "Recouvrement et persistance"
 
 #. Tag: para
 #: Chapter.xml:54
@@ -167,6 +183,8 @@
 "classname>. This class is responsible for object activation and deactivation "
 "and object recovery. The simplified signature of the class is:"
 msgstr ""
+"La racine de la hiérarchie est la classe <classname>StateManager</"
+"classname>. Cette classe est responsable pour l'activation et la désactivation des objets, ainsi que pour leur recouvrement. La signature simplifiée de la classe est:"
 
 #. Tag: screen
 #: Chapter.xml:56
@@ -188,6 +206,21 @@
 "    protected StateManager (Uid id);\n"
 "};"
 msgstr ""
+"public abstract class StateManager\n"
+"{\n"
+"    public boolean activate ();\n"
+"    public boolean deactivate (boolean commit);\n"
+"\n"
+"    public Uid get_uid (); // object’s identifier.\n"
+"\n"
+"    // methods to be provided by a derived class\n"
+"\n"
+"    public boolean restore_state (InputObjectState os);\n"
+"    public boolean save_state (OutputObjectState os);\n"
+"\n"
+"    protected StateManager ();\n"
+"    protected StateManager (Uid id);\n"
+"};"
 
 #. Tag: para
 #: Chapter.xml:58
@@ -206,7 +239,7 @@
 "objects may possess none of these capabilities, in which case no recovery "
 "information is ever kept nor is object activation/deactivation ever "
 "automatically attempted."
-msgstr ""
+msgstr "Les objets sont supposés être de trois genres possibles. Ils peuvent tout simplement être recouvrables, dans lequel cas <classname>StateManager</classname> tentera de générer et de maintenir des informations de recouvrement appropriées pour l'objet. De tels objets ont une durée de vie qui ne dépasse pas celle du programme d'application qui les a créés. Les objets peuvent être recouvrables et persistants, dans lequel cas, la durée de vie de l'objet est sensée être plus longue que la durée de création ou d'accès à l'application, ainsi en plus de maintenir les informations de recouvrement  <classname>StateManager</classname> tentera de charger(décharger) automatiquement tout état persistant existant d'un objet en appelant l'opération d'activation (de désactivation) aux moments opportuns. Finalement, les objets ne possèdent surement aucune de ces capacités, dans lequel cas, aucune information de recouvrement n'est gardée, et l'activation/désact!
 ivation de l'objet n'est jamais tentée automatiquement."
 
 #. Tag: para
 #: Chapter.xml:61
@@ -229,6 +262,11 @@
 "<classname>Example</classname> that has integer member variables called A, B "
 "and C could simply be:"
 msgstr ""
+"Si un objet est recouvrable ou bien recouvrable et persistant, alors <classname>StateManager</classname> déclenchera les opérations <command>save_state</command> (en exécutant <command>deactivate</"
+"command>), et <command>restore_state</command> (en exécutant activer) à plusieurs points pendant l'exécution de l'application. ces opérations doivent être régies par le programmeur car <classname>StateManager</"
+"classname> ne peut pas détecter les changements d'état au niveau utilisateur. (Nous examinons la génération automatique par défaut des opérations <command>save_state</command> et "
+"<command>restore_state</command>, qui permettent au programmeur de le remplacer quand on peut utiliser des connaissances spécifiques à l'application pour améliorer l'efficacité). Cela donne au programmeur la capacité de décider quelles parties de l'état de l'objet doivent être persistantes. Ainsi, dans le cas d'une feuille de calcul électronique, il n'est peut-être pas nécessaire de sauvegarder toutes les saisies s'il est tout simplement possible de recalculer certaines valeurs. L'implémentation <command>save_state</command> pour une classe "
+"<classname>Example</classname> qui comprend des entiers relatifs variables A, B, et C pourrait simplement être:"
 
 #. Tag: screen
 #: Chapter.xml:63
@@ -253,6 +291,24 @@
 "    return true;\n"
 "}"
 msgstr ""
+"public boolean save_state(OutputObjectState o)\n"
+"{\n"
+"    if (!super.save_state(o))\n"
+"    return false;\n"
+"            \n"
+"    try\n"
+"        {\n"
+"            o.packInt(A);\n"
+"            o.packInt(B);\n"
+"            o.packInt(C));\n"
+"        }\n"
+"    catch (Exception e)\n"
+"        {\n"
+"            return false;\n"
+"        }\n"
+"        \n"
+"    return true;\n"
+"}"
 
 #. Tag: para
 #: Chapter.xml:65
@@ -272,7 +328,7 @@
 "classname>) operation at appropriate times. Finally, objects may possess "
 "none of these capabilities, in which case no recovery information is ever "
 "kept nor is object activation/deactivation ever automatically attempted."
-msgstr ""
+msgstr "Les objets sont supposés être de trois genres possibles. Ils peuvent tout simplement être recouvrables, dans lequel cas <classname>StateManager</classname> tentera de générer et de maintenir des informations de recouvrement appropriées pour l'objet. De tels objets ont une durée de vie qui ne dépasse pas celle du programme d'application qui les a créés. Les objets peuvent être recouvrables et persistants, dans lequel cas, la durée de vie de l'objet est sensée être plus longue que la durée de création ou d'accès à l'application, ainsi en plus de maintenir les informations de recouvrement  <classname>StateManager</classname> tentera de charger(décharger) automatiquement tout état persistant existant d'un objet en appelant l'opération d'activation (de désactivation) aux moments opportuns. Finalement, les objets ne possèdent surement aucune de ces capacités, dans lequel cas, aucune information de recouvrement n'est gardée, et l'activation/désact!
 ivation de l'objet n'est jamais tentée automatiquement."
 
 #. Tag: para
 #: Chapter.xml:67
@@ -296,6 +352,11 @@
 "<classname>Example</classname> that has integer member variables called A, B "
 "and C could simply be:"
 msgstr ""
+"Si un objet est recouvrable ou bien recouvrable et persistant, alors <classname>StateManager</classname> déclenchera les opérations <command>save_state</command> (en exécutant <command>deactivate</"
+"command>), et <command>restore_state</command> (en exécutant activer) à plusieurs points pendant l'exécution de l'application. ces opérations doivent être régies par le programmeur car <classname>StateManager</"
+"classname> ne peut pas détecter les changements d'état au niveau utilisateur. (Nous examinons la génération automatique par défaut des opérations <command>save_state</command> et "
+"<command>restore_state</command>, qui permettent au programmeur de le remplacer quand on peut utiliser des connaissances spécifiques à l'application pour améliorer l'efficacité). Cela donne au programmeur la capacité de décider quelles parties de l'état de l'objet doivent être persistantes. Ainsi, dans le cas d'une feuille de calcul électronique, il n'est peut-être pas nécessaire de sauvegarder toutes les saisies s'il est tout simplement possible de recalculer certaines valeurs. L'implémentation <command>save_state</command> pour une classe "
+"<classname>Example</classname> qui comprend des entiers relatifs variables A, B, et C pourrait simplement être:"
 
 #. Tag: screen
 #: Chapter.xml:69
@@ -320,6 +381,24 @@
 "return true;\n"
 "}"
 msgstr ""
+"public boolean save_state(OutputObjectState o)\n"
+"{\n"
+"    if (!super.save_state(o))\n"
+"    return false;\n"
+"            \n"
+"    try\n"
+"    {\n"
+"        o.packInt(A);\n"
+"        o.packInt(B);\n"
+"        o.packInt(C));\n"
+"    }\n"
+"    catch (Exception e)\n"
+"    {\n"
+"        return false;\n"
+"    }\n"
+"                \n"
+"return true;\n"
+"}"
 
 #. Tag: para
 #: Chapter.xml:70
@@ -330,12 +409,15 @@
 "</classname>and <classname>super.restore_state</classname>. This is to cater "
 "for improvements in the crash recovery mechanisms."
 msgstr ""
+"Il faut que les méthodes <command>save_state</command> et "
+"<command>restore_state</command> appellent <classname>super.save_state "
+"</classname>et <classname>super.restore_state</classname> en vue d'améliorer les mécanismes de recouvrement en cas de crash."
 
 #. Tag: title
 #: Chapter.xml:74
 #, no-c-format
 msgid "The life-cycle of a Transactional Object for Java"
-msgstr ""
+msgstr "Cycle de vie d'un Objet Transactionnel pour Java"
 
 #. Tag: para
 #: Chapter.xml:76
@@ -347,12 +429,15 @@
 "persistent object in <emphasis>TXOJ</emphasis> is shown in <xref linkend="
 "\"figure_2\"/>."
 msgstr ""
+"Un objet persistant qui n'est pas utilisé, est sensé être maintenu dans un état <emphasis>passif</"
+"emphasis> et son état doit résider dans un ObjetStore et doit être <emphasis>activé</emphasis> à la demande. Le cycle de vie fondamental d'un objet persistant dans <emphasis>TXOJ</emphasis> est présenté dans <xref linkend="
+"\"figure_2\"/>."
 
 #. Tag: caption
 #: Chapter.xml:82
 #, no-c-format
 msgid "The lifecycle of a persistent object."
-msgstr ""
+msgstr "Le cycle de vie d'un objet persistant."
 
 #. Tag: para
 #: Chapter.xml:86
@@ -360,7 +445,7 @@
 msgid ""
 "The object is initially passive, and is stored in the object store as an "
 "instance of the class <classname>OutputObjectState</classname>."
-msgstr ""
+msgstr "L'objet est tout d'abord passif, et est hébergé dans l'ObjetStore d'une instance dans la classe <classname>OutputObjectState</classname>."
 
 #. Tag: para
 #: Chapter.xml:87
@@ -372,6 +457,8 @@
 "classname> instance into a fully-fledged object by the "
 "<command>restore_state</command> operation of the object."
 msgstr ""
+"Lorsqu'une application l'exige, l'objet est automatiquement activé par sa lecture dans un store par l'opération <command>read_committed</command> , puis est converti d'une instance <classname>InputObjectState</"
+"classname> en objet recouvré par l'opération <command>restore_state</command> de l'objet."
 
 #. Tag: para
 #: Chapter.xml:88
@@ -386,7 +473,7 @@
 "normally hidden from the programmer by the transaction system. Object de-"
 "activation normally only occurs when the top-level transaction within which "
 "the object was activated commits."
-msgstr ""
+msgstr "Quand l'application est terminée pour l'objet, il est désactivé en le reconvertissant en une instance <classname>OutputObjectState</classname> par l'opération <command>save_state</command>, et est alors hébergé en tant que copie double par l'intermédiaire de write_uncommitted. Cette copie double peut être soumise, en remplacement de la version précédente, par l'opération <command>commit_state</command>. La présence de copies doubles est normalement cachée par le système de transactions à la vue du programmeur. La désactivation d'objets a normalement lieu quand la transaction au plus haut niveau par laquelle l'objet a été activé, est validée."
 
 #. Tag: para
 #: Chapter.xml:91
@@ -394,13 +481,13 @@
 msgid ""
 "During its life time, a persistent object may be made active then passive "
 "many times."
-msgstr ""
+msgstr "Au cours de sa vie, un objet persistant peut être rendu à la fois actif ou passif et ce, à plusieurs reprises."
 
 #. Tag: title
 #: Chapter.xml:96
 #, no-c-format
 msgid "The concurrency controller"
-msgstr ""
+msgstr "Le contrôleur d'accès simultané"
 
 #. Tag: para
 #: Chapter.xml:98
@@ -414,7 +501,7 @@
 "implementations are accessed through interfaces. As well as providing access "
 "to remote services, the current implementations of concurrency control "
 "available to interfaces include:"
-msgstr ""
+msgstr "Le contrôleur d'accès simultané est implémenté par la classe <classname>LockManager</classname> qui propose un comportement raisonnable par défaut, tout en permettant au programmeur de le remplacer s'il le juge nécessaire par les sémantiques particulières de la classe programmée. Tout comme pour <classname>StateManager</classname> et persistance, les implémentations de contrôle d'accès simultané sont accessibles à travers les interfaces. En plus de procurer un accès aux services éloignés, les implémentations actuelles du contrôle d'accès simultané disponible aux interfaces comprennent:"
 
 #. Tag: para
 #: Chapter.xml:101
@@ -422,7 +509,7 @@
 msgid ""
 "local disk/database implementation, where locks are made persistent by being "
 "written to the local file system or database."
-msgstr ""
+msgstr "l'implémentation de la base de donnée/disque local, où les verrouillages sont rendus persistants en étant inscrits sur le système de fichiers local ou sur la base de données."
 
 #. Tag: para
 #: Chapter.xml:102
@@ -433,7 +520,7 @@
 "performance than when writing locks to the local disk, but objects cannot be "
 "shared between virtual machines. Importantly, it is a basic Java object with "
 "no requirements which can be affected by the SecurityManager"
-msgstr ""
+msgstr "une implémentation purement locale, pour laquelle les verrouillages sont conservés dans la mémoire de la machine virtuelle qui les a créés. Cette implémentation possède une meilleure performance que lorsqu'on écrit des verrouillages sur le disque local, mais les objets ne peuvent pas être partagés entre les machines virtuelles. Il est important de savoir qu'il s'agit d'un objet de base Java sans aucune exigence, qui peut être affecté par le SecurityManager"
 
 #. Tag: para
 #: Chapter.xml:105
@@ -446,7 +533,7 @@
 "the <classname>Lock</classname> class it is possible for programmers to "
 "provide their own lock implementations with different lock conflict rules to "
 "enable <firstterm>type specific concurrency control</firstterm>."
-msgstr ""
+msgstr "L'interface primaire du programmeur avec le contrôleur de l'accès simultané est par l'opération setlock. Par défaut, le système d'exécution active un verrouillage stricte en deux-phases, suite à une politique à écriture simple et à lectures multiples, sur la base d'un objet à la fois. Cependant, comme le montre <xref linkend=\"figure_1\"/>, en héritant de la classe <classname>Lock</classname>, il est possible pour les programmeurs de procurer leurs propres implémentations de verrouillage, associés à des règles de conflits de verrouillage différentes pour activer  <firstterm>type specific concurrency control</firstterm>."
 
 #. Tag: para
 #: Chapter.xml:107
@@ -459,7 +546,7 @@
 "control of the system and requires no further intervention by the "
 "programmer. This ensures that the two-phase property can be correctly "
 "maintained."
-msgstr ""
+msgstr "L'acquisition du verrouillage est (par nécessité) sous le contrôle du programmeur, car, tout comme <classname>StateManager</classname> ne peut pas déterminer si une opération peut modifier un objet, <classname>LockManager</classname> ne peut pas déterminer si une opération requiert un verrouillage lecture ou écriture. La mainlevée sur le verrouillage, est cependant sous le contrôle du système et ne requiert pas davantage d'intervention de la part du programmeur. Cela garantit que la propriété deux-phases peut être correctement maintenue."
 
 #. Tag: screen
 #: Chapter.xml:109
@@ -470,6 +557,10 @@
 "    public LockResult setlock (Lock toSet, int retry, int timeout);\n"
 "};"
 msgstr ""
+"public abstract class LockManager extends StateManager\n"
+"{\n"
+"    public LockResult setlock (Lock toSet, int retry, int timeout);\n"
+"};"
 
 #. Tag: para
 #: Chapter.xml:111
@@ -485,13 +576,14 @@
 "if the object is recoverable. In a similar fashion, successful lock "
 "acquisition causes activate to be invoked."
 msgstr ""
+"La classe <classname>LockManager</classname> est principalement responsable de gérer les demandes d'installation de verrous sur un objet ou pour opérer une mainlevée sur un verrou si besoin est. Cependant, comme elle est dérivée de <classname>StateManager</"
+"classname>, elle peut également exercer son contrôle lorsque certaines des fonctions héritées sont invoquées. Pat exemple. <classname>LockManager</classname> assume que la configuration d'un verrou écriture implique que l'opération invoquer s'apprête à modifier l'objet. Ceci peut entraîner la sauvegarde des informations de recouvrement si l'objet est recouvrable. De la même façon, l'acquisition d'un verrou entraîne l'invocation d' \"activer\"."
 
 #. Tag: para
 #: Chapter.xml:113
 #, no-c-format
-msgid ""
-"The code below shows how we may try to obtain a write lock on an object:"
-msgstr ""
+msgid "The code below shows how we may try to obtain a write lock on an object:"
+msgstr "Le code ci-dessous montre comment on peut obtenir le verrou écriture d'un objet:"
 
 #. Tag: screen
 #: Chapter.xml:115
@@ -527,12 +619,41 @@
 "}\n"
 "}"
 msgstr ""
+"public class Example extends LockManager\n"
+"{\n"
+"public boolean foobar ()\n"
+"{\n"
+"    AtomicAction A = new AtomicAction;\n"
+"    boolean result = false;\n"
+"        \n"
+"    A.begin();\n"
+"        \n"
+"    if (setlock(new Lock(LockMode.WRITE), 0) == Lock.GRANTED)\n"
+"    {\n"
+"        /*\n"
+"        * Do some work, and TXOJ will\n"
+"        * guarantee ACID properties.\n"
+"        */\n"
+"        \n"
+"        // automatically aborts if fails\n"
+"        \n"
+"        if (A.commit() == AtomicAction.COMMITTED)\n"
+"        {\n"
+"            result = true;\n"
+"        }\n"
+"    }\n"
+"    else\n"
+"        A.rollback();\n"
+"            \n"
+"    return result;\n"
+"}\n"
+"}"
 
 #. Tag: title
 #: Chapter.xml:120
 #, no-c-format
 msgid "The transaction protocol engine"
-msgstr ""
+msgstr "Le moteur du protocole de transaction"
 
 #. Tag: para
 #: Chapter.xml:122
@@ -548,7 +669,7 @@
 "transaction. Because <emphasis>TxCore</emphasis> supports subtransactions, "
 "if a transaction is begun within the scope of an already executing "
 "transaction it will automatically be nested."
-msgstr ""
+msgstr "Le moteur du protocole de transaction est représenté par la classe <classname>AtomicAction</classname>, qui utilise <classname>AtomicAction</classname> pour enregistrer suffisamment d'informations pour que les mécanismes de recouvrement en cas de crash puissent terminer la transaction en cas d'échecs. Il a des méthodes pour commencer ou terminer la transaction, et, dans les situations pour lesquelles les programmeurs ont besoin d'implémenter leurs propres ressources, des méthodes pour les enregistrer dans la transaction en cours. Comme <emphasis>TxCore</emphasis> supporte des sous-transactions, si une transaction a commencé dans la limite d'une transaction en cours, elle sera automatiquement imbriquée."
 
 #. Tag: para
 #: Chapter.xml:124
@@ -558,13 +679,13 @@
 "within an application to share a transaction or execute within its own "
 "transaction. Therefore, all <emphasis>TxCore</emphasis> classes are also "
 "thread safe."
-msgstr ""
+msgstr "<emphasis>TxCore</emphasis> est multifilière, ce qui permet à chaque fil de partager une transaction dans une application ou bien d'exécuter au sein de cette même transaction.  Ainsi, les classes <emphasis>TxCore</emphasis> sont également thread safe."
 
 #. Tag: title
 #: Chapter.xml:128
 #, no-c-format
 msgid "Example"
-msgstr ""
+msgstr "Exemple"
 
 #. Tag: para
 #: Chapter.xml:130
@@ -572,7 +693,7 @@
 msgid ""
 "The simple example below illustrates the relationships between activation, "
 "termination and commitment:"
-msgstr ""
+msgstr "Le simple exemple ci-dessous illustre les relations qui existent entre activation, terminaison et validation:"
 
 #. Tag: screen
 #: Chapter.xml:132
@@ -595,6 +716,22 @@
 "deactivated */\n"
 "    }                                         /* (v) */"
 msgstr ""
+"{\n"
+"    . . .\n"
+"    O1 objct1 = new objct1(Name-A);/* (i) bind to \"old\" persistent object "
+"A */\n"
+"    O2 objct2 = new objct2();         /* create a \"new\" persistent object "
+"*/\n"
+"    OTS.current().begin();                 /* (ii) start of atomic action "
+"*/\n"
+"    \n"
+"    objct1.op(...);                      /* (iii) object activation and "
+"invocations */\n"
+"    objct2.op(...);\n"
+"    . . .\n"
+"    OTS.current().commit(true);         /* (iv) tx commits &amp; objects "
+"deactivated */\n"
+"    }                                         /* (v) */"
 
 #. Tag: para
 #: Chapter.xml:134
@@ -602,7 +739,7 @@
 msgid ""
 "The execution of the above code involves the following sequence of "
 "activities:"
-msgstr ""
+msgstr "L'exécution des codes ci-dessus implique la séquence suivante:"
 
 #. Tag: para
 #: Chapter.xml:137
@@ -615,12 +752,14 @@
 "maintains the mapping between object names and locations and is described in "
 "a later chapter."
 msgstr ""
+"La création de liaisons aux objets persistants peut entraîner la création d'objets stub et d'un appel aux objets distants. Dans l'exemple ci-dessus, nous se relie à un objet persistant existant identifié par <literal>Name-A</"
+"literal>,et à un nouvel objet persistant. Un système de nommage des objets distants entretient le mapping entre les noms d'objets et les emplacements. Ce système est décrit dans le chapitre suivant."
 
 #. Tag: para
 #: Chapter.xml:138
 #, no-c-format
 msgid "Start of the atomic transaction."
-msgstr ""
+msgstr "Début d'une transaction atomique."
 
 #. Tag: para
 #: Chapter.xml:139
@@ -632,7 +771,7 @@
 "latest committed state from the object store. The first time a lock is "
 "acquired on an object within a transaction the object’s state is acquired, "
 "if possible, from the object store."
-msgstr ""
+msgstr "Invocations d'opérations: en tant qu'invocation donnée, l'implémentation de l'objet est responsable pour s'assurer qu'elle est verrouillée en mode lecture ou écriture (en assumant qu'il n'y ait aucun conflit de verrouillage), et initialisée, si nécessaire, par le dernier état validé de l'ObjetStore. La première fois qu'un verrou est acquis sur un objet au sein d'une transaction, l'état de l'objet est acquis, si possible, à partir de l'ObjetStore."
 
 #. Tag: para
 #: Chapter.xml:140
@@ -640,19 +779,19 @@
 msgid ""
 "Commit of the top-level action. This includes updating of the state of any "
 "modified objects in the object store."
-msgstr ""
+msgstr "Valide au niveau d'action le plus élevé. Ceci comprend la mise à jour de l'état de n'importe quels objets modifiés dans l'ObjetStore."
 
 #. Tag: para
 #: Chapter.xml:141
 #, no-c-format
 msgid "Breaking of the previously created bindings."
-msgstr ""
+msgstr "Rupture des liaisons créées précédemment."
 
 #. Tag: title
 #: Chapter.xml:147
 #, no-c-format
 msgid "The class hierarchy"
-msgstr ""
+msgstr "La hiérarchie des classes"
 
 #. Tag: para
 #: Chapter.xml:149
@@ -661,6 +800,8 @@
 "The principal classes which make up the class hierarchy of <emphasis>TxCore</"
 "emphasis> are depicted below."
 msgstr ""
+"Les classes principales qui constituent la hiérarchie de <emphasis>TxCore</"
+"emphasis> sont décrites ci-dessous."
 
 #. Tag: screen
 #: Chapter.xml:151
@@ -691,6 +832,30 @@
 "                ObjectStore                        // Interface to the "
 "object storage services"
 msgstr ""
+"StateManager                // Basic naming, persistence and recovery "
+"control\n"
+"                LockManager                // Basic two-phase locking "
+"concurrency control service\n"
+"                User-Defined Classes\n"
+"                Lock                        // Standard lock type for "
+"multiple readers/single writer\n"
+"                User-Defined Lock Classes\n"
+"                AbstractRecord                // Important utility class, "
+"similar to Resource\n"
+"                    RecoveryRecord                    // handles object "
+"recovery\n"
+"                    LockRecord                // handles object locking\n"
+"                    RecordList                // Intentions list\n"
+"                    other management record types\n"
+"                AtomicAction                // Implements transaction "
+"control abstraction\n"
+"                    TopLevelTransaction\n"
+"                Input/OutputBuffer // Architecture neutral representation of "
+"an objects’ state\n"
+"                    Input/OutputObjectState        // Convenient interface "
+"to Buffer\n"
+"                ObjectStore                        // Interface to the "
+"object storage services"
 
 #. Tag: para
 #: Chapter.xml:153
@@ -712,6 +877,12 @@
 "action facilities is supported by <classname>AtomicAction</classname> and "
 "<classname>TopLevelTransaction</classname>."
 msgstr ""
+"Les programmeurs d'applications tolérantes de fautes seront principalement concernés par les classes <classname>LockManager</classname>, <classname>Lock</classname> "
+"et <classname>AtomicAction</classname>. Les autres classes qui importent les programmeurs sont <classname>Uid</classname>, et <classname>ObjectState</"
+"classname>. La plupart des classes <emphasis>TxCore</emphasis> sont dérivées de la classe de base <classname>StateManager</classname>, qui procure des fonctions primitives utiles pour gérer des objets recouvrables et persistants. Ces facilities incluent le support pour l'activation et la désactivation des objets, and le recouvrement d'objet basé-état. La classe <classname>LockManager</"
+"classname> utilise <classname>StateManager</classname> et "
+"<classname>Lock</classname> pour procurer le contrôle d'accès simultané (verrouillage en deux phases dans l'implémentation actuelle) requis pour implémenter la propriété dee sérialisation des actions atomiques. L'implémentation des facilités d'action atomique est supporté par <classname>AtomicAction</classname> et "
+"<classname>TopLevelTransaction</classname>."
 
 #. Tag: para
 #: Chapter.xml:155
@@ -726,6 +897,8 @@
 "provides the concurrency control required for implementing the "
 "serialisability property of atomic actions."
 msgstr ""
+"La plupart des classes de système <emphasis>TxCore</emphasis> sont dérivées de la classe de base <classname>StateManager</classname>, qui procure les facilités nécessaires pour gérer les objets recouvrables et persistants. Ces facilités incluent le support pour l'activation et la désactivation d'objets, et le recouvrement d'objets basés-état. La classe <classname>LockManager</"
+"classname>utilise les facilités de <classname>StateManager</classname> et procurent le contrôle d'accès simultané requis pour l'implémentation de la propriété de sérialisation des actions atomiques."
 
 #. Tag: para
 #: Chapter.xml:157
@@ -740,6 +913,8 @@
 "O before it is modified; thus the body of op1 should contain a call to the "
 "<literal>setlock</literal> operation of the concurrency controller:"
 msgstr ""
+"Considérez un exemple simple. Assumez que <classname>Example</classname> est une classe persistante définie par l'utilisateur, convenablement dérivée du <classname>LockManager</classname>. Une application contenant une transaction atomique Trans accède à un objet (nommé 0) de type <classname>Example</"
+"classname> en invoquant l'opération op1 qui implique les changements d'état à 0. La propriété de sérialisation exige qu'un verrou écriture soit apposé sur 0 avant de le modifier, ainsi le corpus de op1 devrait contenir un appel vers l'opération <literal>setlock</literal> du contrôleur d'accès simultané."
 
 #. Tag: screen
 #: Chapter.xml:159
@@ -754,6 +929,14 @@
 "    }\n"
 "}"
 msgstr ""
+"public boolean op1 (...)\n"
+"{        \n"
+"    if (setlock (new Lock(LockMode.WRITE) == LockResult.GRANTED)\n"
+"    {\n"
+"        // actual state change operations follow \n"
+"        ...\n"
+"    }\n"
+"}"
 
 #. Tag: para
 #: Chapter.xml:161
@@ -763,13 +946,14 @@
 "<classname>LockManager</classname> class, performs the following functions "
 "in this case:"
 msgstr ""
+"L'opération <literal>setlock</literal>, fournie par la classe "
+"<classname>LockManager</classname> opère les fonctions suivantes dans ce cas:"
 
 #. Tag: para
 #: Chapter.xml:164
 #, no-c-format
-msgid ""
-"Check write lock compatibility with the currently held locks, and if allowed:"
-msgstr ""
+msgid "Check write lock compatibility with the currently held locks, and if allowed:"
+msgstr "Vérifier la compatibilité verrou-écriture avec les verrous présents, et si permis:"
 
 #. Tag: para
 #: Chapter.xml:165
@@ -785,12 +969,14 @@
 "retained prior to modification) and inserting it into the "
 "<classname>RecordList</classname> of <classname>Trans</classname>."
 msgstr ""
+"Appeler l'opération <classname>StateManager</classname> active ce qui va charger, si ce n'est pas encore fait, le dernier état persistant de O à partir d'ObjectStore. Puis, appeler l'opération modifiée <classname>StateManager</classname> qui aura pour effet de créer une instance soit de <classname>RecoveryRecord</classname> ou de <classname>PersistenceRecord</"
+"classname> pour O suivant que O ait été persistant ou non (le verrou est un verrou <literal>WRITE</literal> (écriture) donc l'ancien état de l'objet doit être retenu avant la modification) et l'insérer dans le <classname>RecordList</classname> de <classname>Trans</classname>."
 
 #. Tag: para
 #: Chapter.xml:166
 #, no-c-format
 msgid "Create and insert a LockRecord instance in the RecordList of Trans."
-msgstr ""
+msgstr "Créer et insérer une instance de LockRecord dans la RecordList de Trans."
 
 #. Tag: para
 #: Chapter.xml:169
@@ -806,6 +992,10 @@
 "<classname>RecoveryRecord</classname>/<classname>PersistenceRecord</"
 "classname> will restore the prior state of O."
 msgstr ""
+"Maintenant, supposez que l'action <literal>Trans</literal> échoue un peu après que le verrou ait été acquis. Alors, l'opération de retour en arrière (rollback) de <classname>AtomicAction</classname> va traiter l'instance de <classname>RecordList</"
+"classname>associée avec <literal>Trans</literal> en invoquant une opération qui convient  <literal>Abort</literal>sur les enregistrements divers. L'implémentation de cette opération par la classe <classname>LockRecord</classname> va libérer le verrou de <literal>WRITE</literal> (écriture) tandis que celui de "
+"<classname>RecoveryRecord</classname>/<classname>PersistenceRecord</"
+"classname> va restaurer l'ancien état de O."
 
 #. Tag: para
 #: Chapter.xml:171
@@ -817,4 +1007,5 @@
 "appropriate lock; <emphasis>TxCore</emphasis> and <emphasis>Transactional "
 "Objects for Java</emphasis> take care of participant registration, "
 "persistence, concurrency control and recovery."
-msgstr ""
+msgstr "Il est important de réaliser que tout le travail ci-dessus est automatiquement exécuté par <emphasis>TxCore</emphasis> pour le compte du programmeur d'application. Le programmeur a juste besoin de démarre la transaction et de déterminer un verrou qui convient.  <emphasis>TxCore</emphasis> et <emphasis>Objets Transactionnels pour Java <emphasis> s'occupent de l'enregistrement du participant, de la persistance, du contrôle d'accès simultané et le recouvrement."
+

Modified: projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_02.po
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_02.po	2008-07-04 02:17:48 UTC (rev 75364)
+++ projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_02.po	2008-07-04 04:08:42 UTC (rev 75365)
@@ -1,29 +1,32 @@
+# translation of Chapter_02.po to French
 # Language fr-FR translations for JBoss_TS_Programmers_Guide package.
+#
 # Automatically generated, 2008.
-#
+# Corina Roe <croe at redhat.com>, 2008.
 msgid ""
 msgstr ""
-"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\n"
+"Project-Id-Version: Chapter_02\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2008-06-05 22:51+0000\n"
-"PO-Revision-Date: 2008-06-05 22:51+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2008-07-02 14:47+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
 #: Chapter_02.xml:6
 #, no-c-format
 msgid "Using TxCore"
-msgstr ""
+msgstr "Utiliser TxCore"
 
 #. Tag: title
 #: Chapter_02.xml:9
 #, no-c-format
 msgid "Introduction"
-msgstr ""
+msgstr "Introduction"
 
 #. Tag: para
 #: Chapter_02.xml:11
@@ -33,18 +36,20 @@
 "<emphasis>Transactional Objects for Java</emphasis> in more detail, and show "
 "how it can be used to construct transactional applications."
 msgstr ""
+"Dans cette section, nous allons décrire <emphasis>TxCore</emphasis> et "
+"<emphasis>Objets Transactionnels pour Java</emphasis> dans les détails, et nous allons montrer comment il peut être utilisé pour construire des applications transactionelles."
 
 #. Tag: title
 #: Chapter_02.xml:15
 #, no-c-format
 msgid "State management"
-msgstr ""
+msgstr "Gestion des états"
 
 #. Tag: title
 #: Chapter_02.xml:18
 #, no-c-format
 msgid "Object States"
-msgstr ""
+msgstr "États des objets"
 
 #. Tag: para
 #: Chapter_02.xml:20
@@ -58,12 +63,14 @@
 "same mechanism - the classes <classname>Input/OutputObjectState</classname> "
 "and <classname>Input/OutputBuffer</classname>."
 msgstr ""
+"<emphasis>TxCore</emphasis> a besoin de pouvoir se rappeler de l'état d'un objet pour plusieurs buts, y compris le recouvrement (l'état représente quelque état passé de l'objet), et la persistance (l'état représente l'état final d'un objet en terminaison d'application). Comme tous ces critères requièrent une fonctionnalité commune, ils sont tous implémentés par le même mécanisme - les classes <classname>Input/OutputObjectState</classname> "
+"et <classname>Input/OutputBuffer</classname>."
 
 #. Tag: title
 #: Chapter_02.xml:22
 #, no-c-format
 msgid "OutputBuffer"
-msgstr ""
+msgstr "OutputBuffer"
 
 #. Tag: programlisting
 #: Chapter_02.xml:24
@@ -91,12 +98,33 @@
 "public synchronized void packString (String s) throws IOException;\n"
 "};"
 msgstr ""
+"public class OutputBuffer\n"
+"{\n"
+"public OutputBuffer ();\n"
+"\n"
+"public final synchronized boolean valid ();\n"
+"public synchronized byte[] buffer();\n"
+"public synchronized int length ();\n"
+"\n"
+"    /* pack operations for standard Java types */\n"
+"\n"
+"public synchronized void packByte (byte b) throws IOException;\n"
+"public synchronized void packBytes (byte[] b) throws IOException;\n"
+"public synchronized void packBoolean (boolean b) throws IOException;\n"
+"public synchronized void packChar (char c) throws IOException;\n"
+"public synchronized void packShort (short s) throws IOException;\n"
+"public synchronized void packInt (int i) throws IOException;\n"
+"public synchronized void packLong (long l) throws IOException;\n"
+"public synchronized void packFloat (float f) throws IOException;\n"
+"public synchronized void packDouble (double d) throws IOException;\n"
+"public synchronized void packString (String s) throws IOException;\n"
+"};"
 
 #. Tag: title
 #: Chapter_02.xml:26
 #, no-c-format
 msgid "InputBuffer"
-msgstr ""
+msgstr "InputBuffer"
 
 #. Tag: programlisting
 #: Chapter_02.xml:26
@@ -124,6 +152,27 @@
 "public synchronized String unpackString () throws IOException;\n"
 "};"
 msgstr ""
+"public class InputBuffer\n"
+"{\n"
+"public InputBuffer ();\n"
+"\n"
+"public final synchronized boolean valid ();\n"
+"public synchronized byte[] buffer();\n"
+"public synchronized int length ();\n"
+"\n"
+"/* unpack operations for standard Java types */\n"
+"\n"
+"public synchronized byte unpackByte () throws IOException;\n"
+"public synchronized byte[] unpackBytes () throws IOException;\n"
+"public synchronized boolean unpackBoolean () throws IOException;\n"
+"public synchronized char unpackChar () throws IOException;\n"
+"public synchronized short unpackShort () throws IOException;\n"
+"public synchronized int unpackInt () throws IOException;\n"
+"public synchronized long unpackLong () throws IOException;\n"
+"public synchronized float unpackFloat () throws IOException;\n"
+"public synchronized double unpackDouble () throws IOException;\n"
+"public synchronized String unpackString () throws IOException;\n"
+"};"
 
 #. Tag: para
 #: Chapter_02.xml:28 Chapter_02.xml:34
@@ -135,13 +184,13 @@
 "automatically resized as required should it have insufficient space. The "
 "instances are all stored in the buffer in a standard form (so-called network "
 "byte order) to make them machine independent."
-msgstr ""
+msgstr "La classe <classname>Input/OutputBuffer</classname> maintient un tableau interne dans lequel des instances de types Java standard peuvent être paquetées (dépaquetées) en contigu. La taille du tampon est automatiquement modifiée suivant qu'il y a suffisamment d'espace, en fonction des besoins. Les instances sont toutes hébergées dans le tampon sous une forme standard (ordre octets réseau) pour ......"
 
 #. Tag: title
 #: Chapter_02.xml:30 Chapter_02.xml:37
 #, no-c-format
 msgid "OutputObjectState"
-msgstr ""
+msgstr "OutputObjectState"
 
 #. Tag: programlisting
 #: Chapter_02.xml:32
@@ -175,6 +224,33 @@
 "public synchronized String unpackString () throws IOException;\n"
 "};"
 msgstr ""
+"class OutputObjectState extends OutputBuffer\n"
+"{\n"
+"public OutputObjectState (Uid newUid, String typeName);\n"
+"\n"
+"public boolean notempty ();\n"
+"public int size ();\n"
+"public Uidpublic class InputBuffer\n"
+"{\n"
+"public InputBuffer ();\n"
+"\n"
+"public final synchronized boolean valid ();\n"
+"public synchronized byte[] buffer();\n"
+"public synchronized int length ();\n"
+"\n"
+"/* unpack operations for standard Java types */\n"
+"\n"
+"public synchronized byte unpackByte () throws IOException;\n"
+"public synchronized byte[] unpackBytes () throws IOException;\n"
+"public synchronized boolean unpackBoolean () throws IOException;\n"
+"public synchronized char unpackChar () throws IOException;\n"
+"public synchronized short unpackShort () throws IOException;\n"
+"public synchronized int unpackInt () throws IOException;\n"
+"public synchronized long unpackLong () throws IOException;\n"
+"public synchronized float unpackFloat () throws IOException;\n"
+"public synchronized double unpackDouble () throws IOException;\n"
+"public synchronized String unpackString () throws IOException;\n"
+"};"
 
 #. Tag: programlisting
 #: Chapter_02.xml:42
@@ -190,12 +266,21 @@
 "    public String type ();\n"
 "};"
 msgstr ""
+"class OutputObjectState extends OutputBuffer\n"
+"{\n"
+"    public OutputObjectState (Uid newUid, String typeName);\n"
+"    \n"
+"    public boolean notempty ();\n"
+"    public int size ();\n"
+"    public Uid stateUid ();\n"
+"    public String type ();\n"
+"};"
 
 #. Tag: title
 #: Chapter_02.xml:49
 #, no-c-format
 msgid "InputObjectState"
-msgstr ""
+msgstr "InputObjectState"
 
 #. Tag: programlisting
 #: Chapter_02.xml:51
@@ -211,6 +296,15 @@
 "    public String type ();\n"
 "};"
 msgstr ""
+"class InputObjectState extends InputBuffer\n"
+"{\n"
+"    public OutputObjectState (Uid newUid, String typeName, byte[] b);\n"
+"    \n"
+"    public boolean notempty ();\n"
+"    public int size ();\n"
+"    public Uid stateUid ();\n"
+"    public String type ();\n"
+"};"
 
 #. Tag: para
 #: Chapter_02.xml:56
@@ -223,12 +317,14 @@
 "classname> instance is a compressed image. These are used when accessing the "
 "object store during storage and retrieval of the object state."
 msgstr ""
+"La classe <classname>Input/OutputObjectState</classname> procure toute la fonctionnalité de <classname>Input/OutputBuffer</classname> (à travers l'héritage) mais ajoute deux variables d'instances supplémentaires qui signifient que l'Uid et le type de l'objet pour lequel l'instance <classname>Input/OutputObjectState</"
+"classname> est une image compressée. Elles sont utilisées au moment de l'accès à l'ObjetStore pendant le stockage et le retrait de l'état d'objet."
 
 #. Tag: title
 #: Chapter_02.xml:60
 #, no-c-format
 msgid "The object store"
-msgstr ""
+msgstr "La mémoire objet"
 
 #. Tag: para
 #: Chapter_02.xml:62
@@ -240,7 +336,7 @@
 "Unix file system (in several different forms); and as a remotely accessible "
 "store. More complete information about the object stores available in "
 "<emphasis>TxCore</emphasis> can be found in the Appendix."
-msgstr ""
+msgstr "La mémoire objet offerte avec <emphasis>TxCore</emphasis> possède une interface assez restreinte, et ce, délibérément, de façon à ce qu'elle puisse être implémentée de manières différentes. Par exemple, les mémoires objet sont implémentées dans une mémoire partagée, sur le système de fichiers Unix (sous plusieurs formes), et en tant que store accessible à distance. Il existe des informations plus complètes sur les objet stores qui sont disponibles dans <emphasis>TxCore</emphasis> qui peuvent être trouvés en annexe."
 
 #. Tag: para
 #: Chapter_02.xml:64
@@ -249,7 +345,7 @@
 "As with all <emphasis>TxCore</emphasis> classes the default object stores "
 "are pure Java implementations; to access the shared memory and other more "
 "complex object store implementations it is necessary to use native methods."
-msgstr ""
+msgstr "Comme pour toutes les classes <emphasis>TxCore</emphasis>, les mémoires objet par défaut sont de pures implémentations Java. Pour accéder à la mémoire partagée et aux autres implémentations de mémoire objet plus complexes, il est important d'utiliser les méthodes natives."
 
 #. Tag: para
 #: Chapter_02.xml:66
@@ -267,6 +363,9 @@
 "emphasis> system components as appropriate thus the existence of any shadow "
 "versions of objects in the store are hidden from the programmer."
 msgstr ""
+"Toutes les instances de hold ou de retrait d'object store de la classe <classname>Input/OutputObjectState</classname>. Ces instances sont nommées par l'Uid et par le Type d'objet qu'elles représentent. Les états sont lus en utilisant l'opération <command>read_committed</command> et inscrites dans le système en utilisant l'opération "
+"<command>write_uncommitted</command>. Dans le cadre d'opérations normales, les états de nouveaux objets ne remplacent pas les états d'anciens objets mais sont écrits dans le store sous forme de copies doubles. Ces doubles remplacent les originaux quand l'opération <command>commit_state</command> est appelée. Normalement, toutes les interactions dans l'ObjetStore sont exécutées par les composants du système <emphasis>TxCore</"
+"emphasis> selon les besoins, donc toute présence de versions double d'objets dans le store sont cachées de la vue du programmeur."
 
 #. Tag: screen
 #: Chapter_02.xml:68
@@ -290,6 +389,23 @@
 ". . .\n"
 "};"
 msgstr ""
+"public class ObjectStore\n"
+"{\n"
+"public static final int OS_COMMITTED;\n"
+"public static final int OS_UNCOMMITTED;\n"
+"public static final int OS_COMMITTED_HIDDEN;\n"
+"public static final int OS_UNCOMMITTED_HIDDEN;\n"
+"public static final int OS_UNKNOWN;\n"
+"\n"
+"/* The abstract interface */\n"
+"public abstract boolean commit_state (Uid u, String name)\n"
+"throws ObjectStoreException;\n"
+"public abstract InputObjectState read_committed (Uid u, String name)\n"
+"throws ObjectStoreException;\n"
+"public abstract boolean write_uncommitted (Uid u, String name,\n"
+"OutputObjectState os) throws ObjectStoreException;\n"
+". . .\n"
+"};"
 
 #. Tag: para
 #: Chapter_02.xml:70
@@ -311,12 +427,14 @@
 "<literal>com.arjuna.ats.arjuna.objectstore.objectStoreSync</literal> "
 "variable to OFF."
 msgstr ""
+"Quand un objet transactionnel est sauvegardé, il est utile d'effectuer certains changements d'états persistants de façon à ce qu'il puisse est recouvert en cas d'échec et soit continue d'être sauvegardé, soit annulé. Lorsque vous utilisez <emphasis>Objets Transactionnels pour Java</emphasis>, <emphasis>TxCore</"
+"emphasis> s'en occupera automatiquement. Pour garantir les propriétés ACID, ces changements d'état doivent être vidés de l'implémentation du store de persistance avant que la transaction puisse être sauvegardée. S'ils ne sont pas vidés, l'application peut assumer que la transaction n'a pas été sauvegardée alors qu'en fait, les changements d'état peuvent toujours résider dans le cache du système d'exploitation, et peuvent être perdus suite à l'échec d'une machine subséquente. Par défaut, <emphasis>TxCore</emphasis> veille à ce que chaque changement d'état soit vidé. Cependant, cette action entraîne une sérieuse diminution de performance de l'application. Pour éviter les vidages d'états d'objets, configurer la variable <literal>com.arjuna.ats.arjuna.objectstore.objectStoreSync</literal> à OFF."
 
 #. Tag: title
 #: Chapter_02.xml:74
 #, no-c-format
 msgid "Selecting an object store implementation"
-msgstr ""
+msgstr "Sélectionner une implémentation d'ObjectStore"
 
 #. Tag: para
 #: Chapter_02.xml:76
@@ -328,12 +446,14 @@
 "ats.arjuna.objectstore.objectStoreType</literal> property variable) on a per "
 "object basis, and indicates how additional implementations can be provided."
 msgstr ""
+"<emphasis>TxCore</emphasis> est présenté avec le support de plusieurs implémentations d'objectStore différents. L'annexe décrit ces implémentations, comment les sélectionner et comment les configurer (en utilisant la variable de propriété <literal>com.arjuna."
+"ats.arjuna.objectstore.objectStoreType</literal> ) sur la base d'un objet à la fois, et indique comment des implémentations supplémentaires peuvent être offertes. "
 
 #. Tag: title
 #: Chapter_02.xml:84
 #, no-c-format
 msgid "StateManager"
-msgstr ""
+msgstr "StateManager"
 
 #. Tag: para
 #: Chapter_02.xml:86
@@ -348,6 +468,8 @@
 "<classname>StateManager</classname> will also propagate these resources "
 "between child transactions and their parents at commit time."
 msgstr ""
+"La classe <emphasis>TxCore</emphasis>  <classname>StateManager</classname> gère l'état d'un objet et procure tous les mécanismes de support de base requis par un objet dans le but de gérer les états."
+"<classname>StateManager</classname> est responsable de créer et d'enregistrer les ressources qui conviennent en rapport à la persistance et le recouvrement de l'objet transactionnel. SI la transaction est imbriquée, alors <classname>StateManager</classname> propagera également ces ressources entre les transactions enfant et leurs parents au moment de la sauvegarde."
 
 #. Tag: para
 #: Chapter_02.xml:88
@@ -371,7 +493,7 @@
 "at object construction time and cannot be changed thereafter. Thus an object "
 "cannot gain (or lose) recovery capabilities at some arbitrary point during "
 "its lifetime."
-msgstr ""
+msgstr "Les objets dans <emphasis>TxCore</emphasis> sont normalement de trois genres différents. Ils peuvent simplement être recouvrables, dans lequel cas, <classname>StateManager</classname> va tenter de générer et de maintenir des informations de recouvrement appropriées pour l'objet (comme les instances de la classe <classname>Input/OutputObjectState</classname>) . De tels objets ont des durées de vie qui ne dépassent pas celle du programme d'application qui les a créés. Les objets peuvent être recouvrables et persistants, dans lequel cas, la durée de vie de l'objet est sensée être plus grande que celle de l'application en train d'accéder ou de créer, de façon à ce qu'en plus de maintenir l'information de recouvrement, <classname>StateManager</classname> va tenter de charger (ou décharger) tout état persistant de l'objet en faisant appel à l'opération <command>activate</command> (<command>deactivate</command>) au moment opportun. Finalement, ces obje!
 ts peuvent ne posséder aucunes de ces capacités, dans lequel cas, aucune information de recouvrement n'est jamais conservée, et l'activation/la désactivation n'est jamais tentée automatiquement. La propriété de l'objet est sélectionnée au moment de la construction de l'objet et ne peut pas être changée par la suite. Ainsi, un objet ne peut pas gagner (ou perdre) ses capacités de recouvrement à un moment quelconque arbitraire pendant sa durée de vie."
 
 #. Tag: screen
 #: Chapter_02.xml:92
@@ -426,6 +548,54 @@
 "    public static final int MULTIPLE;\n"
 "};"
 msgstr ""
+"public class ObjectStatus\n"
+"{\n"
+"    public static final int PASSIVE;\n"
+"    public static final int PASSIVE_NEW;\n"
+"    public static final int ACTIVE;\n"
+"    public static final int ACTIVE_NEW;\n"
+"    public static final int UNKNOWN_STATUS;\n"
+"};\n"
+"\n"
+"public class ObjectType\n"
+"{\n"
+"    public static final int RECOVERABLE;\n"
+"    public static final int ANDPERSISTENT;\n"
+"    public static final int NEITHER;\n"
+"};\n"
+"\n"
+"public abstract class StateManager\n"
+"{\n"
+"    public synchronized boolean activate ();\n"
+"    public synchronized boolean activate (String storeRoot);\n"
+"    public synchronized boolean deactivate ();\n"
+"    public synchronized boolean deactivate (String storeRoot, boolean "
+"commit);\n"
+"    \n"
+"    public synchronized void destroy ();\n"
+"    \n"
+"    public final Uid get_uid ();\n"
+"    \n"
+"    public boolean restore_state (InputObjectState, int ObjectType);\n"
+"    public boolean save_state (OutputObjectState, int ObjectType);\n"
+"    public String type ();\n"
+"    . . .\n"
+"    \n"
+"    protected StateManager ();\n"
+"    protected StateManager (int ObjectType, ObjectName attr);\n"
+"    protected StateManager (Uid uid);\n"
+"    protected StateManager (Uid uid, ObjectName attr);\n"
+"    . . .\n"
+"    \n"
+"    protected final void modified ();\n"
+"    . . .\n"
+"};\n"
+"\n"
+"public class ObjectModel\n"
+"{\n"
+"    public static final int SINGLE;\n"
+"    public static final int MULTIPLE;\n"
+"};"
 
 #. Tag: para
 #: Chapter_02.xml:94
@@ -445,6 +615,10 @@
 "command> implementation for a class <classname>Example</classname> that had "
 "member variables called A, B and C could simply be the following:"
 msgstr ""
+"Si un objet est recouvrable (ou persistant) alors le <classname>StateManager</"
+"classname> invoquera les opérations <command>save_state</command> (en cours de <command>deactivation</command>), <command>restore_state</"
+"command> (en cours d'activation) et type à plusieurs points pendant l'exécution de l'application. Ces opérations doivent être implémentées par le programmeur puisque <classname>StateManager</classname> n'a pas accès à une description d'exécution du schéma de montage d'un objet arbitraire Java en mémoire et ne peut donc pas implémenter une politique par défaut de conversion de la version de l'objet en mémoire sous sa forme passive. Cependant, les possibilités offertes par <classname>Input/OutputObjectState</classname> rendent l'écriture de ces routines assez simples. Par exemple, l'implémentation <command>save_state</"
+"command> pour une classe <classname>Example</classname> qui possède des variables de membres A,B, et C pourraient simplement être la suivante:"
 
 #. Tag: screen
 #: Chapter_02.xml:96
@@ -469,6 +643,24 @@
 "    }\n"
 "}"
 msgstr ""
+"public boolean save_state ( OutputObjectState os, int ObjectType )\n"
+"{\n"
+"    if (!super.save_state(os, ObjectType))\n"
+"    return false;\n"
+"    \n"
+"    try\n"
+"    {\n"
+"        os.packInt(A);\n"
+"        os.packString(B);\n"
+"        os.packFloat(C);\n"
+"    \n"
+"        return true;\n"
+"    }\n"
+"    catch (IOException e)\n"
+"    {\n"
+"        return false;\n"
+"    }\n"
+"}"
 
 #. Tag: para
 #: Chapter_02.xml:98
@@ -478,7 +670,7 @@
 "for all <command>save_state</command> and <command>restore_state</command> "
 "methods of user objects to call <command>super.save_state</command> and "
 "<command>super.restore_state</command>."
-msgstr ""
+msgstr "Pour pouvoir supporter les recouvrements de crash d'objets persistants, il faut que toutes les méthodes d'utilisateurs d'objets <command>save_state</command> et <command>restore_state</command> appellent <command>super.save_state</command> et <command>super.restore_state</command>."
 
 #. Tag: para
 #: Chapter_02.xml:100 Chapter_02.xml:182
@@ -489,7 +681,7 @@
 "This can actually be any valid string. However, you should avoid using the "
 "hash character (#) as this is reserved for special directories that "
 "<emphasis>TxCore</emphasis> requires."
-msgstr ""
+msgstr "Cette méthode type est utilisée pour déterminer la location dans la mémoire objet où les états d'instances de cette classe seront sauvegardés et finalement restaurés. Il peut s'agir de toute chaîne de caractères valide. Cependant, vous devez éviter d'utiliser le caractère (#) qui est réservé à des répertoires spécifiques utilisés par <emphasis>TxCore</emphasis>."
 
 #. Tag: para
 #: Chapter_02.xml:102
@@ -503,6 +695,8 @@
 "explicit parameter or by generating a new identifier when the object is "
 "created."
 msgstr ""
+"L'opération <command>get_uid</command> de <classname>StateManager</"
+"classname> procure un accès lecture-seule au nom du système interne d'un objet pour n'importe quel but pour le programmeur (comme par exemple l'enregistrement du nom dans un serveur de noms). La valeur du nom du système interne, ne peut uniquement être déterminé que lorsqu'un objet vient d'être construit - soit par provision d'un paramètre explicite ou en générant une nouvel identifiant quand l'objet est créé."
 
 #. Tag: para
 #: Chapter_02.xml:104
@@ -513,7 +707,7 @@
 "only remove the state if the top-level transaction within which it is "
 "invoked eventually commits. The programmer must obtain exclusive access to "
 "the object prior to invoking this operation."
-msgstr ""
+msgstr "La méthode <command>destroy</command> peut être utilisée pour retirer des états d'objets de l'ObjectStore. Il s'agit d'une opération atomique, et donc ne retirera l'état que si la transaction au plus haut niveau, au sein de laquelle on exécute, est finalement sauvegardée. Le programmeur doit obtenir l'accès exclusif à l'objet avant d'appeler cette opération."
 
 #. Tag: para
 #: Chapter_02.xml:106
@@ -529,13 +723,13 @@
 "operations allows the programmer to determine the purpose for which any "
 "given invocation is being made thus allowing different information to be "
 "saved for recovery and persistence purposes."
-msgstr ""
+msgstr "Comme le recouvrement de l'objet et la persistance possèdent essentiellement des prérequis d'accompagnement ( la seule différence étant où l'information sur les états est mémorisée et dans quel but) <classname>Example</classname> combine efficacement la gestion de ces deux propriétés en un seul mécanisme. C'est à dire qu'il utilise les instances de la classe Input/OutputObjectState pour les buts de recouvrement et de persistance. Un argument supplémentaire passé aux opérations <command>save_state</command> et <command>restore_state</command> permet au programmeur de déterminer le but de chaque invocation, permettant à différentes informations d'étre sauvegardées dans des buts de recouvrement ou de persistance."
 
 #. Tag: title
 #: Chapter_02.xml:112
 #, no-c-format
 msgid "Object Models"
-msgstr ""
+msgstr "Modèles d'objets"
 
 #. Tag: para
 #: Chapter_02.xml:114
@@ -544,7 +738,7 @@
 "<emphasis>TxCore</emphasis> supports two models for objects, which as we "
 "shall show affect how an objects state and concurrency control are "
 "implemented:"
-msgstr ""
+msgstr "<emphasis>TxCore</emphasis> prend en charge deux modèles d'objets, qui, comme nous allons le démontrer, affectent comment l'état d'objet et le contrôle de concurrence sont implémentés:"
 
 #. Tag: para
 #: Chapter_02.xml:117
@@ -556,13 +750,13 @@
 "performance, but represents a single point of failure, and in a multi-"
 "threaded environment may not protect the object from corruption if a single "
 "thread fails."
-msgstr ""
+msgstr "<termdef>SINGLE</termdef>: une seule copie de l'objet existe dans l'application, qui réside dans un JVM unique, et tous les clients doivent adresser leurs invocations à ce serveur. Ce modèle propose une meilleure performance, mais représente un seul point de mise en échec, et risque de ne pas protéger l'objet d'une corruption dans un environnement multifilière quand un seul fil échoue."
 
 #. Tag: caption
 #: Chapter_02.xml:123
 #, no-c-format
 msgid "Single Object Model"
-msgstr ""
+msgstr "Modèle d'objet unique"
 
 #. Tag: para
 #: Chapter_02.xml:127
@@ -571,13 +765,13 @@
 "MULTIPLE: logically a single instance of the object exists, but copies of it "
 "are distributed across different JVMs; the performance of this model is "
 "worse than the SINGLE model, but it provides better failure isolation."
-msgstr ""
+msgstr "MULTIPLE: logiquement, une seule instance d'objet existe, mais de multiples copies en sont distribuées à travers les différents JVM. La performance de ce modèle est pire que celle du modèle UNIQUE, mais propose une meilleure protection contre l'échec."
 
 #. Tag: caption
 #: Chapter_02.xml:134
 #, no-c-format
 msgid "Multiple Object Model"
-msgstr ""
+msgstr "Modèle d'objets multiples"
 
 #. Tag: para
 #: Chapter_02.xml:139
@@ -587,7 +781,7 @@
 "object basis by providing an appropriate instance of the <classname>com."
 "arjuna.ats.arjuna.gandiva.ObjectName</classname> class at object "
 "construction."
-msgstr ""
+msgstr "Le modèle par défaut est SINGLE (simple et unique). Le programmeur peut remplacer ceci sur la base d'un objet en procurant une instance appropriée de la classe <command>save_state</command> and <command>restore_state</command> au moment de la construction de l'objet"
 
 #. Tag: para
 #: Chapter_02.xml:141
@@ -595,7 +789,7 @@
 msgid ""
 "The model can be changed between each successive instantiation of the "
 "object, i.e., it need not be the same during the object's lifetime."
-msgstr ""
+msgstr "Le modèle peut être changé entre les instanciations successives de l'objet, par ex., il n'a pas besoin d'être le même pendant toute la durée de vie de l'objet."
 
 #. Tag: para
 #: Chapter_02.xml:143
@@ -603,13 +797,13 @@
 msgid ""
 "To provide a suitable <classname>ObjectName</classname> class, it is "
 "necessary to perform the following steps:"
-msgstr ""
+msgstr "Pour pouvoir procurer une classe qui convient à l' <classname>ObjectName</classname> , il est nécessaire de procéder aux étapes suivantes:"
 
 #. Tag: para
 #: Chapter_02.xml:148
 #, no-c-format
 msgid "create a new instance of <classname>ObjectName</classname>."
-msgstr ""
+msgstr "créer une nouvelle instance d' <classname>ObjectName</classname>."
 
 #. Tag: para
 #: Chapter_02.xml:149
@@ -618,12 +812,14 @@
 "set the object model attribute using the <literal>com.arjuna.ats.arjuna."
 "ArjunaNames.StateManager_objectModel()</literal> name."
 msgstr ""
+"configurer l'attribut du modèle de l'objet en utilisant le nom <literal>com.arjuna.ats.arjuna."
+"ArjunaNames.StateManager_objectModel()</literal>."
 
 #. Tag: para
 #: Chapter_02.xml:152
 #, no-c-format
 msgid "For example:"
-msgstr ""
+msgstr "Par exemple:"
 
 #. Tag: programlisting
 #: Chapter_02.xml:154
@@ -638,12 +834,20 @@
 "    AtomicObject obj = new AtomicObject(ObjectType.ANDPERSISTENT, attr);\n"
 "                }"
 msgstr ""
+"{\n"
+"    ObjectName attr = new ObjectName(“SNS:myObjectName”);\n"
+"    \n"
+"    attr.setLongAttribute(ArjunaNames.StateManager_objectModel(),\n"
+"    ObjectModel.SINGLE);\n"
+"    \n"
+"    AtomicObject obj = new AtomicObject(ObjectType.ANDPERSISTENT, attr);\n"
+"                }"
 
 #. Tag: title
 #: Chapter_02.xml:161
 #, no-c-format
 msgid "Summary"
-msgstr ""
+msgstr "Résumé"
 
 #. Tag: para
 #: Chapter_02.xml:163
@@ -656,12 +860,15 @@
 "<command>save_state</command>, <command>restore_state</command>, and "
 "<command>type</command>."
 msgstr ""
+"Pour récapituler, la classe <emphasis>TxCore</emphasis> <classname>StateManager</"
+"classname> gère l'état d'un objet et procure tous les mécanismes de base de prise en charge utiles à un objet dans des buts de gestion des états. Certaines opérations doivent être déterminées par le développeur de la classe. Ces opérations sont: <command>save_state</command>, <command>restore_state</command>, et "
+"<command>type</command>."
 
 #. Tag: literal
 #: Chapter_02.xml:167
 #, no-c-format
 msgid "boolean save_state (OutputObjectState state, int ObjectType)"
-msgstr ""
+msgstr "boolean save_state (OutputObjectState state, int ObjectType)"
 
 #. Tag: para
 #: Chapter_02.xml:168
@@ -682,6 +889,9 @@
 "recovery for persistent objects it is necessary for all <command>save_state</"
 "command> methods to call <command>super.save_state</command>."
 msgstr ""
+"invoqué quand l'état d'un objet pourrait avoir besoin d'être sauvé en vue d'utilisation future - principalement dans des buts de recouvrement ou de persistance. Le paramètre <literal>ObjectType</literal> indique la raison pour laquelle <command>save_state</command> était invoquée par <emphasis>TxCore</emphasis>. Ceci permet au programmeur de sauvegarder divers morceaux d'informations dans le <classname>OutputObjectState</classname> fourni comme premier paramètre selon que l'état est utile au recouvrement ou à la persistance. Comme démontré ci-dessus, la classe <classname>OutputObjectState</"
+"classname> procure des opérations pratiques pour permettre la sauvegarde des instances de tous les types de base de Java. Afin de supporter le recouvrement d'objets persistants en cas de plantage, il est nécessaire que toutes les méthodes <command>save_state</"
+"command> fassent appel à <command>super.save_state</command>."
 
 #. Tag: para
 #: Chapter_02.xml:170
@@ -690,13 +900,13 @@
 "<command>save_state</command> assumes that an object is internally "
 "consistent and that all variables saved have valid values. It is the "
 "programmer's responsibility to ensure that this is the case."
-msgstr ""
+msgstr "<command>save_state</command> assume qu'un objet est cohérent de façon interne et que toutes les variables sauvegardées possèdent des valeurs valides. C'est la responsabilité du programmeur de veiller à ce que ce soit le cas."
 
 #. Tag: literal
 #: Chapter_02.xml:174
 #, no-c-format
 msgid "boolean restore_state (InputObjectState state, int ObjectType)"
-msgstr ""
+msgstr "boolean restore_state (InputObjectState state, int ObjectType)"
 
 #. Tag: para
 #: Chapter_02.xml:175
@@ -707,13 +917,13 @@
 "of the supplied state. In order to support crash recovery for persistent "
 "objects it is necessary for all <command>restore_state</command> methods to "
 "call <command>super.restore_state</command>."
-msgstr ""
+msgstr "Appelé quand l'état d'un objet a besoin d'être restauré dans l'état de celui qui est fourni. A nouveau, le second paramètre permet différentes interprétations de l'état fourni. Afin de prendre en charge le recouvrement d'un plantage pour les objets persistants, il faut que toutes les méthodes <command>restore_state</command> appellent <command>super.restore_state</command>."
 
 #. Tag: literal
 #: Chapter_02.xml:179
 #, no-c-format
 msgid "String type ()"
-msgstr ""
+msgstr "String type ()"
 
 #. Tag: para
 #: Chapter_02.xml:180
@@ -726,12 +936,14 @@
 "example, “/<classname>StateManager</classname>/<classname>LockManager</"
 "classname>/<classname>Object</classname>”."
 msgstr ""
+"Le mécanisme de persistance <emphasis>TxCore</emphasis> a besoin d'un moyen de déterminer le type d'un objet en tant que chaîne de caractère de façon à ce qu'il puisse sauvegarder/restaurer l'état d'un objet vers/en provenance d'une mémoire objet. Par convention, cette information indique la positions de la classe dans la hiérarchie. Par exemple, <command>restore_state</command> methods to "
+"call <command>super.restore_state</command>."
 
 #. Tag: title
 #: Chapter_02.xml:190
 #, no-c-format
 msgid "Example"
-msgstr ""
+msgstr "Exemple"
 
 #. Tag: para
 #: Chapter_02.xml:192
@@ -742,7 +954,7 @@
 "illustrate saving and restoring of an object’s state, the highestIndex "
 "variable is used to keep track of the highest element of the array that has "
 "a non-zero value):"
-msgstr ""
+msgstr "Considérer la classe de base suivante <classname>Array</classname> dérivée de la classe <classname>StateManager</classname> (dans cet exemple, afin d'illustrer la sauvegarde et la restauration d'un état d'objet, la variable du plus haut index est utilisée pour garder en mémoire l'élément d'un tableau le plus haut qui possède une valeur non-nulle):"
 
 #. Tag: programlisting
 #: Chapter_02.xml:196
@@ -771,6 +983,28 @@
 "    private int highestIndex;\n"
 "    };"
 msgstr ""
+"public class Array extends StateManager\n"
+"{\n"
+"    public Array ();\n"
+"    public Array (Uid objUid);\n"
+"    public void finalize ( super.terminate(); };\n"
+"    \n"
+"    /* Class specific operations. */\n"
+"    \n"
+"    public boolean set (int index, int value);\n"
+"    public int get (int index);\n"
+"    \n"
+"    /* State management specific operations. */\n"
+"    \n"
+"    public boolean save_state (OutputObjectState os, int ObjectType);\n"
+"    public boolean restore_state (InputObjectState os, int ObjectType);\n"
+"    public String type ();\n"
+"    \n"
+"    public static final int ARRAY_SIZE = 10;\n"
+"    \n"
+"    private int[] elements = new int[ARRAY_SIZE];\n"
+"    private int highestIndex;\n"
+"    };"
 
 #. Tag: para
 #: Chapter_02.xml:198
@@ -779,6 +1013,8 @@
 "The <command>save_state</command>, <command>restore_state</command> and "
 "<command>type</command> operations can be defined as follows:"
 msgstr ""
+"Les opérations <command>save_state</command>, <command>restore_state</command> et "
+"<command>type</command> peuvent être définies comme suit:"
 
 #. Tag: programlisting
 #: Chapter_02.xml:202
@@ -844,12 +1080,71 @@
 "    return \"/StateManager/Array\";\n"
 "}"
 msgstr ""
+"/* Ignore ObjectType parameter for simplicity */\n"
+"\n"
+"public boolean save_state (OutputObjectState os, int ObjectType)\n"
+"{\n"
+"    if (!super.save_state(os, ObjectType))\n"
+"        return false;\n"
+"    \n"
+"    try\n"
+"    {    \n"
+"        packInt(highestIndex);\n"
+"\n"
+"        /*\n"
+"        * Traverse array state that we wish to save. Only save active "
+"elements\n"
+"        */\n"
+"\n"
+"        for (int i = 0; i &lt;= highestIndex; i++)\n"
+"            os.packInt(elements[i]);\n"
+"            \n"
+"        return true;\n"
+"    }\n"
+"    catch (IOException e)\n"
+"    {\n"
+"        return false;\n"
+"    }\n"
+"}\n"
+" \n"
+"public boolean restore_state (InputObjectState os, int ObjectType)\n"
+"{\n"
+"    if (!super.restore_state(os, ObjectType))\n"
+"        return false;\n"
+"    \n"
+"    try\n"
+"    {\n"
+"        int i = 0;\n"
+"    \n"
+"        highestIndex = os.unpackInt();\n"
+"    \n"
+"        while (i &lt; ARRAY_SIZE)\n"
+"        {\n"
+"            if (i &lt;= highestIndex)\n"
+"                elements[i] =  os.unpackInt();\n"
+"            else\n"
+"                elements[i] = 0;\n"
+"            i++;\n"
+"        }\n"
+"        \n"
+"        return true;\n"
+"        }\n"
+"    catch (IOException e)\n"
+"    {\n"
+"        return false;\n"
+"    }\n"
+"}\n"
+" \n"
+"public String type ()\n"
+"{\n"
+"    return \"/StateManager/Array\";\n"
+"}"
 
 #. Tag: title
 #: Chapter_02.xml:207
 #, no-c-format
 msgid "Lock management and concurrency control"
-msgstr ""
+msgstr "Gestion du verrouillage ou contrôle de concurrence"
 
 #. Tag: para
 #: Chapter_02.xml:209
@@ -865,7 +1160,7 @@
 "different forms); and as a remotely accessible store. More information about "
 "the object stores available in <emphasis>TxCore</emphasis> can be found in "
 "the Appendix."
-msgstr ""
+msgstr "L'information de contrôle de concurrence  <emphasis>TxCore</emphasis> est maintenue par des systèmes de verrouillage. Les verrous requis pour être partagés entre des objets issus de divers processus, pourraient être hébergés dans une mémoire de verrouillage, semblable à la fonctionnalité de mémoire d'objet présentée auparavant. La mémoire de verrouillage proposée par <emphasis>TxCore</emphasis> possède une interface asses limitée, de façon à pouvoir être implémentée de façons différentes. Ainsi, les mémoires de verrouillage sont implémentées dans une mémoire partagée; sur un système de fichiers Unix (sous plusieurs formes), et sous la forme d'une mémoire accessible à distance. Davantage d'informations sur les mémoires objet disponibles dans <emphasis>TxCore</emphasis> peuvent être trouvées en annexe."
 
 #. Tag: para
 #: Chapter_02.xml:211
@@ -874,7 +1169,7 @@
 "As with all <emphasis>TxCore</emphasis> classes the default lock stores are "
 "pure Java implementations; to access the shared memory and other more "
 "complex lock store implementations it is necessary to use native methods."
-msgstr ""
+msgstr "Comme avec toutes les classes <emphasis>TxCore</emphasis> les mémoires de verrouillage par défaut sont de pures implémentations Java. Pour accéder à la mémoire partagée et à d'autres implémentations, il faut utiliser les méthodes natives."
 
 #. Tag: programlisting
 #: Chapter_02.xml:213
@@ -890,12 +1185,21 @@
 "    OutputObjectState state);\n"
 "    };"
 msgstr ""
+"public class LockStore\n"
+"{\n"
+"    public abstract InputObjectState read_state (Uid u, String tName)\n"
+"    throws LockStoreException;\n"
+"    \n"
+"    public abstract boolean remove_state (Uid u, String tname);\n"
+"    public abstract boolean write_committed (Uid u, String tName,\n"
+"    OutputObjectState state);\n"
+"    };"
 
 #. Tag: title
 #: Chapter_02.xml:216
 #, no-c-format
 msgid "Selecting a lock store implementation"
-msgstr ""
+msgstr "Sélectionner une implémentation de mémoire de verrouillage"
 
 #. Tag: para
 #: Chapter_02.xml:218
@@ -912,12 +1216,17 @@
 "lockStoreType</literal> property variable. Currently this can have one of "
 "the following values:"
 msgstr ""
+"<emphasis>TxCore</emphasis> est proposé avec le support de plusieurs implémentations de mémoires d'objets. Si le modèle d'objet utilisé est SINGLE, alors aucune mémoire de verrouillage n'est requise pour maintenir les verrous, puisque l'information sur l'objet n'en est pas exportée. Cependant, si le modèle MULTIPLE est utilisé, alors différents environnements d'exécution (processes, machines virtuelles Java) pourraient avoir besoin de partager des informations de contrôle de concurrence. Le type d'implémentation de la mémoire de verrouillage à utiliser peut être spécifiée pour tous les objets dans le cadre d'un environnement d'exécution en utilisant la variable de propriété <literal>com.arjuna.ats.txoj.lockstore."
+"lockStoreType</literal>. Actuellement, elle peut avoir les valeurs suivantes:"
+"<literal>com.arjuna.ats.txoj.lockstore."
+"lockStoreType</literal> property variable. Currently this can have one of "
+"the following values:"
 
 #. Tag: term
 #: Chapter_02.xml:222
 #, no-c-format
 msgid "BasicLockStore"
-msgstr ""
+msgstr "BasicLockStore"
 
 #. Tag: para
 #: Chapter_02.xml:223
@@ -926,13 +1235,13 @@
 "This is an in-memory implementation which does not, by default, allow "
 "sharing of stored information between execution environments. The "
 "application programmer is responsible for sharing the store information."
-msgstr ""
+msgstr "Il s'agit d'une implémentation en-mémoire qui ne permet pas, par défaut, d'autoriser le partage d'informations sauvegardée entre les environnements d'exécution. Le programmeur d'application est responsable du partage des informations sauvegardées."
 
 #. Tag: term
 #: Chapter_02.xml:227
 #, no-c-format
 msgid "BasicPersistentLockStore"
-msgstr ""
+msgstr "BasicPersistentLockStore"
 
 #. Tag: para
 #: Chapter_02.xml:228
@@ -947,6 +1256,9 @@
 "arjuna.ats.txoj.lockstore.lockStoreDir</literal> property variable "
 "accordingly, or placing the location within the <literal>CLASSPATH</literal>:"
 msgstr ""
+"Il s'agit de l'implémentation par défaut, qui stocke les informations de verrouillage à l'intérieur du système de gestion de fichiers local. Ainsi, des environnements d'exécution qui partagent la même mémoire de fichiers peuvent partager des informations de contrôle de concurrence. La racine du système de fichiers dans laquelle l'information de verrouillage est écrite est le répertoire <filename>LockStore</"
+"filename> contenu dans le répertoire d'installation <emphasis>TxCore</emphasis>. Il peut être remplacé en cours d'exécution en configurant la variable de propriété <literal>com."
+"arjuna.ats.txoj.lockstore.lockStoreDir</literal> en fonction, ou bien en plaçant la location dans <literal>CLASSPATH</literal>:"
 
 #. Tag: command
 #: Chapter_02.xml:230
@@ -955,18 +1267,20 @@
 "java -D com.arjuna.ats.txoj.lockstore.lockStoreDir=/var/tmp/LockStore "
 "myprogram"
 msgstr ""
+"java -D com.arjuna.ats.txoj.lockstore.lockStoreDir=/var/tmp/LockStore "
+"myprogram"
 
 #. Tag: para
 #: Chapter_02.xml:232
 #, no-c-format
 msgid "<para>or</para>"
-msgstr ""
+msgstr "<para>ou</para>"
 
 #. Tag: command
 #: Chapter_02.xml:234
 #, no-c-format
 msgid "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
-msgstr ""
+msgstr "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
 
 #. Tag: para
 #: Chapter_02.xml:236
@@ -975,13 +1289,13 @@
 "If neither of these approaches is taken, then the default location will be "
 "at the same level as the <filename>etc</filename> directory of the "
 "installation."
-msgstr ""
+msgstr "Si aucunes de ces approches n'est prise, la location par défaut sera au même niveau que le répertoire de l'installation <filename>etc</filename>."
 
 #. Tag: title
 #: Chapter_02.xml:245
 #, no-c-format
 msgid "LockManager"
-msgstr ""
+msgstr "LockManager"
 
 #. Tag: para
 #: Chapter_02.xml:247
@@ -1001,7 +1315,7 @@
 "normally under control of the system and requires no further intervention by "
 "the programmer. This ensures that the two-phase property can be correctly "
 "maintained."
-msgstr ""
+msgstr "Le contrôleur de concurrence est implémenté dans la classe <classname>LockManager</classname> qui propose un comportement raisonnable par défaut, tout en permettant au programmeur d'effectuer des changements de sémantique particulières de la classe qu'ilest en train de programmer, s'il l'estime utile. L'interface de programmation primaire vers le contrôleur de concurrence est via l'opération setlock. Par défaut, la version modifiée de <emphasis>TxCore</emphasis> implémente un verrouillage strict en deux phases suivant une politique d'écriture unique sur la base d'un objet à la fois, à lecteurs multiples. L'acquisition de verrous est contrôlée par le programmeur, puisque de la même manière que <classname>StateManager</classname> ne peut pas déterminer si une opération modifie un objet, <classname>LockManager</classname> ne peut pas déterminer si  une opération a besoin d'un verrou lecture ou écriture. La libération du verrou, cependant, est no!
 rmalement sous le contrôle du système et ne nécessite aucune intervention de la part du programmeur. Cela garantit que la propriété en deux phases puisse être correctement maintenue."
 
 #. Tag: para
 #: Chapter_02.xml:249
@@ -1018,6 +1332,8 @@
 "be saved if the object is recoverable. In a similar fashion, successful lock "
 "acquisition causes <command>activate</command> to be invoked."
 msgstr ""
+"La classe <classname>LockManager</classname> est surtout responsable pour la gestion des demandes de mise en place d'un verrou sur un objet ou pour libérer un verrou selon le cas. Cependant, somme c'est dérivé de <classname>StateManager</"
+"classname>, il peut également contrôler si quelque fonctionnalité héritée est appelée. Par exemple, si une demande d'installation un verrou d'écriture est accordée, alors <classname>LockManager</classname> ????????????????en assumant que la configuration d'un verrou écriture implique que l'opération appel doit être en cours de modification de l'objet. Cela peut, à son tour, causer la sauvegarde de l'information de recouvrement si toute fois l'objet est recouvrable. De la même manière, l'acquisition de verrous cause l'appel de la commande <command>activate</command>."
 
 #. Tag: para
 #: Chapter_02.xml:251
@@ -1033,6 +1349,9 @@
 "extends the <command>save_state</command> and <command>restore_state</"
 "command> methods of <classname>StateManager</classname>."
 msgstr ""
+"Ainsi, <classname>LockManager</classname> est directement responsable pour activer/désactiver les objets persistants, et pour enregistrer les <classname>Resources</classname> pour gérer le contrôle de concurrence. Etant responsable pour la classe du <classname>StateManager</classname>, et pour l'enregistrement de <classname>Resources</classname> pour la manipulation des états recouvrables/persistents et le recouvrement d'objets. Le programmeur d'applications installe tout simplement les verrous qui conviennent, démarre et termine les transactions, et prolonge des méthodes <command>save_state</command> and <command>restore_state</"
+"command><command>save_state</command> and <command>restore_state</"
+"command> de <classname>StateManager</classname>."
 
 #. Tag: programlisting
 #: Chapter_02.xml:253
@@ -1076,6 +1395,43 @@
 ". . .\n"
 "};"
 msgstr ""
+"public class LockResult\n"
+"{\n"
+"public static final int GRANTED;\n"
+"public static final int REFUSED;\n"
+"public static final int RELEASED;\n"
+"};\n"
+"\n"
+"public class ConflictType\n"
+"{\n"
+"public static final int CONFLICT;\n"
+"public static final int COMPATIBLE;\n"
+"public static final int PRESENT;\n"
+"};\n"
+"\n"
+"public abstract class LockManager extends StateManager\n"
+"{\n"
+"public static final int defaultTimeout;\n"
+"public static final int defaultRetry;\n"
+"public static final int waitTotalTimeout;\n"
+"\n"
+"public synchronized int setlock (Lock l);\n"
+"public synchronized int setlock (Lock l, int retry);\n"
+"public synchronized int setlock (Lock l, int retry, int sleepTime);\n"
+"public synchronized boolean releaselock (Uid uid);\n"
+"\n"
+"/* abstract methods inherited from StateManager */\n"
+"\n"
+"public boolean restore_state (InputObjectState os, int ObjectType);\n"
+"public boolean save_state (OutputObjectState os, int ObjectType);\n"
+"public String type ();\n"
+"\n"
+"protected LockManager ();\n"
+"protected LockManager (int ObjectType, ObjectName attr);\n"
+"protected LockManager (Uid storeUid);\n"
+"protected LockManager (Uid storeUid, int ObjectType, ObjectName attr);\n"
+". . .\n"
+"};"
 
 #. Tag: para
 #: Chapter_02.xml:255
@@ -1085,7 +1441,7 @@
 "of lock required (<literal>READ</literal> / <literal>WRITE</literal>), and "
 "the number of retries to acquire the lock before giving up. If a lock "
 "conflict occurs, one of the following scenarios will take place:"
-msgstr ""
+msgstr "L'opération <command>setlock</command> doit être paramétrée avec le type de verrou qui convient (<literal>READ</literal> / <literal>WRITE</literal>), et le nombre de tentatives d'obtention du verrou avant abandoné. Si un conflit de verrouillage avait lieu, on assistera à l'un des scénarios suivants:"
 
 #. Tag: para
 #: Chapter_02.xml:257
@@ -1096,6 +1452,8 @@
 "blocked until the lock is released, or the total timeout specified has "
 "elapsed, and in which <literal>REFUSED</literal> will be returned."
 msgstr ""
+"Si la valeur de retransmission est égale à <literal>LockManager.waitTotalTimeout</"
+"literal>, alors le fil qui appelle <command>setlock</command> sera bloqué jusqu'à ce que le verrou soit libéré, ou que le temps d'inactivité (timeout) spécifié soit échu, et pendant lequel <literal>REFUSED</literal> sera retourné."
 
 #. Tag: para
 #: Chapter_02.xml:261
@@ -1107,6 +1465,8 @@
 "attempts, each attempt being separated by a 0.25 seconds delay; the time "
 "between retries is specified in micro-seconds."
 msgstr ""
+"Si le verrou ne peut pas être obtenu au départ, alors <classname>LockManager</"
+"classname> tentera le nombre spécifié d'essais, et attendra le temps fixé par la valeur du temps d'inactivité entre chaque tentative qui échoue. La valeur par défaut est de 100 essais, chaque essai étant séparé par un délai de 0.25 secondes, les délais entre les essais sont indiqués en micro-secondes."
 
 #. Tag: para
 #: Chapter_02.xml:263
@@ -1120,7 +1480,7 @@
 "the programmer to ensure that the remainder of the code for an operation is "
 "only executed if a lock request is granted. Below are examples of the use of "
 "the <command>setlock</command> operation."
-msgstr ""
+msgstr "Si un conflit de verrouillage a lieu, l'implémentation en cours interrompt tout simplement les demandes de verrouillage, empêchant ainsi les interblocages, plutôt que de proposer un scénario de détection d'interblocages. Si le verrou demandé est obtenu, l'opération setlock retournera la valeur <literal>GRANTED</literal> (accordé), sinon elle retournera la valeur <literal>REFUSED</literal> (refusé). C'est la responsabilité du programmeur de veiller à ce que le reste du code d'une opération, n'est seulement exécuté que si la demande de verrouillage est accordée. Voici ci-dessous des exemples d'utilisation de l'opération <command>setlock</command>."
 
 #. Tag: programlisting
 #: Chapter_02.xml:265
@@ -1143,6 +1503,22 @@
 "    // 100 retries) on the object\n"
 "    // before giving up."
 msgstr ""
+"res = setlock(new Lock(WRITE), 10);        \n"
+"    // Will attempt to set a\n"
+"    // write lock 11 times (10\n"
+"    // retries) on the object\n"
+"    // before giving up.\n"
+"                \n"
+"res = setlock(new Lock(READ), 0);        \n"
+"    // Will attempt to set a read\n"
+"    // lock 1 time (no retries) on\n"
+"    // the object before giving up.\n"
+"    \n"
+"res = setlock(new Lock(WRITE);        \n"
+"    // Will attempt to set a write\n"
+"    // lock 101 times (default of\n"
+"    // 100 retries) on the object\n"
+"    // before giving up."
 
 #. Tag: para
 #: Chapter_02.xml:267
@@ -1157,13 +1533,13 @@
 "<emphasis>outside</emphasis> of the scope of an atomic action, it is the "
 "programmer's responsibility to release the locks when required, using the "
 "corresponding <command>releaselock</command> operation."
-msgstr ""
+msgstr "Le mécanisme de contrôle de concurrence est intégré dans le mécanisme d'action atomique, garantissant ainsi qu'au fur et à mesure que les verrous sont accordés pour un objet, la bonne information est enregistrée auprès de l'action atomique actuellement en cours d'exécution. C'est la responsabilité du programmeur de libérer les verrous quand il sont requis, par le biais de l'opération <command>releaselock</command> correspondante."
 
 #. Tag: title
 #: Chapter_02.xml:272
 #, no-c-format
 msgid "Locking policy"
-msgstr ""
+msgstr "Politique de verrouillage"
 
 #. Tag: para
 #: Chapter_02.xml:274
@@ -1185,6 +1561,8 @@
 "definitions of the conflict operations enhanced levels of concurrency may be "
 "possible."
 msgstr ""
+"A l'encontre de nombreux autres systèmes, les verrous de  <emphasis>TxCore</emphasis> ne sont pas des types de systèmes spéciaux. Ils sont plutôt des instances d'autres objets <emphasis>TxCore</emphasis> (la classe <emphasis>TxCore</emphasis> qui est également dérivée de <emphasis>TxCore</emphasis> de façon à ce que les verrous deviennent persistents si besoin est et puissent être nommés smplement). De plus, <classname>LockManager</classname> n'a aucune connaissance de la politique par laquelle des demandes de verrous sont octroyées. De telles informations sont maintenues dans les instances de classe <classname>LockManager</classname> qui fournissent des opérations (l'opération <literal>conflictsWith</literal>) par laquelle <classname>LockManager</"
+"classname> peut déterminer si deux verrous sont en conflit ou non. Cette séparation est importante car elle permet au programmeur de dériver des types de nouveaux verrous de la classe de base <classname>Lock</classname> et en procurant des définitions qui conviennent sur les opérations en conflit, des niveaux améliorés de concurrence sont possibles."
 
 #. Tag: programlisting
 #: Chapter_02.xml:276
@@ -1216,6 +1594,31 @@
 "    . . .\n"
 "};"
 msgstr ""
+"public class LockMode\n"
+"{\n"
+"    public static final int READ;\n"
+"    public static final int WRITE;\n"
+"};\n"
+"\n"
+"public class LockStatus\n"
+"{\n"
+"    public static final int LOCKFREE;\n"
+"    public static final int LOCKHELD;\n"
+"    public static final int LOCKRETAINED;\n"
+"};\n"
+"\n"
+"public class Lock extends StateManager\n"
+"{\n"
+"    public Lock (int lockMode);\n"
+"    \n"
+"    public boolean conflictsWith  (Lock otherLock);\n"
+"    public boolean modifiesObject ();\n"
+"    \n"
+"    public boolean restore_state (InputObjectState os, int ObjectType);\n"
+"    public boolean save_state (OutputObjectState os, int ObjectType);\n"
+"    public String type ();\n"
+"    . . .\n"
+"};"
 
 #. Tag: para
 #: Chapter_02.xml:278
@@ -1228,12 +1631,14 @@
 "can be supported. The supplied <classname>Lock</classname> class supports "
 "the traditional multiple reader/single writer policy."
 msgstr ""
+"La classe <classname>Lock</classname>offre une opération<command>modifiesObject</"
+"command> qui utilise <classname>LockManager</classname> pour déterminer si l'acceptation de cette demande de verrouillage requiert un appel sur modifié. Cette opération est proposée de façon à ce que les autres modes de verrouillage que lecture ou écriture puissent être pris en charge. La classe proposée <classname>Lock</classname> prend en charge la politique traditionelle lecteur multiple/une seule écriture."
 
 #. Tag: title
 #: Chapter_02.xml:283
 #, no-c-format
 msgid "Object construction and destruction"
-msgstr ""
+msgstr "Construction et destruction d'objets"
 
 #. Tag: para
 #: Chapter_02.xml:285
@@ -1245,13 +1650,13 @@
 "constructed. Thus <classname>LockManager</classname> provides two protected "
 "constructors for use by derived classes, each of which fulfils a distinct "
 "purpose:"
-msgstr ""
+msgstr "Souvenez-vous que les objets <emphasis>TxCore</emphasis> peuvent être recouvrables, recouvrables et persistants, ou ni l'un, ni l'autre. De plus, chaque objet possède un nom interne unique. Ces attributs ne peuvent être déterminés que quand l'objet est construit. Ainsi, <classname>LockManager</classname> procure deux constructeurs protégés à utiliser par les classes dérivées, qui remplissent chacune un but bien particulier:"
 
 #. Tag: command
 #: Chapter_02.xml:289
 #, no-c-format
 msgid "LockManager ()"
-msgstr ""
+msgstr "LockManager ()"
 
 #. Tag: para
 #: Chapter_02.xml:290
@@ -1259,13 +1664,13 @@
 msgid ""
 "This constructor allows the creation of new objects, that is, no prior state "
 "is assumed to exist."
-msgstr ""
+msgstr "Ce constructeur autorise la création de nouveaux objets, c'est à dire qu'on assume qu'il n'existe aucun état préalable."
 
 #. Tag: command
 #: Chapter_02.xml:294
 #, no-c-format
 msgid "LockManager (int ObjectType, ObjectName attr)"
-msgstr ""
+msgstr "LockManager (int ObjectType, ObjectName attr)"
 
 #. Tag: para
 #: Chapter_02.xml:295
@@ -1284,7 +1689,7 @@
 "object itself (i.e., it has no external representation), otherwise an in-"
 "memory (volatile) object store is used to store the state of the object "
 "between atomic actions."
-msgstr ""
+msgstr "Comme ci-dessus, le constructeur autorise la création de nouveaux objets, c'est à dire qu'il n'existe aucun état préalable. Le paramètre <literal>ObjectType</literal> détermine si un objet est simplement recouvrable (indiqué par <literal>RECOVERABLE</literal>), recouvrable et persistent (indiqué par <literal>RECOVERABLE</literal>) ou bien ni l'un, ni l'autre (<literal>RECOVERABLE</literal>). Si un objet est marqué persistant, alors l'état de l'objet sera enregistré dans l'une des mémoires objet. Le paramètre partagé n'a un sens que si c'est <literal>RECOVERABLE</literal>; si <literal>attr</literal> n'est pas nul et que le modèle de l'objet est <literal>SINGLE</literal> (comportement par défaut), alors l'état de recouvrement de l'objet est maintenu à l'intérieur de l'objet lui-même (par ex. il n'a pas de représentation externe), sinon une mémoire objet (volatile) sera utilisée pour enregistrer l'état de l'objet entre les actions atomiques."
 
 #. Tag: para
 #: Chapter_02.xml:297
@@ -1296,13 +1701,13 @@
 "constructor commits or, if an enclosing action exists, when the appropriate "
 "top-level action commits. Later examples in this chapter illustrate this "
 "point further."
-msgstr ""
+msgstr "Les constructeurs de nouveaux objets persistants devraient utiliser les actions atomiques entre eux. Cela assurera que l'état de l'objet est automatiquement inscrit dans la mémoire objet, soit quand l'action est sauvegardée dans le constructeur, ou si une action de clôture existe, au moment où l'action au niveau supérieur est soumise. Des exemples à venir dans ce chapitre, illustrent ce point en détails."
 
 #. Tag: command
 #: Chapter_02.xml:301
 #, no-c-format
 msgid "LockManager(Uid objUid)"
-msgstr ""
+msgstr "LockManager(Uid objUid)"
 
 #. Tag: para
 #: Chapter_02.xml:302
@@ -1313,13 +1718,13 @@
 "constructed using this operation will normally have their prior state "
 "(identified by <literal>objUid</literal>) loaded from an object store "
 "automatically by the system."
-msgstr ""
+msgstr "Ce constructeur autorise l'accès à un objet persistant existant, dont le nom interne est déterminé par le paramètre <literal>objUid</literal>. Les objets construits en utilisant cette opération verront leur état initial (identified by <literal>objUid</literal>) chargé automatiquement dans le système à partir d'une mémoire objet."
 
 #. Tag: command
 #: Chapter_02.xml:306
 #, no-c-format
 msgid "LockManager(Uid objUid, ObjectName attr)"
-msgstr ""
+msgstr "LockManager(Uid objUid, ObjectName attr)"
 
 #. Tag: para
 #: Chapter_02.xml:307
@@ -1332,7 +1737,7 @@
 "automatically by the system. If the attr parameter is not null, and the "
 "object model is <literal>SINGLE</literal> (the default behaviour), then the "
 "object will not be reactivated at the start of each top-level transaction."
-msgstr ""
+msgstr "Comme ci-dessus, ce constructeur autorise l'accès à un objet persistant existant, dont le nom interne est déterminé par le paramètre <literal>objUid</literal>. Les objets construits en utilisant cette opération verront normalement leur état initial  (identifié par <literal>objUid</literal>) chargé automatiquement dans le système à partir d'une mémoire objet. Si le paramètre attribut n'est pas nul, et que le modèle de l'objet est  <literal>SINGLE</literal> (le comportement par défaut), alors l'objet ne sera pas réactivé au départ de chaque transaction à un niveau supérieur."
 
 #. Tag: para
 #: Chapter_02.xml:309
@@ -1341,7 +1746,7 @@
 "The destructor of a programmer-defined class must invoke the inherited "
 "operation terminate to inform the state management mechanism that the object "
 "is about to be destroyed otherwise unpredictable results may occur."
-msgstr ""
+msgstr "Le destructeur d'une classe définie par un programmeur doit appeler l'opération héritée 'terminate' pour informer le mécanisme de gestion des états que l'objet est prêt à être détruit, sinon vous risquer d'obtenir des résultats imprédictibles."
 
 #. Tag: para
 #: Chapter_02.xml:311
@@ -1353,3 +1758,9 @@
 "classname> class. As such, it is possible to set the "
 "<classname>StateManager</classname> object model as described earlier."
 msgstr ""
+"Comme <classname>LockManager</classname> hérite de "
+"<classname>StateManager</classname>, il passera n'importe quelle instance d'"
+"<classname>ObjectName</classname> à la classe du <classname>StateManager</"
+"classname> . Ainsi, il est possible de configurer le model objet "
+"<classname>StateManager</classname> comme expliqué plus haut."
+

Modified: projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_03.po
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_03.po	2008-07-04 02:17:48 UTC (rev 75364)
+++ projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_03.po	2008-07-04 04:08:42 UTC (rev 75365)
@@ -1,29 +1,32 @@
+# translation of Chapter_03.po to French
 # Language fr-FR translations for JBoss_TS_Programmers_Guide package.
+#
 # Automatically generated, 2008.
-#
+# Corina Roe <croe at redhat.com>, 2008.
 msgid ""
 msgstr ""
-"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\n"
+"Project-Id-Version: Chapter_03\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2008-06-05 22:51+0000\n"
-"PO-Revision-Date: 2008-06-05 22:51+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2008-07-03 10:52+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
 #: Chapter_03.xml:6
 #, no-c-format
 msgid "General Transaction Issues"
-msgstr ""
+msgstr "Problèmes de transactions en général"
 
 #. Tag: title
 #: Chapter_03.xml:10
 #, no-c-format
 msgid "Advanced transaction issues with TxCore"
-msgstr ""
+msgstr "Problèmes de transactions avancées avec TxCore"
 
 #. Tag: para
 #: Chapter_03.xml:12
@@ -34,13 +37,13 @@
 "made atomic as required by the semantics of a particular operation. This "
 "chapter will describe some of the more subtle issues involved with using "
 "transactions in general and <emphasis>TxCore</emphasis> in particular."
-msgstr ""
+msgstr "Les actions atomiques (transactions) peuvent être utilisées par les programmeurs d'application et les développeurs de classe. Ainsi des opérations entières (ou parties d'opération) peuvent être rendues atomiques suivant les besoins sémantiques d'une opération particulière. Ce chapitre décrira certaines questions plus subtiles à propos de l'utilisation des transactions en général et de <emphasis>TxCore</emphasis> en particulier."
 
 #. Tag: title
 #: Chapter_03.xml:15
 #, no-c-format
 msgid "Checking transactions"
-msgstr ""
+msgstr "Vérifier les transactions"
 
 #. Tag: para
 #: Chapter_03.xml:17
@@ -63,6 +66,8 @@
 "instance of this class associated with it, and application programmers can "
 "provide their own implementations on a per transaction basis."
 msgstr ""
+"Dans une application multifilière, les fils mutiples peuvent être associés à une transaction pendant sa durée de vie, par ex., le fil ???????????partage le contexte. De plus, il est possible que si un fil termine une transaction, il est possible que d'autres fils soient toujours actifs. Dans un environnement distribué, il peut être difficile de s'assurer que tous les fils ont terminé une transaction lorsqu'elle s'achève. Par défaut, <emphasis>TxCore</emphasis> émettra un message d'avertissement si un fil termine une transaction alors que d'autres fils sont toujours actifs, tout en permettant à la transaction de se terminer. Il existe d'autres solutions à ce problème, par ex., bloquer le fil qui termine la transaction jusqu'à ce que tous les autres fils se soient dissociés du contexte de la transaction. Ainsi, <emphasis>TxCore</emphasis> propose la classe <classname>com.arjuna.ats.arjuna."
+"coordinator.CheckedAction</classname>, qui permet que la politique de terminaison de transaction/fil soit remplacée. Chaque transaction possède une instance de cette classe qui lui est associée, et les programmeurs d'application peuvent proposer leurs propres implémentations sur la base d'une transaction à la fois."
 
 #. Tag: programlisting
 #: Chapter_03.xml:19
@@ -76,6 +81,13 @@
 "BasicList list);\n"
 "};"
 msgstr ""
+"public class CheckedAction\n"
+"{\n"
+"public CheckedAction ();\n"
+"\n"
+"public synchronized void check (boolean isCommit, Uid actUid,\n"
+"BasicList list);\n"
+"};"
 
 #. Tag: para
 #: Chapter_03.xml:21
@@ -85,13 +97,13 @@
 "threads within it, the system will invoke the check method on the "
 "transaction’s <classname>CheckedAction</classname> object. The parameters to "
 "the check method are:"
-msgstr ""
+msgstr "Lorsqu'un fil tente de terminer la transaction et qu'il y a toujours des fils actifs, le système appellera la méthode de vérification <classname>CheckedAction</classname> sur l'objet de la transaction. Les paramètres de la méthode de vérification sont les suivants:"
 
 #. Tag: term
 #: Chapter_03.xml:25
 #, no-c-format
 msgid "isCommit"
-msgstr ""
+msgstr "isCommit"
 
 #. Tag: para
 #: Chapter_03.xml:26
@@ -99,25 +111,25 @@
 msgid ""
 "Indicates whether the transaction is in the process of committing or rolling "
 "back."
-msgstr ""
+msgstr "Indique si une transaction est en cours de processus de soumission ou de rolling back."
 
 #. Tag: term
 #: Chapter_03.xml:30
 #, no-c-format
 msgid "actUid"
-msgstr ""
+msgstr "actUid"
 
 #. Tag: para
 #: Chapter_03.xml:31
 #, no-c-format
 msgid "The transaction identifier."
-msgstr ""
+msgstr "L'identifiant de la transaction."
 
 #. Tag: term
 #: Chapter_03.xml:35
 #, no-c-format
 msgid "list"
-msgstr ""
+msgstr "list"
 
 #. Tag: para
 #: Chapter_03.xml:36
@@ -125,7 +137,7 @@
 msgid ""
 "a list of all of the threads currently marked as active within this "
 "transaction."
-msgstr ""
+msgstr "une liste de tous les fils actuellement indiqués 'actifs' dans la transaction."
 
 #. Tag: para
 #: Chapter_03.xml:42
@@ -134,13 +146,13 @@
 "When check returns, the transaction termination will continue. Obviously the "
 "state of the transaction at this point may be different from that when check "
 "was called, e.g., the transaction may subsequently have been committed."
-msgstr ""
+msgstr "Quand 'vérification' retourne, la terminaison de la transaction continue. De toute évidence, à ce point, l'état de la transaction peut être différent de l'état qui correspond au moment où 'vérification' a été appelé, par ex., la transaction a pu avoir été soumise ultérieurement."
 
 #. Tag: title
 #: Chapter_03.xml:47
 #, no-c-format
 msgid "Statistics gathering"
-msgstr ""
+msgstr "Collection de statistiques"
 
 #. Tag: para
 #: Chapter_03.xml:49
@@ -154,6 +166,9 @@
 "during the execution of a transactional application via the <classname>com."
 "arjuna.TxCore.Atomic.TxStats</classname> class:"
 msgstr ""
+"Par défaut, JBossTS ne conserve pas d'archives des transactions. Cependant, en configurant la variable de propriété <literal>com.arjuna.ats.arjuna."
+"coordinator.enableStatistics</literal> à OUI, le service de transaction conservera des informations sur le nombre de transactions créées, et sur leurs devenus. Cette information peut être obtenue au moment de l'exécution d'une application transactionnelle par la classe <classname>com."
+"arjuna.TxCore.Atomic.TxStats</classname>:"
 
 #. Tag: programlisting
 #: Chapter_03.xml:51
@@ -196,12 +211,48 @@
 "\n"
 "}"
 msgstr ""
+"public class TxStats\n"
+"{\n"
+"\n"
+"/**\n"
+"* Returns the number of transactions (top-level and nested)\n"
+"* created so far.\n"
+"*/\n"
+"\n"
+"public static int numberOfTransactions ();\n"
+"\n"
+"/**\n"
+"* Returns the number of nested (sub) transactions created so far.\n"
+"*/\n"
+"\n"
+"public static int numberOfNestedTransactions ();\n"
+"\n"
+"/**\n"
+"* Returns the number of transactions which have terminated with\n"
+"* heuristic outcomes.\n"
+"*/\n"
+"\n"
+"public static int numberOfHeuristics ();\n"
+"\n"
+"/**\n"
+"* Returns the number of committed transactions.\n"
+"*/\n"
+"\n"
+"public static int numberOfCommittedTransactions ();\n"
+"\n"
+"/**\n"
+"* Returns the number of transactions which have rolled back.\n"
+"*/\n"
+"\n"
+"public static int numberOfAbortedTransactions ();\n"
+"\n"
+"}"
 
 #. Tag: title
 #: Chapter_03.xml:57
 #, no-c-format
 msgid "Last resource commit optimisation"
-msgstr ""
+msgstr "L'optimisation des soumissons de dernier ressort"
 
 #. Tag: para
 #: Chapter_03.xml:59
@@ -221,6 +272,8 @@
 "logs the decision to commit and attempts to commit the other resources as "
 "well."
 msgstr ""
+"Dans certains cas, il est nécessaire d'enrôler des participants qui ne sont pas à soumission à deux-phases dans le cadre de la transaction à deux phases. S'il n'y a qu'une seule ressource, alors il n'y a pas besoin d'une soumission en deux phases. Mais, que faire s'il y a plusieurs ressources dans une transaction? Dans ce cas, le LRCO (Last "
+"Resource Commit optimization) entre en jeu. Dans le cas d'une ressource unique à une seule phase (par ex., qui peut seulement être soumise ou roll back sans préparation), il est possible d'être listé dans une transaction à ressources de soumission en deux-phases. Le coordinateur traite la ressource à une-phase légèrement différemment, dans le sens où elle exécute la phase de préparation sur toutes les autres ressources d'abord, si elle a l'intention de soumettre la transaction, elle passe le contrôle à une ressource à une-phase. Si elle soumet, alors le coordinateur enregistre la décision de soumettre et tente de soumettre les autres ressources également."
 
 #. Tag: para
 #: Chapter_03.xml:61
@@ -234,6 +287,8 @@
 "<classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> and give "
 "your participant as the constructor parameter, as shown below:"
 msgstr ""
+"Pour pouvoir utiliser le LRCO, votre participant doit implémenter l'interface <classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname> et être enregistré dans la transaction par l'opération additionelle <command>BasicAction</"
+"command>, puisque cette opération s'attend à des instances de <classname>AbstractRecord</classname>, vous devez une instance <classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> et donner votre participant en tant que paramètre de constructeur, comme ci-dessous:"
 
 #. Tag: programlisting
 #: Chapter_03.xml:63
@@ -254,12 +309,26 @@
 "                \n"
 "                A.commit();"
 msgstr ""
+"try\n"
+"                {\n"
+"                boolean success = false;\n"
+"                AtomicAction A = new AtomicAction();\n"
+"                OnePhase opRes = new OnePhase();  // used OnePhase "
+"interface\n"
+"                \n"
+"                System.err.println(\"Starting top-level action.\");\n"
+"                \n"
+"                A.begin();\n"
+"                A.add(new LastResourceRecord(opRes));\n"
+"                A.add(new ShutdownRecord(ShutdownRecord.FAIL_IN_PREPARE));\n"
+"                \n"
+"                A.commit();"
 
 #. Tag: title
 #: Chapter_03.xml:68
 #, no-c-format
 msgid "Nested transactions"
-msgstr ""
+msgstr "Transactions imbriquées"
 
 #. Tag: para
 #: Chapter_03.xml:70
@@ -275,7 +344,7 @@
 "may be nested. Objects written in this way can then be shared between "
 "application programmers, and <emphasis>TxCore</emphasis> will guarantee "
 "their consistency."
-msgstr ""
+msgstr "Il n'existe pas de constructions spéciales pour l'imbrication de transactions: si une action démarre alors qu'une autre action est en cours, alors elle est automatiquement imbriquée. Cela permet une structure modulaire des applications, par laquelle des objets peuvent être implémentés par le biais d'actions atomiques dans leurs opérations sans que le programmeur d'applications n'ait à se soucier des applications qui les utilise, par ex., si oui ou non les applications vont utiliser des actions atomiques également. Ainsi, dans certaines applications, les actons sont au niveau supérieur, alors que dans d'autres, elles peuvent être imbriquées. Les objets inscrits de cette manière peuvent être partagés entre les programmeurs d'application, et <emphasis>TxCore</emphasis> garantira leur cohérence."
 
 #. Tag: para
 #: Chapter_03.xml:72
@@ -287,7 +356,7 @@
 "commits then the work it has performed will only be committed by the system "
 "if the top-level action commits; if the top-level action aborts then all of "
 "the work will be undone."
-msgstr ""
+msgstr "Si une action imbriquée est interrompue, alors tout son travail sera annulé, malgré que le verrouillage strict en deux-phases implique que tout verrou acquis sera retenu jusqu'à ce que l'action au niveau supérieur soit soumise ou interrompue. Si une action imbriquée est soumise, alors le travail effectué ne sera soumis par le système que si l'action au niveau supérieur est soumise. Si l'action au niveau supérieur est interrompue, alors tout le travail sera annulé."
 
 #. Tag: para
 #: Chapter_03.xml:74
@@ -297,13 +366,13 @@
 "the outcome of the action within which it is nested. This is application "
 "dependant, and allows a programmer to structure atomic actions to contain "
 "faults, undo work, etc."
-msgstr ""
+msgstr "La soumission ou l'interruption d'une action imbriquée n'influence pas automatiquement le résultat d'une action dans laquelle il est imbriqué. C'est en fonction de l'application, et cela permet à un programmeur de structurer des actions atomiques pour contenir les fautes, défaire un travail, etc."
 
 #. Tag: title
 #: Chapter_03.xml:78
 #, no-c-format
 msgid "Asynchronously committing a transaction"
-msgstr ""
+msgstr "Soumettre une transaction de manière asynchrone"
 
 #. Tag: para
 #: Chapter_03.xml:80
@@ -313,7 +382,7 @@
 "in a synchronous manner, i.e., all registered resources will be told to "
 "prepare in order by a single thread, and then they will be told to commit or "
 "rollback. This has several possible disadvantages:"
-msgstr ""
+msgstr "Par défaut, JBossTS exécute le protocole de soumission d'une transaction au niveau supérieur d'une manière synchronisée, par ex., toutes les ressources enregistrées seront invitées à se préparer en ordre par un simple fil, puis seront invitées à être soumises à être repositionnées. Cela comporte plusieurs désavantages possibles:"
 
 #. Tag: para
 #: Chapter_03.xml:83
@@ -324,7 +393,7 @@
 "if an “early” resource in the list of registered resource forces a rollback "
 "during prepare, possibly many prepare operations will have been made "
 "needlessly."
-msgstr ""
+msgstr "Dans le cas de plusieurs ressources enregistrées, l'opération 'prepare' peut être logiquement appelée en parallèle sur chaque ressource. Le désavantage, c'est que si la ressource 'précédente' de la liste des ressources enregistrées force un repositionnement pendant 'prepare', il est possible que plusieurs opérations auront été effectuées pour rien."
 
 #. Tag: para
 #: Chapter_03.xml:84
@@ -333,7 +402,7 @@
 "In the case where heuristic reporting is not required by the application, "
 "the second phase of the commit protocol can be done asynchronously, since "
 "its success or failure is not important."
-msgstr ""
+msgstr "Dans le cas où l'application ne requiert pas de rapport heuristique, la seconde phase du protocole de soumission peut être fait de manière asynchrone, puisque son succès ou son échec ne sont pas importants."
 
 #. Tag: para
 #: Chapter_03.xml:87
@@ -349,12 +418,15 @@
 "second phase of the transaction if knowledge about heuristics outcomes is "
 "not required."
 msgstr ""
+"De ce fait,  <emphasis>JBossTS</emphasis> procure des options d'exécution pour activer des optimisations possibles des opérations d'enfilage. En configurant la variable de l'environnement <literal>com.arjuna.ats."
+"arjuna.coordinator.asyncPrepare</literal> à <literal>OUI</literal>, au cours de la phase 'prepare', un fil distinct sera créé pour chaque participant dans la transaction. En configurant <literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> à"
+"<literal>OUI</literal>, un fil séparé sera créé pour compléter la seconde phase de la transaction si on n'a pas besoin d'information sur les résultats heuristiques."
 
 #. Tag: title
 #: Chapter_03.xml:93
 #, no-c-format
 msgid "Independent top-level transactions"
-msgstr ""
+msgstr "Transactions indépendantes au niveau supérieur"
 
 #. Tag: para
 #: Chapter_03.xml:95
@@ -368,12 +440,14 @@
 "made permanent when it commits and will not be undone if any of the actions "
 "within which it was originally nested abort."
 msgstr ""
+"En plus des actions atomiques imbriquées et supérieures normales, <emphasis>TxCore</"
+"emphasis> prend en charge également des actions au niveau supérieur indépendantes, qui peuvent être utilisées pour relaxer  la sériabilité de manière controlée. Une action indépendante au niveau supérieur peut être exécutés de n'importe où dans une autre action atomique et se comporte exactement comme une action normale au niveau supérieur, c'est à dire que ses résultats sont rendus permanents une fois soumis, et ne seront pas annulés rétroactivement si une des actions dans laquelle ils auraient pu être imbriqué, échoue."
 
 #. Tag: caption
 #: Chapter_03.xml:101
 #, no-c-format
 msgid "Independent Top-Level Action"
-msgstr ""
+msgstr "Action indépendante au niveau supérieur"
 
 #. Tag: para
 #: Chapter_03.xml:104
@@ -386,7 +460,7 @@
 "other actions within the structure. Because of the nature of independent top-"
 "level actions they should be used with caution and only in situations where "
 "their use has been carefully examined."
-msgstr ""
+msgstr "affiche une imbrication typique des actions atomiques, où l'action B est imbriquée dans l'action A. Action C est logiquement imbriquée dans l'action B car son opération Begin est appelée alors que B est active. L'action C est une action indépendante de niveau supérieur, donc C sera soumis ou échouera indépendamment des autres actions au sein de la structure. Compte tenu de la nature des actions au niveau supérieur, on doit doit les utiliser avec attention et seulement dans des situations qui les justifient."
 
 #. Tag: para
 #: Chapter_03.xml:106
@@ -395,13 +469,13 @@
 "Top-level actions can be used within an application by declaring and using "
 "instances of the class <classname>TopLevelTransaction</classname>. They are "
 "used in exactly the same way as other transactions."
-msgstr ""
+msgstr "Les actions au niveau supérieur peuvent être utilisées au sein d'une application en déclarant et en utilisant des instances de la classe <classname>TopLevelTransaction</classname>.<classname>. Elles peuvent être utilisées de la même manière que d'autres transactions."
 
 #. Tag: title
 #: Chapter_03.xml:111
 #, no-c-format
 msgid "Transactions within save_state and restore_state"
-msgstr ""
+msgstr "Transactions dans save_state and restore_state"
 
 #. Tag: para
 #: Chapter_03.xml:113
@@ -417,12 +491,14 @@
 "violate the atomicity properties of the action being committed (aborted) and "
 "is thus discouraged."
 msgstr ""
+"On doit prêter attention lorsqu'on écrit les opérations <command>save_state</command> et "
+"<command>restore_state</command> pour s'assurer qu'aucunes actions atomiques n'aient débuté (soit explicitement dans l'opération, ou implicitement à travers l'utilisation d'autres opérations). Cette restriction survient du fait que <emphasis>TxCore</emphasis> peut appeler <command>restore_state</command> en tant que faisant partie de son processus de soumission, résultant dans une tentative d'exécuter une action atomique pendant les phases de soumission ou d'interruption d'une autre action. Cela peut enfreindre les propriétés d'atomicité de l'action soumise (échouée) et ce n'est donc pas recommandé."
 
 #. Tag: title
 #: Chapter_03.xml:118
 #, no-c-format
 msgid "Example"
-msgstr ""
+msgstr "Exemple"
 
 #. Tag: para
 #: Chapter_03.xml:120
@@ -430,7 +506,7 @@
 msgid ""
 "If we consider the Array example given previously, the set and get "
 "operations could be implemented as shown below."
-msgstr ""
+msgstr "Si on considère l'exemple du tableau donné précédemment, les opérations set and get pourraient être implémentées comme indiqué ci-dessous."
 
 #. Tag: para
 #: Chapter_03.xml:122
@@ -438,7 +514,7 @@
 msgid ""
 "This is a simplification of the code, ignoring error conditions and "
 "exceptions."
-msgstr ""
+msgstr "Il s'agit d'une simplification du code, faisant abstraction des conditions d'erreurs et des exceptions."
 
 #. Tag: programlisting
 #: Chapter_03.xml:124
@@ -487,12 +563,54 @@
 "    return -1;\n"
 "}"
 msgstr ""
+"public boolean set (int index, int value)\n"
+"{\n"
+"    boolean result = false;\n"
+"    AtomicAction A = new AtomicAction();\n"
+"\n"
+"    A.begin();\n"
+"\n"
+"    // We need to set a WRITE lock as we want to modify the state.\n"
+"\n"
+"    if (setlock(new Lock(LockMode.WRITE), 0) == LockResult.GRANTED)\n"
+"    {\n"
+"        elements[index] = value;\n"
+"        if ((value &gt; 0) &amp;&amp;(index &gt; highestIndex))\n"
+"            highestIndex = index;\n"
+"        A.commit(true);\n"
+"        result = true;\n"
+"    }\n"
+"    else\n"
+"        A.rollback();\n"
+"\n"
+"    return result;\n"
+"}\n"
+"\n"
+"public int get (int index)  // assume -1 means error\n"
+"{\n"
+"    AtomicAction A = new AtomicAction();\n"
+"\n"
+"    A.begin();\n"
+"\n"
+"    // We only need a READ lock as the state is unchanged.\n"
+"\n"
+"    if (setlock(new Lock(LockMode.READ), 0) == LockResult.GRANTED)\n"
+"    {\n"
+"        A.commit(true);\n"
+"\n"
+"        return elements[index];\n"
+"    }\n"
+"    else\n"
+"        A.rollback();\n"
+"\n"
+"    return -1;\n"
+"}"
 
 #. Tag: title
 #: Chapter_03.xml:129
 #, no-c-format
 msgid "Garbage collecting objects"
-msgstr ""
+msgstr "Poubelle ramassant des objets"
 
 #. Tag: para
 #: Chapter_03.xml:131
@@ -506,13 +624,13 @@
 "object maintained by an application, <emphasis>TxCore</emphasis> will always "
 "retain its own references to ensure that the object is not garbage collected "
 "until after any transaction has terminated."
-msgstr ""
+msgstr "Les objets Java sont effacés quand la poubelle détermine s'ils ne sont plus utiles. L'effacement d'un objet qui est actuellement sous le contrôle d'une transaction doit être abordé avec soin, car si l'objet est manipulé dans la transaction, son sort est effectivement déterminé par la transaction. Ainsi, en dépit des références à un objet transactionnel contenu dans une application, <emphasis>TxCore</emphasis> gardera ses propres références pour veiller à ce que l'objet ne soit pas considéré comme un déchet collecté en fin de transaction."
 
 #. Tag: title
 #: Chapter_03.xml:136
 #, no-c-format
 msgid "Transaction timeouts"
-msgstr ""
+msgstr "Timeouts de transaction"
 
 #. Tag: para
 #: Chapter_03.xml:138
@@ -523,7 +641,7 @@
 "timeout (in seconds) on a per transaction basis such that if the transaction "
 "has not terminated before the timeout expires it will be automatically "
 "rolled back."
-msgstr ""
+msgstr "Par défaut, les transactions survivent jusqu'à ce qu'elles soient terminées par l'application qui les a créées ou en cas d'interruption. Cependant, il est possible de déterminer in timeout (en secondes) sur la base d'une transaction, de façon à ce que si la transaction n'est pas terminée avant que le timeout expire, elle sera automatiquement représentée."
 
 #. Tag: para
 #: Chapter_03.xml:140
@@ -538,6 +656,8 @@
 "property <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</"
 "literal>. Unless changed the default value is 60 seconds."
 msgstr ""
+"Dans <emphasis>TxCore</emphasis>, la valeur du délai d'activité est fournie au constructeur <classname>AtomicAction</classname> par un paramètre. Si une valeur (par défaut) <literal>AtomicAction.NO_TIMEOUT</literal> est proposée, alors, la transaction sera interrompue automatiquement. Toute autre valeur positive pour le délai d'inactivité est prise en secondes pour la transaction. Une valeur de zéro est considérée comme une valeur de temps d'inactivité global, qui peut être fournie par la propriété <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</"
+"literal>. A moins d'effectuer un changement, la valeur est de 60 secondes."
 
 #. Tag: para
 #: Chapter_03.xml:142
@@ -557,6 +677,9 @@
 "transaction times out. This has the advantage of terminating transactions "
 "early, but may suffer from continually rescheduling the reaper thread."
 msgstr ""
+"Quand une valeur est créée au niveau supérieur avec un délai d'inactivité non-nul, cette valeur est susceptible d'être refoulée si la transaction n'a pas été complétée dans la limite du temps (en secondes) imparti. <emphasis>JBossTS</emphasis> utilise un 'reaper thread' (un fil) qui contrôle toutes les transactions créées localement, et les force à être refoulées quand leur délai d'inactivité échoue. Afin d'éviter que ce fil ne consume le temps d'application, il n'est exécuté que périodiquement. La période de contrôle par défaut est de 120000 millesecondes, mais peut être changée en configurant la variable de propriété <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperTimeout</literal> à une autre valeur valide, en microsecondes. Alternativement, si la valeur de <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperMode</literal> est fixée à <literal>DYNAMIC</literal>, le 'transaction reaper' sera opérationnel quand une transaction ellapse. Ceci a pour avantage de terminer les transactions tôt, mais pourrait souffrir du réordonnancement continu du 'reaper thread'."
 
 #. Tag: para
 #: Chapter_03.xml:144
@@ -571,3 +694,6 @@
 "emphasis>, or <literal>com.arjuna.ats.jts.defaultTimeout</literal> if using "
 "<emphasis>ArjunaJTS</emphasis>, to the required timeout value in seconds."
 msgstr ""
+"Si une valeur 0 est spécifiée pour le délai d'inactivité d'une transaction à niveau supérieur (ou qu'aucun délai d'inactivité n'est spécifié), alors <emphasis>JBossTS</emphasis> n'imposera pas de timeout à la transaction, par ex., et elle sera autorisée à continuer indéfiniement. Ce délai d'inactivité par défaut peut être changé en configurant la variable de propriété <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> quand vous utilisez <emphasis>ArjunaCore</emphasis>, <emphasis>ArjunaJTS</"
+"emphasis>, ou <literal>com.arjuna.ats.jts.defaultTimeout</literal> en combinaison avec <emphasis>ArjunaJTS</emphasis>, avec une valeur de délai d'inactivité requise en secondes."
+

Modified: projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_04.po
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_04.po	2008-07-04 02:17:48 UTC (rev 75364)
+++ projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_04.po	2008-07-04 04:08:42 UTC (rev 75365)
@@ -1,35 +1,38 @@
+# translation of Chapter_04.po to French
 # Language fr-FR translations for JBoss_TS_Programmers_Guide package.
+#
 # Automatically generated, 2008.
-#
+# Corina Roe <croe at redhat.com>, 2008.
 msgid ""
 msgstr ""
-"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\n"
+"Project-Id-Version: Chapter_04\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2008-06-05 22:51+0000\n"
-"PO-Revision-Date: 2008-06-05 22:51+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2008-07-03 12:23+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
 #: Chapter_04.xml:6
 #, no-c-format
 msgid "Hints and tips"
-msgstr ""
+msgstr "Astuces et conseils"
 
 #. Tag: title
 #: Chapter_04.xml:9
 #, no-c-format
 msgid "General"
-msgstr ""
+msgstr "Général"
 
 #. Tag: title
 #: Chapter_04.xml:12
 #, no-c-format
 msgid "Using transactions in constructors"
-msgstr ""
+msgstr "Utiliser les transactions dans constructeurs"
 
 #. Tag: para
 #: Chapter_04.xml:14
@@ -45,7 +48,7 @@
 "however, the constructor transaction commits but is nested because some "
 "other transaction started prior to object creation is running, then the "
 "state will be written only if all of the parent transactions commit."
-msgstr ""
+msgstr "Dans ce manuel, les exemples utilisaient des transactions pour l'implémentation de constructeurs de nouveau objets persistants. Ceci est délibéré car c'est en vue de garantir la propagation correcte de l'état de l'objet dans l'ObjectStore. Souvenez-vous bien que l'état d'un objet modifié persistent est uniquement inscrit dans l'ObjetStore que lorsqu'une transaction est soumise au niveau supérieur. Ainsi, si la transaction su constructeur est au niveau supérieur et qu'elle est soumise, alors l'objet nouvellement créé, est inscrit dans le store et devient disponible immédiatement. Si, cependant, la transaction du constructeur est soumise, mais est imbriquée, parce que d'autres transactions ont été démarrées avant que la création d'objet ne soit exécutée, l'état ne sera inscrit que si toutes les transactions parent sont soumises."
 
 #. Tag: para
 #: Chapter_04.xml:16
@@ -56,13 +59,13 @@
 "transaction is active when the object is created then its state will not be "
 "saved to the store until the next time the object is modified under the "
 "control of some transaction."
-msgstr ""
+msgstr "D'un autre côté, si le constructeur n'utilise pas de transactions, alors, il est possible qu'on se heurte à des incohérences de système. Ainsi, si aucune transaction n'est active quand un objet est créé, alors son état ne sera pas sauvegardé dans le store avant la prochaine occasion quand l'objet sera modifié sous le contrôle de quelque transaction."
 
 #. Tag: para
 #: Chapter_04.xml:18
 #, no-c-format
 msgid "Consider this simple example:"
-msgstr ""
+msgstr "Considérer le simple exemple suivant:"
 
 #. Tag: programlisting
 #: Chapter_04.xml:20
@@ -80,6 +83,17 @@
 "obj1\n"
 "A.commit(true);                                // obj2 saved but obj1 is not"
 msgstr ""
+"AtomicAction A = new AtomicAction();\n"
+"Object obj1;\n"
+"Object obj2;\n"
+"\n"
+"obj1 = new Object();                        // create new object\n"
+"obj2 = new Object(\"old\");                // existing object\n"
+"\n"
+"A.begin(0);\n"
+"obj2.remember(obj1.get_uid());        // obj2 now contains reference to "
+"obj1\n"
+"A.commit(true);                                // obj2 saved but obj1 is not"
 
 #. Tag: para
 #: Chapter_04.xml:22
@@ -99,12 +113,15 @@
 "been saved at the time it was constructed and this inconsistency could not "
 "arise."
 msgstr ""
+"Dans cet exemple, deux objets sont créés en dehors du contrôle de l'action A du niveau supérieur. <literal>obj1</literal> est un nouvel objet; <literal>obj2</literal> un ancien objet existant. Quand l'opération 'remember' (mémoire) de <literal>obj2</"
+"literal> est appelée, l'objet est activé et le Uid de <literal>obj1</literal> est mémorisé. Comme cette action est soumise, l'état persistant de <literal>obj2</literal> pourrait maintenant contenir l'Uid de <literal>obj1</"
+"literal>. Cependant, l'état de <literal>obj1</literal> lui-même n'a pas été sauvegardé, car il n'a pas été manipulé sous le contrôle de quelqu'action. En fait, à moins d'avoir été modifié sous le contrôle de quelqu'action par la suite dans l'application, l'état ne sera sauvegardé. Si, malgré tout, le constructeur a utilisé une action atomique, l'état de <literal>obj1</literal> aura automatiquement été sauvegardé au moment de la construction et cette incohérence n'aurait pas pu survenir."
 
 #. Tag: title
 #: Chapter_04.xml:26
 #, no-c-format
 msgid "More on save_state and restore_state"
-msgstr ""
+msgstr "Plus d'informations sur save_state and restore_state"
 
 #. Tag: para
 #: Chapter_04.xml:28
@@ -116,7 +133,7 @@
 "constructor (particularly if it uses atomic actions). It is important, "
 "therefore, that all of the variables saved by save_state are correctly "
 "initialised."
-msgstr ""
+msgstr "<emphasis>TxCore</emphasis> peut faire appel effectivement à l'opération définie-utilisateur <command>save_state</command> d'un objet à n'importe quel moment au cours de la durée de vie d'un objet, y compris pendant l'exécution du corps (body) du constructeur de l'objet (particulièrement s'il utilise des actions atomiques). Il est important, donc, que toutes les variables sauvegardées par save_state soient correctement initialisées."
 
 #. Tag: para
 #: Chapter_04.xml:30
@@ -132,6 +149,9 @@
 "transaction. This might violate the atomicity properties of the transaction "
 "being committed (aborted) and is thus discouraged."
 msgstr ""
+"On doit prendre des précautions lorsqu'on écrira les opérations <command>save_state</"
+"command> et <command>restore_state</command> pour s'assurer qu'aucune transaction n'ait démarré (que ce soit explicitement dans l'opération ou bien implicitement à travers une autre opération). Cette restriction se présente du fait que <emphasis>TxCore</emphasis> peut faire appel à <command>restore_state</"
+"command> dans le cadre de son processus de soumission, en tentant d'exécuter une transaction atomique, pendant la phase de validation ou d'abandon d'une autre transaction. Ceci peut porter atteinte aux propriétés atomiques de la transaction en cours de soumission (abandon) et n'est donc pas encouragé."
 
 #. Tag: para
 #: Chapter_04.xml:32
@@ -142,12 +162,14 @@
 "methods of user objects to call <command>super.save_state</command> and "
 "<command>super.restore_state</command>."
 msgstr ""
+"Dans le but de prendre en charge le recouvrement d'un plantage pour des objets persistants, il faut que faut que toutes les méthodes <literal>save_state</literal> et <literal>restore_state</literal> d'objets d'utilisateurs, fassent appel à <command>super.save_state</command> et à "
+"<command>super.restore_state</command>."
 
 #. Tag: title
 #: Chapter_04.xml:37
 #, no-c-format
 msgid "Packing Objects"
-msgstr ""
+msgstr "Packing Objects"
 
 #. Tag: para
 #: Chapter_04.xml:39
@@ -160,7 +182,7 @@
 "differently. This is because packing objects brings in the additional "
 "problems of aliasing. That is two different object references may in actual "
 "fact point at the same item. For example:"
-msgstr ""
+msgstr "Tous les types de base dans Java (int, long, etc.) peuvent être sauvegardés ou restaurés à partir d'une instance <classname>Input/OutputObjectState</classname> en utilisant les routines 'pack' (et 'unpack') proposées par <classname>Input/OutputObjectState</classname>. Cependant, ces routines devraient être traitées de manière différente parce que 'packing objects' entraîne des problèmes supplémentaires de dénomination, c'est à dire que deux références distinctes peuvent en fait pointer vers le même objet. Par exemple:"
 
 #. Tag: programlisting
 #: Chapter_04.xml:41
@@ -180,6 +202,19 @@
 "    s2 = s;\n"
 "}"
 msgstr ""
+"public class Test\n"
+"{\n"
+"    public Test (String s);\n"
+"    ...\n"
+"    private String s1;\n"
+"    private String s2;\n"
+"};\n"
+"\n"
+"public Test (String s)\n"
+"{\n"
+"    s1 = s;\n"
+"    s2 = s;\n"
+"}"
 
 #. Tag: para
 #: Chapter_04.xml:43
@@ -192,13 +227,13 @@
 "unpack the two strings into different areas of memory destroying the "
 "original aliasing information. The current version of TxCore will pack and "
 "unpack separate object references."
-msgstr ""
+msgstr "Ici, s1 et s2 pointent tous deux vers la même chaîne de caractères et une implémentation naïve de <command>save_state</command> pourrait aboutir à la double copie de la même chaîne de caractère. De la perspective de <command>save_state</command>, c'est tout simplement inefficace. Cependant, <command>restore_state</command> est maintenant incorrect car deux fils seraient 'unpacked' dans des zones de mémoire séparées, détruisant ainsi le système de nomenclature de l'information de départ. La version actuelle de TxCore va permettre de procéder à ces routines avec des références d'objets séparées."
 
 #. Tag: title
 #: Chapter_04.xml:49
 #, no-c-format
 msgid "Direct use of StateManager"
-msgstr ""
+msgstr "Utilisation directe de StateManager"
 
 #. Tag: para
 #: Chapter_04.xml:51
@@ -211,7 +246,7 @@
 "intervention. However, if only access to <emphasis>TxCore</emphasis>'s "
 "persistence and recovery mechanisms is required, direct derivation of a user "
 "class from <classname>StateManager</classname> is possible."
-msgstr ""
+msgstr "Les exemples présentés dans cet ouvrage, ont toujours dérivé les classes d'utilisateur de <classname>LockManager</classname> et ce pour deux raisons. Tout d'abord, et surtout, les contraintes de sérialisabilité des actions atomiques l'exigent, et deuxièmement, cela réduit le niveau d'intervention du programmeur. Malgré tout, si l'on a seulement besoin d'un accès aux mécanismes de persistance et de recouvrement <emphasis>TxCore</emphasis>, il est possible d'utiliser une dérivation directe d'une classe utilisateur de <classname>StateManager</classname>."
 
 #. Tag: para
 #: Chapter_04.xml:53
@@ -225,6 +260,9 @@
 "classname>'s constructors are effectively identical to those of "
 "<classname>LockManager</classname>."
 msgstr ""
+"Les classes qui dérivent directement de <classname>StateManager</classname> doivent utiliser ses mécanismes de gestion d'états explicitement (ces interactions sont normalement effectuées par <classname>LockManager</classname>). Du point de vue du programmeur, cela aboutit à utiliser correctement les opérations activer, désactiver et modifier, car les constructeurs du <classname>StateManager</"
+"classname> sont en fait identiques à celles de <classname>StateManager</"
+"classname>."
 
 #. Tag: programlisting
 #: Chapter_04.xml:55
@@ -233,6 +271,8 @@
 "boolean activate ()\n"
 "boolean activate (String storeRoot)"
 msgstr ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
 
 #. Tag: para
 #: Chapter_04.xml:57
@@ -247,6 +287,8 @@
 "of the object store to search for the object. A value of null means use the "
 "default store."
 msgstr ""
+"<command>Activate</command> charge un objet de l'ObjectStore. L'UID de l'objet devra déjà avoir été configuré par le constructeur and l'objet doit exister dans le store. Si un objet est lu correctement, alors <command>restore_state</command> est appelé pour construire un objet dans la mémoire."
+"<command>Activate</command> est idempotente, de façon à ce qu'une fois qu'un objet a été activé, les appels qui suivent sont ignorés. Le paramètre représente le nom root de l'ObjetStore qui cherche l'objet. Une valeur nulle signifie 'utiliser le store par défaut'."
 
 #. Tag: programlisting
 #: Chapter_04.xml:59
@@ -255,6 +297,8 @@
 "boolean deactivate ()\n"
 "boolean deactivate (String storeRoot)"
 msgstr ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
 
 #. Tag: para
 #: Chapter_04.xml:61
@@ -265,13 +309,13 @@
 "Objects are only saved if they have been modified since they were activated. "
 "The parameter represents the root name of the object store into which the "
 "object should be saved. A value of null means use the default store."
-msgstr ""
+msgstr "L'inverse d'activer. Appelle tout d'abord <command>save_state</command> pour construire une image compacte de l'objet qui est alors sauvegardé dans l'OBjectStore. Les objets ne sont uniquement sauvegardés que s'ils ont été modifiés depuis qu'ils ont été activés. Le paramètre représente le nom root de l'ObjetStore dans lequel l'objet devrait avoir été sauvegardé. Une valeur nulle signifie 'utiliser le store par défaut'."
 
 #. Tag: programlisting
 #: Chapter_04.xml:63
 #, no-c-format
 msgid "void modified ()"
-msgstr ""
+msgstr "void modified ()"
 
 #. Tag: para
 #: Chapter_04.xml:65
@@ -280,4 +324,5 @@
 "<emphasis>Must</emphasis> be called prior to modifying the object in memory. "
 "If it is not called the object will not be saved in the object store by "
 "deactivate."
-msgstr ""
+msgstr "<emphasis>Doit</emphasis> être appelé avant de modifier l'objet en mémoire. S'il n'est pas appelé, l'objet ne sera pas sauvé dans l'ObjetStore par 'désactiver'."
+

Modified: projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_05.po
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_05.po	2008-07-04 02:17:48 UTC (rev 75364)
+++ projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_05.po	2008-07-04 04:08:42 UTC (rev 75365)
@@ -1,29 +1,32 @@
+# translation of Chapter_05.po to French
 # Language fr-FR translations for JBoss_TS_Programmers_Guide package.
+#
 # Automatically generated, 2008.
-#
+# Corina Roe <croe at redhat.com>, 2008.
 msgid ""
 msgstr ""
-"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\n"
+"Project-Id-Version: Chapter_05\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2008-06-05 22:51+0000\n"
-"PO-Revision-Date: 2008-06-05 22:51+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2008-07-04 11:02+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
 #: Chapter_05.xml:6
 #, no-c-format
 msgid "Tools"
-msgstr ""
+msgstr "Outils"
 
 #. Tag: title
 #: Chapter_05.xml:9
 #, no-c-format
 msgid "Introduction"
-msgstr ""
+msgstr "Introduction"
 
 #. Tag: para
 #: Chapter_05.xml:11
@@ -31,13 +34,13 @@
 msgid ""
 "This chapter explains how to start and use the tools framework and what "
 "tools are available."
-msgstr ""
+msgstr "Ce chapitre explique comment démarrer et utiliser la structure outils et quels outils sont disponibles."
 
 #. Tag: title
 #: Chapter_05.xml:16
 #, no-c-format
 msgid "Starting the Transaction Service tools"
-msgstr ""
+msgstr "Démarrer les outils Service Transaction"
 
 #. Tag: para
 #: Chapter_05.xml:18
@@ -45,13 +48,13 @@
 msgid ""
 "The way to start the transaction service tools differs on the operating "
 "system being used:"
-msgstr ""
+msgstr "La façon de démarrer les outils de service transaction change suivant les systèmes d'exploitation qu'on utilise:"
 
 #. Tag: title
 #: Chapter_05.xml:21
 #, no-c-format
 msgid "Windows"
-msgstr ""
+msgstr "Windows"
 
 #. Tag: para
 #: Chapter_05.xml:23
@@ -59,19 +62,19 @@
 msgid ""
 "Double click on the ‘Start Tools’ link in the JBoss Transaction Service "
 "program group in the start menu."
-msgstr ""
+msgstr "Cliquer deux fois sur le lien 'Start Tools' dans le groupe de programme JBoss Transaction Service du menu de démarrage."
 
 #. Tag: title
 #: Chapter_05.xml:27
 #, no-c-format
 msgid "Unix"
-msgstr ""
+msgstr "Unix"
 
 #. Tag: para
 #: Chapter_05.xml:29
 #, no-c-format
 msgid "Start a bash shell and type:"
-msgstr ""
+msgstr "Démarrer une shell bash et taper:"
 
 #. Tag: programlisting
 #: Chapter_05.xml:34
@@ -80,6 +83,8 @@
 "cd &lt;JBossTS INSTALL DIRECTORY&gt;\n"
 "./run-tools.sh"
 msgstr ""
+"cd &lt;JBossTS INSTALL DIRECTORY&gt;\n"
+"./run-tools.sh"
 
 #. Tag: para
 #: Chapter_05.xml:36
@@ -90,18 +95,20 @@
 "Service</emphasis>. At the top of the window you will notice a menu bar. "
 "This menu bar has four items:"
 msgstr ""
+"Une fois que vous avez fait cela, la fenêtre-outils apparaîtra. C'est l'aire de lancement pour tous les outils envoyés dans <emphasis>JBoss Transaction "
+"Service</emphasis>. En haut de la fenêtre, vous remarquerez une barre de menu qui comporte quatre éléments:"
 
 #. Tag: title
 #: Chapter_05.xml:39
 #, no-c-format
 msgid "The <menuchoice><guimenu>File</guimenu></menuchoice> Menu"
-msgstr ""
+msgstr "Le menu <menuchoice><guimenu>Fichiers</guimenu></menuchoice> "
 
 #. Tag: term
 #: Chapter_05.xml:44
 #, no-c-format
 msgid "Open JMX Browser"
-msgstr ""
+msgstr "Open JMX Browser"
 
 #. Tag: para
 #: Chapter_05.xml:45
@@ -109,13 +116,13 @@
 msgid ""
 "This displays the JMX browser window (see ***Using the JMX Browser for more "
 "information on how to use the JMX browser)."
-msgstr ""
+msgstr "Ceci affiche la fenêtre du navigateur JMX (voir ***Utiliser le navigateur JMX pour davantage d'informations sur la façon d'utiliser le navigateur JMX)."
 
 #. Tag: term
 #: Chapter_05.xml:49
 #, no-c-format
 msgid "Open Object Store Browser"
-msgstr ""
+msgstr "Ouvrir le navigateur ObjectStore"
 
 #. Tag: para
 #: Chapter_05.xml:50
@@ -124,13 +131,13 @@
 "This displays the JBossTS Object Store browser window (see ***Using the "
 "Object Store Browser for more information on how to use the Object Store "
 "browser)."
-msgstr ""
+msgstr "Ceci affiche la fenêtre du navigateur JBossTS Object Store (voir ***Utiliser le navigateur JMX pour davantage d'informations sur la façon d'utiliser le navigateur JMX)."
 
 #. Tag: term
 #: Chapter_05.xml:54
 #, no-c-format
 msgid "Settings"
-msgstr ""
+msgstr "Settings (Paramètres)"
 
 #. Tag: para
 #: Chapter_05.xml:55
@@ -138,13 +145,13 @@
 msgid ""
 "This option opens the settings dialog which lets you configure the different "
 "tools available."
-msgstr ""
+msgstr "Cette option ouvre le dialogue de paramètres qui vous permet de configurer les différents outils disponibles."
 
 #. Tag: term
 #: Chapter_05.xml:58
 #, no-c-format
 msgid "Exit"
-msgstr ""
+msgstr "Exit (Sortie)"
 
 #. Tag: para
 #: Chapter_05.xml:59
@@ -152,19 +159,19 @@
 msgid ""
 "This closes the tools window and exits the application, any unsaved/"
 "unconfirmed changes will be lost."
-msgstr ""
+msgstr "Ceci ferme la fenêtre d'outils et fait disparaître l'application, tous changements non sauvegardés/non confirmés, seront perdus."
 
 #. Tag: title
 #: Chapter_05.xml:68
 #, no-c-format
 msgid "The <menuchoice><guimenu>Performance</guimenu></menuchoice> Menu"
-msgstr ""
+msgstr "Le menu <menuchoice><guimenu>Performance</guimenu></menuchoice>"
 
 #. Tag: term
 #: Chapter_05.xml:72
 #, no-c-format
 msgid "Open"
-msgstr ""
+msgstr "Open (Ouverture)"
 
 #. Tag: para
 #: Chapter_05.xml:73
@@ -172,13 +179,13 @@
 msgid ""
 "This opens a performance window – see <xref linkend=\"Performance_Tool\"/> "
 "for more information on the performance tool."
-msgstr ""
+msgstr "Ceci ouvre la fenêtre de performance - voir <xref linkend=\"Performance_Tool\"/> pour davantage d'informations sur l'outil performance."
 
 #. Tag: term
 #: Chapter_05.xml:77
 #, no-c-format
 msgid "Close All"
-msgstr ""
+msgstr "Close All (Tout fermer)"
 
 #. Tag: para
 #: Chapter_05.xml:78
@@ -187,31 +194,32 @@
 "this closes all of the currently open performance windows – see <xref "
 "linkend=\"Performance_Tool\"/> for more information on the performance tool."
 msgstr ""
+"Ceci ferme toutes les fenêtres performande - voir <xref "
+"linkend=\"Performance_Tool\"/> pour plus d'informations sur l'outil de performance."
 
 #. Tag: title
 #: Chapter_05.xml:87
 #, no-c-format
 msgid "The <menuchoice><guimenu>Window</guimenu></menuchoice> Menu"
-msgstr ""
+msgstr "Le menu <menuchoice><guimenu>Window</guimenu></menuchoice> "
 
 #. Tag: term
 #: Chapter_05.xml:90
 #, no-c-format
 msgid "Cascade Windows"
-msgstr ""
+msgstr "Cascade Windows (fenêtres en cascade)"
 
 #. Tag: para
 #: Chapter_05.xml:91
 #, no-c-format
-msgid ""
-"This arranges the windows in a diagonal line to you find a specific window."
-msgstr ""
+msgid "This arranges the windows in a diagonal line to you find a specific window."
+msgstr "Ceci organise les fenêtres sur une diagonale afin de vous permettre de trouver une fenêtre en particulier."
 
 #. Tag: term
 #: Chapter_05.xml:95
 #, no-c-format
 msgid "1. XXXXXXX"
-msgstr ""
+msgstr "1. XXXXXXX"
 
 #. Tag: para
 #: Chapter_05.xml:96
@@ -220,31 +228,31 @@
 "For each window currently visible an extra menu option will be available "
 "here. Selecting this menu option will bring the associated window to the "
 "front of the desktop."
-msgstr ""
+msgstr "Pour chaque fenêtre visible concuremment, une option de menu supplémentaire sera disponible ici. Sélectionner cette option du menu ramenera les fenêtres associées à l'avant du desktop."
 
 #. Tag: title
 #: Chapter_05.xml:104
 #, no-c-format
 msgid "The <menuchoice><guimenu>Help</guimenu></menuchoice> Menu"
-msgstr ""
+msgstr "Le menu <menuchoice><guimenu>Help</guimenu></menuchoice> "
 
 #. Tag: term
 #: Chapter_05.xml:107
 #, no-c-format
 msgid "About"
-msgstr ""
+msgstr "A propos de "
 
 #. Tag: para
 #: Chapter_05.xml:108
 #, no-c-format
 msgid "This displays the about window containing the product information."
-msgstr ""
+msgstr "Ceci affiche la fenêtre 'A propos de' qui contient les informations produits."
 
 #. Tag: title
 #: Chapter_05.xml:119
 #, no-c-format
 msgid "Using the Performance Tool"
-msgstr ""
+msgstr "Utiliser l'outil de performance"
 
 #. Tag: para
 #: Chapter_05.xml:121
@@ -254,7 +262,7 @@
 "the transaction service. This information is gathered using the Performance "
 "JMX bean which means that the transaction service needs to be integrated "
 "into an Application Server to give any performance information."
-msgstr ""
+msgstr "L'outil de performance peut être utilisé pour afficher les informations sur la performance du service de transactions. Cette information est collectée en utilisant le Bean Performance JMX, ce qui signifie que le service de transaction a besoin d'être intégré dans un serveur d'applications pour pouvoir donner une information de performance."
 
 #. Tag: para
 #: Chapter_05.xml:123
@@ -265,6 +273,8 @@
 "<menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; "
 "<menuchoice><guimenuitem>Open</guimenuitem></menuchoice>"
 msgstr ""
+"L'information sur la performance est affiché par un graphe multi-séries. Pour voir ce graphe, ouvrir tout simplement une fenêtre de performance en sélectionnant <menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; "
+"<menuchoice><guimenuitem>Open</guimenuitem></menuchoice>"
 
 #. Tag: para
 #: Chapter_05.xml:125
@@ -272,37 +282,37 @@
 msgid ""
 "The window now on screen contains a multi-serise graph which can display the "
 "following information:"
-msgstr ""
+msgstr "Cette fenêtre, qui apparaît maintenant sur l'écran, contient un graphe multi-séries, qui peut afficher les informations suivantes:"
 
 #. Tag: para
 #: Chapter_05.xml:130
 #, no-c-format
 msgid "Number of transactions."
-msgstr ""
+msgstr "Nombre de transactions."
 
 #. Tag: para
 #: Chapter_05.xml:135
 #, no-c-format
 msgid "Number of committed transactions."
-msgstr ""
+msgstr "Nombre de transactions soumises"
 
 #. Tag: para
 #: Chapter_05.xml:140
 #, no-c-format
 msgid "Number of aborted transactions."
-msgstr ""
+msgstr "Nombres de transactions abandonnées."
 
 #. Tag: para
 #: Chapter_05.xml:145
 #, no-c-format
 msgid "Number of nested transactions."
-msgstr ""
+msgstr "Nombre de transactions imbriquées."
 
 #. Tag: para
 #: Chapter_05.xml:150
 #, no-c-format
 msgid "Number of heuristics raised."
-msgstr ""
+msgstr "Nombres d'heuristiques soulevés."
 
 #. Tag: para
 #: Chapter_05.xml:155
@@ -310,7 +320,7 @@
 msgid ""
 "To turn these series on and off simply select the menu option from the "
 "series menu."
-msgstr ""
+msgstr "Pour actionner ou éteindre ces séries, sélectionnez tout simplement l'option menu du menu séries."
 
 #. Tag: para
 #: Chapter_05.xml:158
@@ -319,7 +329,7 @@
 "When series are turned on they appear in the legend at the bottom of the "
 "graph. The colour next to the series name (for example, Transactions "
 "Created) is the colour of the line representing that data."
-msgstr ""
+msgstr "Lorsque les séries sont actionnées, elles apparaissent dans la légende en bas du graphe. La couleur qui apparaît à côté de nom des séries (comme par exemple, Transactions créées) est la couleur de la ligne qui représente ces données."
 
 #. Tag: para
 #: Chapter_05.xml:161
@@ -327,7 +337,7 @@
 msgid ""
 "The data shown is graphed against time. The Y-axis represents the number of "
 "transactions and the X-axis represents time."
-msgstr ""
+msgstr "Les données qui apparaissent sont paramétrées en fonction de la durée. L'axe-Y représente le nombre de transactions et l'axe-X la durée."
 
 #. Tag: para
 #: Chapter_05.xml:164
@@ -339,13 +349,13 @@
 "file for importing the data into a spreadsheet application using the "
 "<menuchoice><guimenu>Save to .csv</guimenu></menuchoice> menu option from "
 "the <menuchoice><guimenu>Data</guimenu></menuchoice> menu."
-msgstr ""
+msgstr "A tout point, l'échantillonnage de données peut être arrêté ou redémarré en utilisant le menu <menuchoice><guimenu>Sampling</guimenu></menuchoice> et les données qui apparaissent actuellement dans le graphe peuvent être sauvegardées dans un fichier CSV (Comma Separate Values)"
 
 #. Tag: title
 #: Chapter_05.xml:169
 #, no-c-format
 msgid "Using the JMX Browser"
-msgstr ""
+msgstr "Utiliser le navigateur JMX"
 
 #. Tag: para
 #: Chapter_05.xml:170
@@ -356,6 +366,9 @@
 "Browser</guimenu></menuchoice> option. The JMX browser window will then be "
 "displayed."
 msgstr ""
+"Pour ouvrir la fenêtre du navigateur JMX, cliquer sur le menu <menuchoice><guimenu>File</"
+"guimenu></menuchoice>, puis cliquer sur l'option <menuchoice><guimenu>Open JMX "
+"Browser</guimenu></menuchoice>. La fenêtre du navigateur JMX apparaîtra."
 
 #. Tag: para
 #: Chapter_05.xml:173
@@ -367,43 +380,43 @@
 "about the currently selected MBean. To select an MBean just left-click it "
 "with the mouse and it will become highlighted. The information displayed in "
 "the details panel is as follows:"
-msgstr ""
+msgstr "La fenêtre est organisée en deux sections principales: l'affichage des détails et l'affichage MBean. L'affichage MBean affiche les MBeans exposés par le serveur MBean. Ils sont groupés par nom de domaine. L'affichage des détails affiche des informations sur le MBean couramment sélectionné. Pour sélectionner un MBean, cliquer à gauche avec la souris et il sera mis en évidence. L'information apparaîtra comme suit:"
 
 #. Tag: para
 #: Chapter_05.xml:178
 #, no-c-format
 msgid "The total number of MBeans registered on this server."
-msgstr ""
+msgstr "Le nombre total de MBeans enregistrés sur ce serveur."
 
 #. Tag: para
 #: Chapter_05.xml:183
 #, no-c-format
 msgid "The number of constructors exposed by this MBean."
-msgstr ""
+msgstr "Le nombre de constructeurs exposés par ce MBean."
 
 #. Tag: para
 #: Chapter_05.xml:188
 #, no-c-format
 msgid "The number of attributes exposed by this MBean."
-msgstr ""
+msgstr "Le nombre d'attributs exposés par ce MBean."
 
 #. Tag: para
 #: Chapter_05.xml:193
 #, no-c-format
 msgid "The number of operations exposed by this MBean."
-msgstr ""
+msgstr "Le nombre d'opérations exposées par ce MBean."
 
 #. Tag: para
 #: Chapter_05.xml:198
 #, no-c-format
 msgid "The number of notifications exposed by this MBean."
-msgstr ""
+msgstr "Le nombre de notifications exposées par ce MBean."
 
 #. Tag: para
 #: Chapter_05.xml:203
 #, no-c-format
 msgid "A brief description of the MBean."
-msgstr ""
+msgstr "Une brève description du MBean."
 
 #. Tag: para
 #: Chapter_05.xml:208
@@ -413,13 +426,13 @@
 "when clicked displays the attributes and operations exposed by this MBean. "
 "From there you can view readable attributes, alter writeable attributes and "
 "invoke operations."
-msgstr ""
+msgstr "Si vous cliquez sur le lien suivant: <menuchoice><guimenu>View</guimenu></menuchoice>, vous verrez les attributs et les opérations exposées par ce MBean. A partir de cela, vous pourrez voir les attributs lecture, modifier les attributs écriture et appeler les opérations."
 
 #. Tag: title
 #: Chapter_05.xml:212
 #, no-c-format
 msgid "Using Attributes and Operations"
-msgstr ""
+msgstr "Utiliser les attributs et les opérations"
 
 #. Tag: para
 #: Chapter_05.xml:213
@@ -435,7 +448,7 @@
 "a more suitable editing method. If the attribute type is a JMX object name "
 "then clicking this button will display the JMX attributes and operations for "
 "that object."
-msgstr ""
+msgstr "Quand vous cliquez sur le lien <menuchoice><guimenu>View</guimenu></menuchoice>, la fenêtre Affichage des attributs et opérations JMX, apparaît. A partir de là, vous pouvez voir tous les attributs lecture exposés par le MBean sélectionné. Vous pouvez également modifier des attributs écriture. Si un attribut est lecture-seule, alors vous ne pourrez pas modifier la valeur des attributs. Pour altérer la valeur d'un attribut, effectuez un double cliquage sur la valeur existante et saisissez une nouvelle valeur. Si le bouton <guibutton>...</guibutton> est activé, vous pouvez cliquer la dessus pour voir une méthode d'édition plus appropriée. Si le type d'attribut est un nom d'objet JMX, alors cliquez sur ce bouton pour afficher les attributs et les opérations JMX pour cet objet."
 
 #. Tag: para
 #: Chapter_05.xml:216
@@ -445,7 +458,7 @@
 "refresh the attribute values. If an exception occurs while retrieving the "
 "value of an attribute the exception will be displayed in place of the "
 "attributes value."
-msgstr ""
+msgstr "A tout moment, vous pouvez cliquer le bouton <guibutton>Refresh</guibutton> pour rafraîchir les valeurs des attributs. En cas d'exception au moment du prélèvement de la valeur d'un attribut, l'exception sera affichée à la place de la valeur des attributs."
 
 #. Tag: para
 #: Chapter_05.xml:219
@@ -460,20 +473,19 @@
 "specify JMX attribute values. Once you have specified a value for each of "
 "the parameters click the <guibutton>Invoke</guibutton> button to perform the "
 "invocation."
-msgstr ""
+msgstr "Vous pouvez aussi appeler des opérations via un Mbean. Une liste des opérations exposées par un MBean appaîtra sous la liste des attributs. Pour appeler une opération, sélectionner la simplement à partir de la liste et cliquer sur le bouton <guibutton>Invoke</guibutton>. Si l'opération nécessite des paramètres, une fenêtre supplémentaire apparaîtra, à partir de laquelle, vous pourrez spécifier les valeurs requises pour chaque paramètre. Vous spécifiez les valeurs d'un paramètre de la même manière que vous spécifiez les valeurs des attributs JMX. Une fois que vous avez spécifié la valeur de chaque paramètre, cliquer sur le bouton <guibutton>Invoke</guibutton> pour l'appel."
 
 #. Tag: para
 #: Chapter_05.xml:222
 #, no-c-format
-msgid ""
-"Once the method invocation has completed its return value will be displayed."
-msgstr ""
+msgid "Once the method invocation has completed its return value will be displayed."
+msgstr "Après que la méthode d'invocation (appel) est terminée, la valeur de retour s'affichera."
 
 #. Tag: title
 #: Chapter_05.xml:227
 #, no-c-format
 msgid "Using the Object Store Browser"
-msgstr ""
+msgstr "Utiliser le navigateur ObjectStore"
 
 #. Tag: para
 #: Chapter_05.xml:228
@@ -483,13 +495,13 @@
 "<menuchoice><guimenu>File</guimenu></menuchoice> menu and then click the "
 "<menuchoice><guimenu>Open Object Store Browser</guimenu></menuchoice> "
 "option. The Object Store browser window will then be displayed."
-msgstr ""
+msgstr "Pour ouvrir la fenêtre du navigateur ObjectStore, cliquer sur le menu <menuchoice><guimenu>File</guimenu></menuchoice>, puis cliquer sur l'option <menuchoice><guimenu>Open Object Store Browser</guimenu></menuchoice>. La fenêtre du navigateur ObjectStore s'affichera."
 
 #. Tag: para
 #: Chapter_05.xml:231
 #, no-c-format
 msgid "The object store browser window is split into four sections:"
-msgstr ""
+msgstr "La fenêtre du navigateur de l'ObjectStore est divisée en quatre sections:"
 
 #. Tag: para
 #: Chapter_05.xml:236
@@ -498,7 +510,7 @@
 "Object Store Roots - this is a pull down of the currently avaliable object "
 "store roots. Selecting an option from the list will repopulate the hierachy "
 "view with the contents of the selected root."
-msgstr ""
+msgstr "Object Store Roots - Il s'agit d'une liste déroulante des roots de l'ObjectStore disponible actuellement. En sélectionnant une option dans la liste, vous faites apparaître la hiérarchie de roots selectionnées."
 
 #. Tag: para
 #: Chapter_05.xml:241
@@ -507,7 +519,7 @@
 "Object Store Hierarchy – this is a tree which shows the current object store "
 "hierarchy. Selecting a node from this tree will display the objects stored "
 "in that location."
-msgstr ""
+msgstr "Object Store Hierarchy – Il s'agit d'un arbre qui montre la hiérarchie des ObjectStore actuels. En sélectionnant un node de cet arbre, les objets hébergés à cet endroit s'afficheront."
 
 #. Tag: para
 #: Chapter_05.xml:246
@@ -515,7 +527,7 @@
 msgid ""
 "Objects – this is a list of icons which represent the objects stored in the "
 "selected location."
-msgstr ""
+msgstr "Objects – il s'agit d'une liste d'icônes qui représente les objets hébergés dans la location sélectionnée."
 
 #. Tag: para
 #: Chapter_05.xml:251
@@ -524,13 +536,13 @@
 "Object Details – this shows information about the currently selected object "
 "(only if the object’s type is known to the state viewer repository see "
 "Writing an OSV for information on how to write a object state viewers)."
-msgstr ""
+msgstr "Object Details – montre des informations sur l'objet actuellement sélectionné (seulement si le type d'objet est connu dans le dépôt des états, voir Rédiger un OSV pour obtenir des informations sur la façon d'écrire un OSV)."
 
 #. Tag: title
 #: Chapter_05.xml:258
 #, no-c-format
 msgid "Object State Viewers (OSV)"
-msgstr ""
+msgstr "Object State Viewers (OSV)"
 
 #. Tag: para
 #: Chapter_05.xml:259
@@ -545,13 +557,13 @@
 "only, etc). It is also possible to write your own OSVs which can be used to "
 "display information about object types you have defined. This subject is "
 "covered next."
-msgstr ""
+msgstr "Quand un objet est sélectionné dans une sous-fenêtre d'objets, l'OSV de cet objet est appelé. Le travail de l'OSV est de rendre l'information disponible à l'utilisateur, par l'intermédiaire de son interface, pour montrer les informations qui se rapportent à un objet particulier sélectionné. Distribué avec les outils standards dans une OSV pour Actions Atomiques, l'OSV affiche des informations sur les Abstract Records dans ses diverses listes (par ex. heuristique, échoué, lecture-seule, etc.). Aussi, il est possible d'écrire sa propre OSV qui peut être utilisé pour afficher des informations sur les types d'objets que vous aurez définis. Nous couvrirons ce sujet par la suite."
 
 #. Tag: title
 #: Chapter_05.xml:263
 #, no-c-format
 msgid "Writing an OSV"
-msgstr ""
+msgstr "Rédiger un OSV"
 
 #. Tag: para
 #: Chapter_05.xml:264
@@ -560,14 +572,13 @@
 "Writing an OSV plugin allows you to extend the capabilities of the Object "
 "Store browser to show the state of user defined abstract records. An OSV "
 "plug-in is simply a class which implements the interface:"
-msgstr ""
+msgstr "Rédiger un module externe (plugin) OSV vous permet d'étendre les capacités du navigateur ObjectStore pour l'affichage des états des enregistrements d'abstracts définis utilisateur. Un plug-in OSV est tout simplement une classe qui implémente une interface:"
 
 #. Tag: code
 #: Chapter_05.xml:269
 #, no-c-format
-msgid ""
-"com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
-msgstr ""
+msgid "com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
+msgstr "com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
 
 #. Tag: para
 #: Chapter_05.xml:271
@@ -576,7 +587,7 @@
 "It must be packaged in a JAR within the plugins directory. This example "
 "shows how to create an OSV plugin for an abstract record subclass which "
 "looks as follows:"
-msgstr ""
+msgstr "Il doit être présenté dans un JAR dans le répertoire des plugins. Cet exemple montre comment créer un plugin OSV pour une sous-classe d'enregistrement d'abstract, qui ressemble à ce qui suit:"
 
 #. Tag: screen
 #: Chapter_05.xml:274
@@ -636,6 +647,59 @@
 "        }\n"
 "}"
 msgstr ""
+"public class SimpleRecord extends AbstractRecord\n"
+"{\n"
+"        private int _value = 0;\n"
+"        \n"
+"        .....\n"
+"        \n"
+"        public void increase()\n"
+"        {\n"
+"                _value++;\n"
+"        }\n"
+"        \n"
+"        public int get()\n"
+"        {\n"
+"                return _value;\n"
+"        }\n"
+"        \n"
+"        public String type()\n"
+"        {\n"
+"                return “/StateManager/AbstractRecord/SimpleRecord”;\n"
+"        }\n"
+"        \n"
+"        public boolean restore_state(InputObjectState os, int i)\n"
+"        {\n"
+"                boolean returnValue = true;\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        _value = os.unpackInt();\n"
+"                }\n"
+"                catch (java.io.IOException e)\n"
+"                {\n"
+"                        returnValue = false;\n"
+"                }\n"
+"        \n"
+"                return returnValue;\n"
+"        }\n"
+"        \n"
+"        public boolean save_state(OutputObjectState os, int i)\n"
+"        {\n"
+"                boolean returnValue = true;\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        os.packInt(_value);\n"
+"                }\n"
+"                catch (java.io.IOException e)\n"
+"                {\n"
+"                        returnValue = false;\n"
+"                }\n"
+"        \n"
+"                return returnValue;\n"
+"        }\n"
+"}"
 
 #. Tag: para
 #: Chapter_05.xml:275
@@ -646,6 +710,8 @@
 "into an instance of our abstract record and call <methodname>getValue()</"
 "methodname>. The following is the object store browser plug-in source code:"
 msgstr ""
+"Quand cet enregistrement d'abstract est affiché par le navigateur de l'ObjectStore, il serait bon de pouvoir apercevoir la valeur courante. C'est facile à faire car nous pouvons lire l'état en tant qu'instance de l'enregistrement de notre abstract et appeler <methodname>getValue()</"
+"methodname>. Voici le code de source plug-in du navigateur de l'ObjectStore:"
 
 #. Tag: screen
 #: Chapter_05.xml:278
@@ -711,6 +777,65 @@
 "        }\n"
 "}"
 msgstr ""
+"public class SimpleRecordOSVPlugin implements StateViewerInterface\n"
+"{\n"
+"        /**\n"
+"        * A uid node of the type this viewer is registered against has been "
+"expanded.\n"
+"        * @param os\n"
+"        * @param type\n"
+"        * @param manipulator\n"
+"        * @param node\n"
+"        * @throws ObjectStoreException\n"
+"        */\n"
+"        public void uidNodeExpanded(ObjectStore os,\n"
+"        String type,\n"
+"        ObjectStoreBrowserTreeManipulationInterface \n"
+"        manipulator,\n"
+"        UidNode node,\n"
+"        StatePanel infoPanel)\n"
+"        throws ObjectStoreException\n"
+"        {\n"
+"                // Do nothing\n"
+"        }\n"
+"        \n"
+"        /**\n"
+"        * An entry has been selected of the type this viewer is registered "
+"against.\n"
+"        *\n"
+"        * @param os\n"
+"        * @param type\n"
+"        * @param uid\n"
+"        * @param entry\n"
+"        * @param statePanel\n"
+"        * @throws ObjectStoreException\n"
+"        */\n"
+"        public void entrySelected(ObjectStore os,\n"
+"        String type,\n"
+"        Uid uid,\n"
+"        ObjectStoreViewEntry entry,\n"
+"        StatePanel statePanel) \n"
+"        throws ObjectStoreException\n"
+"        {\n"
+"                SimpleRecord rec = new SimpleRecord();\n"
+"        \n"
+"                if ( rec.restore_state( os.read_committed(uid, type), "
+"ObjectType.ANDPERSISTENT ) )\n"
+"                {\n"
+"                        statePanel.setData( “Value”, rec.getValue() );\n"
+"                }\n"
+"        }\n"
+"        \n"
+"        /**\n"
+"        * Get the type this state viewer is intended to be registered "
+"against.\n"
+"        * @return\n"
+"        */\n"
+"        public String getType()\n"
+"        {\n"
+"                return “/StateManager/AbstractRecord/SimpleRecord”;\n"
+"        }\n"
+"}"
 
 #. Tag: para
 #: Chapter_05.xml:279
@@ -726,7 +851,7 @@
 "methods the StatePanel is used to display information regarding the state of "
 "the object. The state panel has the following methods that assist in display "
 "this information:"
-msgstr ""
+msgstr "On appelle la méthode <methodname>uidNodeExpanded</methodname> quand un UID (Identification unique) représentant un certain type, s'étend à l'arbre hiérarchique de l'ObjectStore. Ce n'est pas requis pour ce plugin car l'enregistrement de l'abstract n'est pas visible dans l'ObjectStore directement. On ne peut le voir qu'à partir d'une des listes de l'action atomique. La méthode <methodname>entrySelected</methodname> est invoquée quand une saisie est sélectionné dans l'Object View qui représente un objet du type donné. Dans les deux méthodes, le StatePanel est utilisé pour afficher des informations sur l'état de l'objet. L'affichage de l'objet comprend les méthodes suivantes qui assistent l'affichage de cette information:"
 
 #. Tag: para
 #: Chapter_05.xml:284
@@ -734,7 +859,7 @@
 msgid ""
 "<methodname>setInfo(String info)</methodname>: This method can be used to "
 "show general information."
-msgstr ""
+msgstr "<methodname>setInfo(String info)</methodname>: Cette méthode peut être utilisée pour montrer des informations générales."
 
 #. Tag: para
 #: Chapter_05.xml:289
@@ -743,7 +868,7 @@
 "<methodname>setData(String name, String value)</methodname>: This method is "
 "used to put information into the table which is displayed by the object "
 "store browser tool."
-msgstr ""
+msgstr "<methodname>setData(String name, String value)</methodname>: cette méthode est utilisée pour mettre des informations dans la table qui est affichée par l'outil de navigation de l'ObjectStore."
 
 #. Tag: para
 #: Chapter_05.xml:294
@@ -755,6 +880,8 @@
 "up to the plug-in developer to decide how to display this further "
 "information."
 msgstr ""
+"<methodname>enableDetailsButton(DetailsButtonListener listener)</"
+"methodname>: cette méthode est utilisée pour activer le bouton détails. L'interface d'écoute permet à un plug-in d'être informé lorsqu'un bouton est pressé. C'est au développeur du plug-in de décider d'afficher cette information supplémentaire."
 
 #. Tag: para
 #: Chapter_05.xml:299
@@ -763,7 +890,7 @@
 "In this example we read the state from the object store and use the value "
 "returned by getValue() to put an entry into the state panel table. The "
 "getType() method returns the type this plug-in is to be registered against."
-msgstr ""
+msgstr "Dans cet exemple, on peut lire l'état à partir de l'OBjectStore et on peut utiliser la valeur de retour de getValue() pour mettre une entrée dans la table d'affichage des états. La méthode getType() retourne le type sous-lequel ce plug-in doit être enregistré."
 
 #. Tag: para
 #: Chapter_05.xml:302
@@ -776,6 +903,8 @@
 "can be performed using an <ulink url=\"http://ant.apache.org\">Apache ANT</"
 "ulink> script, as follows:"
 msgstr ""
+"Pour ajouter ce plug-in au navigateur de l'ObjectStore, il faut le présenter dans le fichier JAR (Archives Java) avec le nom qui comporte le préfixe 'osbv-'. Le fichier JAR doit comprendre certaines informations dans le fichier manifeste, qui indiquent au navigateur de l'ObjectStore quelles sont les classes de plug-ins. Pour cela, utiliser le script <ulink url=\"http://ant.apache.org\">Apache ANT</"
+"ulink>, comme suit:"
 
 #. Tag: screen
 #: Chapter_05.xml:305
@@ -791,6 +920,15 @@
 "        &lt;/manifest&gt;\n"
 "&lt;/jar&gt;"
 msgstr ""
+"&lt;jar jarfile=\"osbv-simplerecord.jar\"&gt;\n"
+"        &lt;fileset dir=\"build\" includes=\"*.class”/&gt;\n"
+"        &lt;manifest&gt;\n"
+"                &lt;section name=\"arjuna-tools-objectstorebrowser\"&gt;\n"
+"                        &lt;attribute name=\"plugin-classname-1\" value=\" "
+"SimpleRecordOSVPlugin \"/&gt;\n"
+"                &lt;/section&gt;\n"
+"        &lt;/manifest&gt;\n"
+"&lt;/jar&gt;"
 
 #. Tag: para
 #: Chapter_05.xml:306
@@ -800,3 +938,6 @@
 "file it just needs to be placed in the <emphasis>bin/tools/plugins</"
 "emphasis> directory."
 msgstr ""
+"Une fois que JAR est créé avec l'information qui convient dans le fichier manifeste, on a juste besoin de le placer dans le répertoire <emphasis>bin/tools/plugins</"
+"emphasis>."
+

Modified: projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_06.po
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_06.po	2008-07-04 02:17:48 UTC (rev 75364)
+++ projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_06.po	2008-07-04 04:08:42 UTC (rev 75365)
@@ -1,36 +1,38 @@
+# translation of Chapter_06.po to French
 # Language fr-FR translations for JBoss_TS_Programmers_Guide package.
+#
 # Automatically generated, 2008.
-#
+# Corina Roe <croe at redhat.com>, 2008.
 msgid ""
 msgstr ""
-"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\n"
+"Project-Id-Version: Chapter_06\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2008-06-05 22:51+0000\n"
-"PO-Revision-Date: 2008-06-05 22:51+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2008-07-04 12:19+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
 #: Chapter_06.xml:6
 #, no-c-format
 msgid "Constructing a Transactional objects for Java application"
-msgstr ""
+msgstr "Construire des objets transactionnels pour l'application Java"
 
 #. Tag: title
 #: Chapter_06.xml:9
 #, no-c-format
 msgid "Application construction"
-msgstr ""
+msgstr "Construction de l'application"
 
 #. Tag: para
 #: Chapter_06.xml:10
 #, no-c-format
-msgid ""
-"There are two distinct phases to the development of a TxCore application:"
-msgstr ""
+msgid "There are two distinct phases to the development of a TxCore application:"
+msgstr "Il existe deux phases distinctes pour le développement d'une application TxCore:"
 
 #. Tag: para
 #: Chapter_06.xml:15
@@ -38,14 +40,13 @@
 msgid ""
 "Developing new classes with certain characteristics (for example, "
 "Persistent, Recoverable, Concurrency Controlled)."
-msgstr ""
+msgstr "Developper de nouvelles classes avec certaines caractéristiques (par exemple, Persistant, Recouvrable, Concurrence contrôlée)."
 
 #. Tag: para
 #: Chapter_06.xml:20
 #, no-c-format
-msgid ""
-"Developing the application(s) that make use of the new classes of objects."
-msgstr ""
+msgid "Developing the application(s) that make use of the new classes of objects."
+msgstr "Développer la(les) application(s) qui utilisent les nouvelles classe d'objets."
 
 #. Tag: para
 #: Chapter_06.xml:25
@@ -61,6 +62,8 @@
 "structure of the application, particularly with regard to the use of atomic "
 "actions."
 msgstr ""
+"Malgré que ces deux phases pourraient être effectuées en parallèle et par une seule personne, nous nous référerons à la première étape comme au travail du développeur de classe et à la deuxième étape, comme au travail du développeur d'application(s). Le développeur de classe s'occupera de définir les opérations <code>save_state</code> et "
+"<code>restore_state</code> qui conviennent pour la classe, en paramétrant les verrous qui conviennent, et en appelant les constructeurs de classes TXCore qui conviennent. Le développeur d'applications(s) s'occupera surtout à définir la structure générale de l'application, surtout au niveau de l'utilisation les actions atomiques."
 
 #. Tag: para
 #: Chapter_06.xml:28
@@ -74,7 +77,7 @@
 "illustrate the various mechanisms provided by TxCore. While this is an "
 "unrealistic example application it enables all of the TxCore modifications "
 "to be described without requiring in depth knowledge of the application code."
-msgstr ""
+msgstr "Ce chapitre illustre les points soulignés dans les sections précédentes en créant une application simple: dans ce cas on développera une simple classe FIFO Queue for les valeurs entière relatives. Cette implémentation de la Queue apparaîtra sous la forme d'une liste doublement liée, et sera implémentée en tant qu'objet simple. Nous utiliserons cet exemple tout au long de cet ouvrage pour illustrer les divers mécanismes offerts par TxCore. Malgré qu'il s'agisse d'un exemple fictif d'application, cela permet toutes les modifications TXCore d'être décrites sans besoin de connaissances approfondies du code de l'application."
 
 #. Tag: para
 #: Chapter_06.xml:31
@@ -83,13 +86,13 @@
 "In the rest of this chapter we shall assume that the application is not "
 "distributed. If this is not the case, then context information must be "
 "propagated either implicitly or explicitly."
-msgstr ""
+msgstr "Pour le reste de ce chapitre, nous assumerons que l'application n'est pas distribuée. Si ce n'est pas le cas, alors l'information contextuelle devra être propagée soit implicitement, soit explicitement."
 
 #. Tag: title
 #: Chapter_06.xml:35
 #, no-c-format
 msgid "Queue description"
-msgstr ""
+msgstr "Description de la File d'attente (Queue)"
 
 #. Tag: para
 #: Chapter_06.xml:36
@@ -102,14 +105,13 @@
 "elements in the queue. In this example implementation, an array is used to "
 "represent the queue. A limit of <code>QUEUE_SIZE</code> elements has been "
 "imposed for this example."
-msgstr ""
+msgstr "Traditionnellement, il s'agit d'une queue FIFO, pour laquelle les éléments sont ajoutés en avant et extraits à l'arrière. Les opérations proposées par la classe de la file d'attente, permettent aux valeurs d'être positionnées sur la file d'attente (enqueue) ou d'en être extraites (dequeue), et il est également possible de changer ou d'inspecter les valeurs des éléments de la liste d'attente. On a imposé une limite de <code>QUEUE_SIZE</code> (taille) pour les éléments de la file d'attente de cet exemple."
 
 #. Tag: para
 #: Chapter_06.xml:40
 #, no-c-format
-msgid ""
-"The Java interface definition of this simple queue class is given below:"
-msgstr ""
+msgid "The Java interface definition of this simple queue class is given below:"
+msgstr "La définition dans l'interface Java de la classe de cette simple file d'attente, est donnée ci-dessous:"
 
 #. Tag: screen
 #: Chapter_06.xml:43
@@ -143,12 +145,39 @@
 "        private int numberOfElements;\n"
 "};"
 msgstr ""
+"public class TransactionalQueue extends LockManager\n"
+"{\n"
+"        public TransactionalQueue (Uid uid);\n"
+"        public TransactionalQueue ();\n"
+"        public void finalize ();\n"
+"        \n"
+"        public void enqueue (int v) throws OverFlow, UnderFlow,\n"
+"        QueueError, Conflict;\n"
+"        public int dequeue  () throws OverFlow, UnderFlow,\n"
+"        QueueError, Conflict;\n"
+"        \n"
+"        public int queueSize ();\n"
+"        public int inspectValue (int i) throws OverFlow,\n"
+"        UnderFlow, QueueError, Conflict;\n"
+"        public void setValue (int i, int v) throws OverFlow,\n"
+"        UnderFlow, QueueError, Conflict;\n"
+"        \n"
+"        public boolean save_state (OutputObjectState os, int ObjectType);\n"
+"        public boolean restore_state (InputObjectState os, int ObjectType);\n"
+"        public String type ();\n"
+"        \n"
+"        public static final int QUEUE_SIZE = 40; // maximum size of the "
+"queue\n"
+"        \n"
+"        private int[QUEUE_SIZE] elements;\n"
+"        private int numberOfElements;\n"
+"};"
 
 #. Tag: title
 #: Chapter_06.xml:45
 #, no-c-format
 msgid "Constructors and deconstructors"
-msgstr ""
+msgstr "Constructeurs et déconstructeurs"
 
 #. Tag: para
 #: Chapter_06.xml:46
@@ -158,7 +187,7 @@
 "requires the use of a special constructor that is required to take the Uid "
 "of the persistent object; the implementation of such a constructor is given "
 "below:"
-msgstr ""
+msgstr "Comme indiqué dans la section précédente, utiliser un objet persistant existant requiert l'utilisation d'un constructeur particulier qui devra prélever l'UID de l'objet persistant. L'implémentation d'un tel construteur est expliquée ci-dessous:"
 
 #. Tag: screen
 #: Chapter_06.xml:50
@@ -171,12 +200,18 @@
 "        numberOfElements = 0;\n"
 "}"
 msgstr ""
+"public TransactionalQueue (Uid u)\n"
+"{\n"
+"        super(u);\n"
+"        \n"
+"        numberOfElements = 0;\n"
+"}"
 
 #. Tag: para
 #: Chapter_06.xml:51
 #, no-c-format
 msgid "The constructor that creates a new persistent object is similar:"
-msgstr ""
+msgstr "Le constructeur qui crée un nouvel objet persistant est similaire:"
 
 #. Tag: screen
 #: Chapter_06.xml:54
@@ -212,6 +247,35 @@
 "        }\n"
 "}"
 msgstr ""
+"public TransactionalQueue ()\n"
+"{\n"
+"        super(ObjectType.ANDPERSISTENT);\n"
+"        \n"
+"        numberOfElements = 0;\n"
+"        \n"
+"        try\n"
+"        {\n"
+"                AtomicAction A = new AtomicAction();\n"
+"        \n"
+"                A.begin(0);        // Try to start atomic action\n"
+"        \n"
+"                // Try to set lock\n"
+"        \n"
+"                        if (setlock(new Lock(LockMode.WRITE), 0) == "
+"LockResult.GRANTED)\n"
+"                        {\n"
+"                                A.commit(true);        // Commit\n"
+"                        }\n"
+"                        else         // Lock refused so abort the atomic "
+"action\n"
+"                                A.rollback();\n"
+"                        }\n"
+"        catch (Exception e)\n"
+"        {\n"
+"                System.err.println(“Object construction error: “+e);\n"
+"                System.exit(1);\n"
+"        }\n"
+"}"
 
 #. Tag: para
 #: Chapter_06.xml:55
@@ -227,7 +291,7 @@
 "the object (in this case a <code>WRITE</code> lock must be acquired), then "
 "the main body of the constructor is executed. If this is successful the "
 "atomic action can be committed, otherwise it is aborted."
-msgstr ""
+msgstr "L'utilisation d'une action atomique dans le constructeur pour un nouvel objet, suit les règles créées plus tôt et garantissent que l'état de l'objet soit inscrit dans l'ObjectStore quand l'action atomique au niveau supérieur qui convient, est soumise ( ce qui reviendra à l'action A ou à quelqu'action active clôturée au moment de la construction de  <code>TransactionalQueue</code>). L'utilisation des actions atomiques dans un constructeur est simple: on doit tout d'abord déclarer une action et appeler le début de son opération. L'opération doit ensuite déterminer le verrou qui convient à l'objet (dans ce cas précis, on doit acquérir un verrou <code>WRITE</code> (écriture)), puis on exécute le corps principal du constructeur. En cas de succès, l'action atomique peut être soumise, sinon, elle échoue."
 
 #. Tag: para
 #: Chapter_06.xml:58
@@ -235,7 +299,7 @@
 msgid ""
 "The destructor of the queue class is only required to call the terminate "
 "operation of <methodname>LockManager</methodname>"
-msgstr ""
+msgstr "On n'utilise le destructeur d'une classe de queue que pour terminer l'opération de <methodname>LockManager</methodname>"
 
 #. Tag: screen
 #: Chapter_06.xml:61
@@ -246,12 +310,16 @@
 "        super.terminate();\n"
 "}"
 msgstr ""
+"public void finalize ()\n"
+"{\n"
+"        super.terminate();\n"
+"}"
 
 #. Tag: title
 #: Chapter_06.xml:63
 #, no-c-format
 msgid "save_state, resotre_state and type"
-msgstr ""
+msgstr "save_state, resotre_state and type"
 
 #. Tag: para
 #: Chapter_06.xml:64
@@ -259,7 +327,7 @@
 msgid ""
 "The implementations of save_state and restore_state are relatively simple "
 "for this example:"
-msgstr ""
+msgstr "Les implémentations de save_state et restore_state sont relativement simples dans cet exemple:"
 
 #. Tag: screen
 #: Chapter_06.xml:68
@@ -311,6 +379,51 @@
 "        }\n"
 "}"
 msgstr ""
+"public boolean save_state (OutputObjectState os, int ObjectType)\n"
+"{\n"
+"        if (!super.save_state(os, ObjectType))\n"
+"        return false;\n"
+"        \n"
+"        try\n"
+"        {\n"
+"                os.packInt(numberOfElements);\n"
+"        \n"
+"                if (numberOfElements &gt; 0)\n"
+"                {\n"
+"                        for (int i = 0; i &lt; numberOfElements; i++)\n"
+"                            os.packInt(elements[i]);\n"
+"                }\n"
+"                            \n"
+"                return true;\n"
+"        }\n"
+"        catch (IOException e)\n"
+"        {\n"
+"                return false;\n"
+"        }\n"
+"}\n"
+"\n"
+"public boolean restore_state (InputObjectState os, int ObjectType)\n"
+"{\n"
+"        if (!super.restore_state(os, ObjectType))\n"
+"                return false;\n"
+"                    \n"
+"        try\n"
+"        {\n"
+"                numberOfElements = os.unpackInt();\n"
+"                    \n"
+"                if (numberOfElements &gt; 0)\n"
+"                {\n"
+"                        for (int i = 0; i &lt; numberOfElements; i++)\n"
+"                                    elements[i] = os.unpackInt();\n"
+"                }\n"
+"                    \n"
+"                return true;\n"
+"        }\n"
+"        catch (IOException e)\n"
+"        {\n"
+"                return false;\n"
+"        }\n"
+"}"
 
 #. Tag: para
 #: Chapter_06.xml:69
@@ -319,6 +432,8 @@
 "Because the Queue class is derived from the <classname>LockManager</"
 "classname> class, the operation type should be:"
 msgstr ""
+"Comme la classe de liste d'attente (queue) est dérivée de la classe <classname>LockManager</"
+"classname>, le type d'opération devrait être:"
 
 #. Tag: screen
 #: Chapter_06.xml:72
@@ -329,12 +444,16 @@
 "        return \"/StateManager/LockManager/TransactionalQueue\";\n"
 "}"
 msgstr ""
+"public String type ()\n"
+"{\n"
+"        return \"/StateManager/LockManager/TransactionalQueue\";\n"
+"}"
 
 #. Tag: title
 #: Chapter_06.xml:74
 #, no-c-format
 msgid "enqueue/dequeue operations"
-msgstr ""
+msgstr "opérations enqueue/dequeue"
 
 #. Tag: para
 #: Chapter_06.xml:75
@@ -343,7 +462,7 @@
 "If the operations of the queue class are to be coded as atomic actions, then "
 "the enqueue operation could have the structure given below (the dequeue "
 "operation would be similarly structured):"
-msgstr ""
+msgstr "Si les opérations de la classe de la file d'attente doivent être codifiées en actions atomiques, alors l'opération enqueue devrait avoir la structure donnée ci-dessous (l'opération dequeue serait structurée de façon similaire):"
 
 #. Tag: screen
 #: Chapter_06.xml:79
@@ -389,19 +508,57 @@
 "        }\n"
 "}"
 msgstr ""
+"public void enqueue (int v) throws OverFlow, UnderFlow, QueueError\n"
+"{\n"
+"        AtomicAction A = new AtomicAction();\n"
+"        boolean res = false;\n"
+"        \n"
+"        try\n"
+"        {\n"
+"                A.begin(0);\n"
+"        \n"
+"                if (setlock(new Lock(LockMode.WRITE), 0) == LockResult."
+"GRANTED)\n"
+"                {\n"
+"                        if (numberOfElements &lt; QUEUE_SIZE)\n"
+"                               {\n"
+"                                               elements[numberOfElements] = "
+"v;\n"
+"                                               numberOfElements++;\n"
+"                                               res = true;\n"
+"                               }\n"
+"                               else\n"
+"                               {\n"
+"                                               A.rollback();\n"
+"                                              throw new UnderFlow();\n"
+"                               }\n"
+"                }\n"
+"                               \n"
+"                if (res)\n"
+"                         A.commit(true);\n"
+"                else\n"
+"                {\n"
+"                         A.rollback();\n"
+"                                               throw new Conflict();\n"
+"                }\n"
+"        }\n"
+"        catch (Exception e1)\n"
+"        {\n"
+"                throw new QueueError();\n"
+"        }\n"
+"}"
 
 #. Tag: title
 #: Chapter_06.xml:81
 #, no-c-format
 msgid "queueSize"
-msgstr ""
+msgstr "queueSize (taille de la liste d'attente)"
 
 #. Tag: para
 #: Chapter_06.xml:82
 #, no-c-format
-msgid ""
-"The implementation of <methodname>queueSize</methodname> is shown below:"
-msgstr ""
+msgid "The implementation of <methodname>queueSize</methodname> is shown below:"
+msgstr "L'implémentation de <methodname>queueSize</methodname> est montrée ci-dessous:"
 
 #. Tag: screen
 #: Chapter_06.xml:84
@@ -437,12 +594,41 @@
 "        return size;\n"
 "}"
 msgstr ""
+"public int queueSize () throws QueueError, Conflict\n"
+"{\n"
+"        AtomicAction A = new AtomicAction();\n"
+"        int size = -1;\n"
+"        \n"
+"        try\n"
+"        {\n"
+"                A.begin(0);\n"
+"        \n"
+"                if (setlock(new Lock(LockMode.READ), 0) == LockResult."
+"GRANTED)\n"
+"                        size = numberOfElements;\n"
+"        \n"
+"                if (size != -1)\n"
+"                        A.commit(true);\n"
+"                else\n"
+"                {\n"
+"                        A.rollback();\n"
+"        \n"
+"                        throw new Conflict();\n"
+"                }\n"
+"        }\n"
+"        catch (Exception e1)\n"
+"        {\n"
+"                throw new QueueError();\n"
+"        }\n"
+"        \n"
+"        return size;\n"
+"}"
 
 #. Tag: title
 #: Chapter_06.xml:86
 #, no-c-format
 msgid "inspectValue/setValue operations"
-msgstr ""
+msgstr "opérations inspectValue/setValue"
 
 #. Tag: para
 #: Chapter_06.xml:87
@@ -451,6 +637,8 @@
 "The implementation of <methodname>inspectValue</methodname> is shown below. "
 "<methodname>setValue</methodname> is similar, and not shown."
 msgstr ""
+"L'implémentation de <methodname>inspectValue</methodname> est indiquée ci-dessous. "
+"<methodname>setValue</methodname> est semblable, mais n'est pas montré."
 
 #. Tag: screen
 #: Chapter_06.xml:91
@@ -508,12 +696,63 @@
 "        return val;\n"
 "}"
 msgstr ""
+"public int inspectValue (int index) throws UnderFlow,\n"
+"        OverFlow, Conflict, QueueError\n"
+"{\n"
+"        AtomicAction A = new AtomicAction();\n"
+"        boolean res = false;\n"
+"        int val = -1;\n"
+"        \n"
+"        try\n"
+"        {\n"
+"                A.begin();\n"
+"        \n"
+"                if (setlock(new Lock(LockMode.READ), 0) == LockResult."
+"GRANTED)\n"
+"                {\n"
+"                        if (index &lt; 0)\n"
+"                            {\n"
+"                                    A.rollback();\n"
+"                                    throw new UnderFlow();\n"
+"                            }\n"
+"                else\n"
+"                {\n"
+"                    // array is 0 - numberOfElements -1\n"
+"                    \n"
+"                    if (index &gt; numberOfElements -1)\n"
+"                {\n"
+"                        A.rollback();\n"
+"                        throw new OverFlow();\n"
+"                }\n"
+"                else\n"
+"                {\n"
+"                        val = elements[index];\n"
+"                        res = true;\n"
+"                }\n"
+"                }\n"
+"                }\n"
+"                \n"
+"                if (res)\n"
+"                        A.commit(true);\n"
+"                else\n"
+"                {\n"
+"                        A.rollback();\n"
+"                        throw new Conflict();\n"
+"                }\n"
+"        }\n"
+"        catch (Exception e1)\n"
+"        {\n"
+"                throw new QueueError();\n"
+"        }\n"
+"                \n"
+"        return val;\n"
+"}"
 
 #. Tag: title
 #: Chapter_06.xml:93
 #, no-c-format
 msgid "The client"
-msgstr ""
+msgstr "Le client"
 
 #. Tag: para
 #: Chapter_06.xml:94
@@ -523,7 +762,7 @@
 "representative portion. Before invoking operations on the object, the client "
 "must obviously first bind to it. In the local case this simply requires the "
 "client to create an instance of the object."
-msgstr ""
+msgstr "Au lieu de montrer tous le code client, nous nous concentrerons sur une portion représentative. Avant d'appeler des opérations sur un objet, le client devra biensûr le relier. Dans un cas local, le client a simplement besoin de créer une instance de cet objet."
 
 #. Tag: screen
 #: Chapter_06.xml:98
@@ -533,6 +772,9 @@
 "{\n"
 "TransactionalQueue myQueue = new TransactionalQueue();"
 msgstr ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
 
 #. Tag: para
 #: Chapter_06.xml:99
@@ -540,7 +782,7 @@
 msgid ""
 "Before invoking one of the queue’s operations, the client starts a "
 "transaction. The <methodname>queueSize</methodname> operation is shown below:"
-msgstr ""
+msgstr "Avant de faire appel à l'une des opérations de la file d'attente, le client commencera une transaction. L'opération <methodname>queueSize</methodname> est montrée ci-dessous:"
 
 #. Tag: screen
 #: Chapter_06.xml:102
@@ -575,12 +817,40 @@
 "        System.err.println(“Caught unexpected exception!”);\n"
 "}"
 msgstr ""
+"AtomicAction A = new AtomicAction();\n"
+"int size = 0;\n"
+"        \n"
+"try\n"
+"{\n"
+"        A.begin(0);\n"
+"s\n"
+"        try\n"
+"        {\n"
+"                size = queue.queueSize();\n"
+"        }\n"
+"        catch (Exception e)\n"
+"        {\n"
+"        }\n"
+"        \n"
+"        if (size &gt;= 0)\n"
+"        {\n"
+"                A.commit(true);\n"
+"        \n"
+"                System.out.println(“Size of queue: “+size);\n"
+"        }\n"
+"        else\n"
+"                A.rollback();\n"
+"}\n"
+"catch (Exception e)\n"
+"{\n"
+"        System.err.println(“Caught unexpected exception!”);\n"
+"}"
 
 #. Tag: title
 #: Chapter_06.xml:104
 #, no-c-format
 msgid "Comments"
-msgstr ""
+msgstr "Commentaires"
 
 #. Tag: para
 #: Chapter_06.xml:105
@@ -600,4 +870,5 @@
 "could be executed concurrently. For example, modifying the states of two "
 "different elements in the queue. In the next section we address some of "
 "these issues."
-msgstr ""
+msgstr "Comme l'objet est persistant, l'état de l'objet survivra tout échec du noeud sur lequel il est positionné. L'état de l'objet qui survivra, est celui qui est produit par les dernières actions atomiques sur l'objet, soumises au niveau supérieur. Si l'intention de l'objet est procéder à opérations enqueue atomiquement, par exemple, alors, on peut faire cela en imbriquant les opérations enqueue dans une autre action atomique clôturée. De plus, les opérations concurrentes effectuées sur de tels objets persistants, seront sérialisées, empêchant ainsi des incohérences dans l'état de l'objet. Malgré tout, comme les élément des objets de la file d'attente ne sont pas contrôlés individuellement au niveau de la concurrence, certaines combinaisons d'appel d'opérations concurrentes seront exécutées en série, alors que normalement, elles devraient être exécutées en concurrence, par exemple, en modifiant les états de deux éléments différents dans!
  la file d'attente. Dans la section qui suit, nous adresserons quelques uns de ces problèmes."
+

Modified: projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_07.po
===================================================================
--- projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_07.po	2008-07-04 02:17:48 UTC (rev 75364)
+++ projects/docs/enterprise/4.3/Transactions/Programmers_Guide/fr-FR/Chapter_07.po	2008-07-04 04:08:42 UTC (rev 75365)
@@ -1,29 +1,32 @@
+# translation of Chapter_07.po to French
 # Language fr-FR translations for JBoss_TS_Programmers_Guide package.
+#
 # Automatically generated, 2008.
-#
+# Corina Roe <croe at redhat.com>, 2008.
 msgid ""
 msgstr ""
-"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\n"
+"Project-Id-Version: Chapter_07\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2008-06-05 22:51+0000\n"
-"PO-Revision-Date: 2008-06-05 22:51+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2008-07-04 12:37+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
 #: Chapter_07.xml:6
 #, no-c-format
 msgid "Configuration options"
-msgstr ""
+msgstr "Options de configuration"
 
 #. Tag: title
 #: Chapter_07.xml:9
 #, no-c-format
 msgid "Options"
-msgstr ""
+msgstr "Options"
 
 #. Tag: para
 #: Chapter_07.xml:10
@@ -32,79 +35,79 @@
 "The following table shows the configuration features, with default values "
 "shown in italics. More details about each option can be found in the "
 "relevant sections of this document."
-msgstr ""
+msgstr "La table suivante montre les options de configuration, avec les valeurs par défaut en italique. Plus d'information sur chaque option peut être trouvée dans les sections concernées dans ce document."
 
 #. Tag: title
 #: Chapter_07.xml:14
 #, no-c-format
 msgid "TxCore configuration options."
-msgstr ""
+msgstr "Options de configuration TxCore."
 
 #. Tag: entry
 #: Chapter_07.xml:18
 #, no-c-format
 msgid "Configuration Name"
-msgstr ""
+msgstr "Nom de configuration"
 
 #. Tag: entry
 #: Chapter_07.xml:21
 #, no-c-format
 msgid "Possible Values"
-msgstr ""
+msgstr "Valeurs possibles"
 
 #. Tag: entry
 #: Chapter_07.xml:24
 #, no-c-format
 msgid "Description"
-msgstr ""
+msgstr "Description"
 
 #. Tag: entry
 #: Chapter_07.xml:31
 #, no-c-format
 msgid "com.arjuna.ats.arjuna.objectstore.storeSync"
-msgstr ""
+msgstr "com.arjuna.ats.arjuna.objectstore.storeSync"
 
 #. Tag: entry
 #: Chapter_07.xml:34 Chapter_07.xml:145
 #, no-c-format
 msgid "ON/OFF"
-msgstr ""
+msgstr "ON/OFF"
 
 #. Tag: entry
 #: Chapter_07.xml:37 Chapter_07.xml:148
 #, no-c-format
 msgid "Turns synchronization of the object store on or off. Use with caution."
-msgstr ""
+msgstr "Active/désactive la synchronisation de l'ObjectStore. A utiliser avec précaution."
 
 #. Tag: entry
 #: Chapter_07.xml:42
 #, no-c-format
 msgid "com.arjuna.ats.arjuna.objectstore.storeType"
-msgstr ""
+msgstr "com.arjuna.ats.arjuna.objectstore.storeType"
 
 #. Tag: entry
 #: Chapter_07.xml:45
 #, no-c-format
 msgid "ShadowStore/ShadowNoFileLockStore/JDBCStore/HashedStore"
-msgstr ""
+msgstr "ShadowStore/ShadowNoFileLockStore/JDBCStore/HashedStore"
 
 #. Tag: entry
 #: Chapter_07.xml:48
 #, no-c-format
 msgid "Specify the type of object store implementation to use."
-msgstr ""
+msgstr "Préciser le type d'implémentation d'ObjectStore à utiliser."
 
 #. Tag: entry
 #: Chapter_07.xml:53
 #, no-c-format
 msgid "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
-msgstr ""
+msgstr "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
 
 #. Tag: entry
 #: Chapter_07.xml:56
 #, no-c-format
 msgid "255/any integer value"
-msgstr ""
+msgstr "255/any integer value"
 
 #. Tag: entry
 #: Chapter_07.xml:59
@@ -112,206 +115,206 @@
 msgid ""
 "Set the number of directories to hash object states over for the HashedStore "
 "object store implementation."
-msgstr ""
+msgstr "Déterminer le nombre de répertoires........................"
 
 #. Tag: entry
 #: Chapter_07.xml:64
 #, no-c-format
 msgid "com.arjuna.ats.txoj.lockstore.lockStoreType"
-msgstr ""
+msgstr "com.arjuna.ats.txoj.lockstore.lockStoreType"
 
 #. Tag: entry
 #: Chapter_07.xml:67
 #, no-c-format
 msgid "BasicLockStore/BasicPersistentLockStore"
-msgstr ""
+msgstr "BasicLockStore/BasicPersistentLockStore"
 
 #. Tag: entry
 #: Chapter_07.xml:70
 #, no-c-format
 msgid "Specify the type of the lock store implementation to use."
-msgstr ""
+msgstr "Préciser le type d'implémentation de lock store à utiliser."
 
 #. Tag: entry
 #: Chapter_07.xml:75
 #, no-c-format
 msgid "com.arjuna.ats.txoj.lockstore.lockStoreDir"
-msgstr ""
+msgstr "com.arjuna.ats.txoj.lockstore.lockStoreDir"
 
 #. Tag: entry
 #: Chapter_07.xml:78
 #, no-c-format
 msgid "Windows: .\\LockStore Unix: ./LockStore"
-msgstr ""
+msgstr "Windows: .\\LockStore Unix: ./LockStore"
 
 #. Tag: entry
 #: Chapter_07.xml:82
 #, no-c-format
 msgid "Specify the location of the lock store."
-msgstr ""
+msgstr "Préciser la location du lock store."
 
 #. Tag: entry
 #: Chapter_07.xml:87
 #, no-c-format
 msgid "com.arjuna.ats.arjuna.objectstore.objectStoreDir"
-msgstr ""
+msgstr "com.arjuna.ats.arjuna.objectstore.objectStoreDir"
 
 #. Tag: entry
 #: Chapter_07.xml:90
 #, no-c-format
 msgid "Any location the application can write to."
-msgstr ""
+msgstr "Toute location où l'application peut écrire."
 
 #. Tag: entry
 #: Chapter_07.xml:93
 #, no-c-format
 msgid "Specify the location of the object store."
-msgstr ""
+msgstr "Spécifier la location de l'ObjectStore."
 
 #. Tag: entry
 #: Chapter_07.xml:98
 #, no-c-format
 msgid "com.arjuna.ats.arjuna.objectstore.localOSRoot"
-msgstr ""
+msgstr "com.arjuna.ats.arjuna.objectstore.localOSRoot"
 
 #. Tag: entry
 #: Chapter_07.xml:101
 #, no-c-format
 msgid "defaultStore"
-msgstr ""
+msgstr "defaultStore"
 
 #. Tag: entry
 #: Chapter_07.xml:104
 #, no-c-format
 msgid "Specify the name of the object store root."
-msgstr ""
+msgstr "Préciser le nom root de l'OBjectStore."
 
 #. Tag: entry
 #: Chapter_07.xml:109
 #, no-c-format
 msgid "com.arjuna.ats.arjuna.coordinator.actionStore"
-msgstr ""
+msgstr "com.arjuna.ats.arjuna.coordinator.actionStore"
 
 #. Tag: entry
 #: Chapter_07.xml:112
 #, no-c-format
 msgid "ActionStore/HashedActionStore/JDBCActionStore"
-msgstr ""
+msgstr "ActionStore/HashedActionStore/JDBCActionStore"
 
 #. Tag: entry
 #: Chapter_07.xml:115
 #, no-c-format
 msgid "The transaction log implementation to use."
-msgstr ""
+msgstr "L'implémentation de journal de transactions à utiliser."
 
 #. Tag: entry
 #: Chapter_07.xml:120
 #, no-c-format
 msgid "com.arjuna.ats.arjuna.coordinator.asyncCommit"
-msgstr ""
+msgstr "com.arjuna.ats.arjuna.coordinator.asyncCommit"
 
 #. Tag: entry
 #: Chapter_07.xml:123 Chapter_07.xml:134 Chapter_07.xml:178 Chapter_07.xml:189
 #: Chapter_07.xml:200 Chapter_07.xml:211
 #, no-c-format
 msgid "YES/NO"
-msgstr ""
+msgstr "YES/NO"
 
 #. Tag: entry
 #: Chapter_07.xml:126
 #, no-c-format
 msgid "Turns on or off (default) asynchronous commit."
-msgstr ""
+msgstr "Active/désactive la soumission asynchrone (par défaut)"
 
 #. Tag: entry
 #: Chapter_07.xml:131
 #, no-c-format
 msgid "com.arjuna.ats.arjuna.coordinator.asyncPrepare"
-msgstr ""
+msgstr "com.arjuna.ats.arjuna.coordinator.asyncPrepare"
 
 #. Tag: entry
 #: Chapter_07.xml:137
 #, no-c-format
 msgid "Turns on or off (default) asynchronous prepare."
-msgstr ""
+msgstr "Active/désactive la fonction asynchrone 'prepare' (par défaut)."
 
 #. Tag: entry
 #: Chapter_07.xml:142
 #, no-c-format
 msgid "com.arjuna.ats.arjuna.objectstore.transactionSync"
-msgstr ""
+msgstr "com.arjuna.ats.arjuna.objectstore.transactionSync"
 
 #. Tag: entry
 #: Chapter_07.xml:153
 #, no-c-format
 msgid "com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess"
-msgstr ""
+msgstr "com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess"
 
 #. Tag: entry
 #: Chapter_07.xml:156 Chapter_07.xml:167
 #, no-c-format
 msgid "JDBCAccess class name"
-msgstr ""
+msgstr "Nom de la classe JDBCAccess"
 
 #. Tag: entry
 #: Chapter_07.xml:159
 #, no-c-format
 msgid "The JDBCAccess implementation to use for user-level object stores."
-msgstr ""
+msgstr "L'mplémentation JDBCAccess à utiliser pour les ObjectStores du niveau-utilisateur."
 
 #. Tag: entry
 #: Chapter_07.xml:164
 #, no-c-format
 msgid "com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess"
-msgstr ""
+msgstr "com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess"
 
 #. Tag: entry
 #: Chapter_07.xml:170
 #, no-c-format
 msgid "The JDBCAccess implementation to use for transaction object stores."
-msgstr ""
+msgstr "L'implémentation JDBCAccess à utiliser pour transactions ObjectStore."
 
 #. Tag: entry
 #: Chapter_07.xml:175
 #, no-c-format
 msgid "com.arjuna.ats.arjuna.coordinator.commitOnePhase"
-msgstr ""
+msgstr "com.arjuna.ats.arjuna.coordinator.commitOnePhase"
 
 #. Tag: entry
 #: Chapter_07.xml:181
 #, no-c-format
 msgid "Enable or disable the one-phase commit optimization."
-msgstr ""
+msgstr "Active ou désactive une optimisation de soumission en une-phase."
 
 #. Tag: entry
 #: Chapter_07.xml:186
 #, no-c-format
 msgid "com.arjuna.ats.arjuna.coordinator.readonlyOptimisation"
-msgstr ""
+msgstr "com.arjuna.ats.arjuna.coordinator.readonlyOptimisation"
 
 #. Tag: entry
 #: Chapter_07.xml:192
 #, no-c-format
 msgid "Enable or disable read-only optimization for the second phase abort."
-msgstr ""
+msgstr "Active ou désactive une optimisation lecture-seule pour la deuxième phase 'abandon'."
 
 #. Tag: entry
 #: Chapter_07.xml:197
 #, no-c-format
 msgid "com.arjuna.ats.arjuna.coordinator.enableStatistics"
-msgstr ""
+msgstr "com.arjuna.ats.arjuna.coordinator.enableStatistics"
 
 #. Tag: entry
 #: Chapter_07.xml:203
 #, no-c-format
 msgid "Start/stop collecting transaction statistic information."
-msgstr ""
+msgstr "Commence/arrête de collecter les informations statistiques des transactions."
 
 #. Tag: entry
 #: Chapter_07.xml:208
 #, no-c-format
 msgid "com.arjuna.ats.arjuna.coordinator.startDisabled"
-msgstr ""
+msgstr "com.arjuna.ats.arjuna.coordinator.startDisabled"
 
 #. Tag: entry
 #: Chapter_07.xml:214
@@ -320,21 +323,24 @@
 "Start with the transaction system enabled or disabled. Toggle via the com."
 "arjuna.ats.arjuna.coordinator.TxControl class."
 msgstr ""
+"Commencer par activer ou déactiver le système de transactions. Basculer via com."
+"arjuna.ats.arjuna.coordinator.TxControl class."
 
 #. Tag: entry
 #: Chapter_07.xml:219
 #, no-c-format
 msgid "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
-msgstr ""
+msgstr "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
 
 #. Tag: entry
 #: Chapter_07.xml:222
 #, no-c-format
 msgid "Integer"
-msgstr ""
+msgstr "Entier relatif"
 
 #. Tag: entry
 #: Chapter_07.xml:225
 #, no-c-format
 msgid "Timeout in milliseconds"
-msgstr ""
+msgstr "Délai d'inactivité (timeout) en millesecondes"
+




More information about the jboss-cvs-commits mailing list